X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=56b7d7fc43fae2a2c45e13fa0ed5fbc140e5af80;hp=91d6f67ecf9f1e6b8d451db142b1c539b6335ba7;hb=e56ca5b899d3b39c76a9056077729c04c695666b;hpb=5f6ea43b8825c6df005e0130f9e4fa54b1931831 diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 91d6f67..56b7d7f 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -33,7 +33,7 @@ % users : nouveau_user/2, nouveau_user/3, - set_profile/9, + set_profile/11, update_date_derniere_connexion/1, update_ip/2, update_pseudo_user/2, @@ -46,6 +46,7 @@ user_by_login_password/2, user_by_mess/1, toggle_ek_master/1, + css_from_user_cookie/1, % messages : nouveau_message/3, @@ -110,6 +111,10 @@ create_tables() -> {attributes, record_info(fields, counter)}, {disc_copies, [node()]} ]), + mnesia:create_table(proprietes, [ + {attributes, record_info(fields, proprietes)}, + {disc_copies, [node()]} + ]), mnesia:create_table(minichat, [ {attributes, record_info(fields, minichat)}, {index, [auteur_id, troll_id]}, @@ -154,7 +159,8 @@ reset() -> mnesia:clear_table(troll), mnesia:clear_table(ip_table), % crée l'utilisateur root - mnesia:transaction(fun() -> + mnesia:transaction(fun() -> + mnesia:write(#proprietes{nom = version, valeur = ?VERSION_BD}), User = #user{id = 0, pseudo = "Sys", login = "Sys", date_creation = now(), date_derniere_connexion = now(), ek_master = true}, mnesia:write(User), User @@ -184,12 +190,12 @@ nouveau_user(Login, Password, Cookie) -> % Mise à par Cookie les autres peuvent être undefined ce qui veut dire qu'ils ne seront pas modifié. -set_profile(Cookie, Login, Password, Pseudo, Email, Css, Nick_format, Page_principale, Conversations) -> +set_profile(Cookie, Login, Password, Pseudo, Email, Css, Nick_format, View_times, View_tooltips, Page_principale, Conversations) -> if Nick_format =:= nick; Nick_format =:= login; Nick_format =:= nick_login -> resultat_transaction(mnesia:transaction( fun() -> case user_by_cookie(Cookie) of - {ok, User} -> + {ok, User} -> case user_by_login(Login) of {ok, U} when Login =/= [], U#user.id =/= User#user.id -> login_deja_pris; @@ -203,6 +209,8 @@ set_profile(Cookie, Login, Password, Pseudo, Email, Css, Nick_format, Page_princ email = if is_list(Email) -> Email; true -> User#user.email end, css = if is_list(Css) -> Css; true -> User#user.css end, nick_format = Nick_format, + view_times = View_times, + view_tooltips = View_tooltips, page_principale = if is_integer(Page_principale), Page_principale > 0 -> Page_principale; true -> User#user.page_principale end, conversations = if is_list(Conversations) -> Conversations; true -> User#user.conversations end }, @@ -359,7 +367,19 @@ toggle_ek_master(User_id) -> end )). + +% Renvoie une chaine représentant le cookie ou undefined si pas trouvé. +css_from_user_cookie(Cookie) -> + case user_by_cookie(Cookie) of + {ok, User} -> + User#user.css; + _ -> + undefined + end. + + + user_by_login_password(Login, Password) -> resultat_transaction(mnesia:transaction( fun() ->