diff options
author | Jakob Pfender <jpfender@zedat.fu-berlin.de> | 2010-10-14 16:34:44 +0200 |
---|---|---|
committer | Jakob Pfender <jpfender@zedat.fu-berlin.de> | 2010-10-14 16:34:44 +0200 |
commit | a53e0ebbf1e466abd0fce29688eb4112e7e6bff5 (patch) | |
tree | 4bcb80aa32bec556d717e3338e6d96e32d4ba989 /server/cldb.erl | |
parent | 83c76ed4f695dfd033308c663024f7a7e51c13e2 (diff) | |
parent | 3ab5da8355e114953c154114aa4c0c36b719e92e (diff) | |
download | erlang-a53e0ebbf1e466abd0fce29688eb4112e7e6bff5.tar.gz erlang-a53e0ebbf1e466abd0fce29688eb4112e7e6bff5.tar.xz erlang-a53e0ebbf1e466abd0fce29688eb4112e7e6bff5.zip |
documentation for media.erl
Diffstat (limited to 'server/cldb.erl')
-rw-r--r-- | server/cldb.erl | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/server/cldb.erl b/server/cldb.erl index 0f9f407..982aafc 100644 --- a/server/cldb.erl +++ b/server/cldb.erl @@ -1,12 +1,53 @@ % The clientdatabase -module(cldb). --export([init/0]). --record(user, {name, passwd, votes}). +-export([init/0, ask/2, login/2, decVote/2, incVote/2, register/3, check_rights/2]). +-record(user, {name, passwd, votes, rights}). init() -> mnesia:create_schema([node()]), mnesia:start(), - mnesia:create_table(track, [{attributes, record_info(fields, track)}]), + mnesia:create_table(user, [{attributes, record_info(fields, user)}]), io:format("Userdb up and running \n"). +ask(User, Pwd) -> + F = fun() -> + mnesia:match_object({user, User, Pwd, '_'}) + end, + mnesia:transaction(F). + + + +login(User, Pwd) -> + {_, Reason} = ask(User, Pwd), + Reason. + +register(User, Pwd, Root) -> + F = fun() -> + mnesia:write(#user{name = User, passwd = Pwd, votes = 5, rights = Root}) + end, + {_, Reason} = mnesia:transaction(F), + Reason. + +decVote(User, Pwd) -> + F = fun() -> + [Head|_] = ask(User, Pwd), + Votes = Head#user.votes - 1, + New = Head#user{votes = Votes}, + mnesia:write(New) + end, + mnesia:transaction(F). + +incVote(User, Pwd) -> + F = fun() -> + [Head|_] = ask(User, Pwd), + Votes = Head#user.votes + 1, + New = Head#user{votes = Votes}, + mnesia:write(New) + end, + mnesia:transaction(F). + +check_rights(User, Name) -> + {_, _, Rights} = ask(User, Name), + Rights. + |