diff options
author | Michael Wittig <michael.wittig@fu-berlin.de> | 2010-10-14 17:38:47 +0200 |
---|---|---|
committer | Michael Wittig <michael.wittig@fu-berlin.de> | 2010-10-14 17:38:47 +0200 |
commit | 5697eac2876904546954e48577763713c03eb935 (patch) | |
tree | 840eb04acca1645a707039e084681e7c6bc51742 /server/client.erl | |
parent | 4741ca84bd516bcf5b65854e2661f7842599c4fc (diff) | |
parent | 05666998e1dce513f1df82353364c026f992cbb4 (diff) | |
download | erlang-5697eac2876904546954e48577763713c03eb935.tar.gz erlang-5697eac2876904546954e48577763713c03eb935.tar.xz erlang-5697eac2876904546954e48577763713c03eb935.zip |
Merge branch 'master' of ssh://git.animux.de/erlang
Diffstat (limited to '')
-rw-r--r-- | server/client.erl | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/server/client.erl b/server/client.erl index cb6504e..d12c891 100644 --- a/server/client.erl +++ b/server/client.erl @@ -1,11 +1,11 @@ -module(client). --export([start/1, loop/1, register/2, login/2]). +-export([start/2, loop/2, register/2, login/2]). -start(Node) -> +start(Node, User) -> process_flag(trap_exit, true), Client = server:start_on_node(Node, client, undef), link(Client), - Server = spawn_link(client, loop, [Client]), + Server = spawn_link(client, loop, [Client, User]), case server:rpc(Client, {change_state, Server}) of {ok} -> @@ -25,9 +25,16 @@ execute(Client, F) -> Client ! {error, Why} end. -loop(Client) -> +loop(Client, User) -> %% mainloop for client modul in server receive + {register, Name, Password} -> + case User of + {user, _, _, _, admin} -> + execute(Client, fun() -> cldb:register(Name, Password, none) end); + _ -> Client ! {error, {no_rights}} + end; + list -> execute(Client, fun() -> media:all() end); @@ -43,7 +50,7 @@ loop(Client) -> Cmd -> Client ! {error, {unknown_command, Cmd}} end, - loop(Client). + loop(Client, User). register(Client, {Name, Password}) -> dis ! {Client, {register, {Name, Password}}}. |