aboutsummaryrefslogtreecommitdiffstats
path: root/server/client.erl
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2010-10-14 17:37:18 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2010-10-14 17:37:18 +0200
commitab13a717fe4e443c233694c69573deb11dbdf453 (patch)
tree44256fdf5b08dd67afd618913f2fc153df3dd247 /server/client.erl
parent3ab5da8355e114953c154114aa4c0c36b719e92e (diff)
downloaderlang-ab13a717fe4e443c233694c69573deb11dbdf453.tar.gz
erlang-ab13a717fe4e443c233694c69573deb11dbdf453.tar.xz
erlang-ab13a717fe4e443c233694c69573deb11dbdf453.zip
changed user database from dict to mnesia (modules: cldb)
Diffstat (limited to '')
-rw-r--r--server/client.erl17
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}}}.