diff options
author | Jakob Pfender <jpfender@zedat.fu-berlin.de> | 2010-10-14 18:28:53 +0200 |
---|---|---|
committer | Jakob Pfender <jpfender@zedat.fu-berlin.de> | 2010-10-14 18:28:53 +0200 |
commit | f6bd2f3832095574abd682ef889ac1332295dc79 (patch) | |
tree | c9cf63bd80bff217f987bb646ad5280e02ec43fb /server/client.erl | |
parent | ca4402975a29405ddb8e6501a635de1f91a66292 (diff) | |
parent | f2164544210f511664ed7186107789ec55ec3edf (diff) | |
download | erlang-f6bd2f3832095574abd682ef889ac1332295dc79.tar.gz erlang-f6bd2f3832095574abd682ef889ac1332295dc79.tar.xz erlang-f6bd2f3832095574abd682ef889ac1332295dc79.zip |
Merge branch 'master' of ssh://git.animux.de/erlang
Diffstat (limited to 'server/client.erl')
-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}}}. |