X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_minichat.erl;h=519870c50790cd64b9075686c47c214dc0870837;hp=2e2f406e004cc8e8736317fabc96a0780369134c;hb=2faefc542de20cfcc0220b5c7fd7982dd0fbbfd4;hpb=3f3371f52e6d1e513011dd02a3679a079aa2253d diff --git a/modules/erl/euphorik_minichat.erl b/modules/erl/euphorik_minichat.erl index 2e2f406..519870c 100755 --- a/modules/erl/euphorik_minichat.erl +++ b/modules/erl/euphorik_minichat.erl @@ -28,7 +28,7 @@ est_une_reponse_a_user/2, % set : update_pseudo_user/2, - set_profile/8, + set_profile/9, update_date_derniere_connexion/1, nouveau_user/2, nouveau_user/3, @@ -196,33 +196,38 @@ update_pseudo_user(UserId, Pseudo) -> % 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, Page_principale, Conversations) -> - resultat_transaction(mnesia:transaction( - fun() -> - case user_by_cookie(Cookie) of - {ok, User} -> - case user_by_login(Login) of - {ok, U} when U#user.id =/= User#user.id -> - login_deja_pris; - _ -> - User_modifie = User#user{ - % TODO : pourquoi ne pas tester avec la valeur "undefined" plutôt qu'avec "is_list" ? - % TODO : validation plus strict des données (pas de page négative dans les conv par exemple) - login = if is_list(Login) -> Login; true -> User#user.login end, - password = if is_list(Password) -> Password; true -> User#user.password end, - pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end, - email = if is_list(Email) -> Email; true -> User#user.email end, - css = if is_list(Css) -> Css; true -> User#user.css end, - 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 - }, - mnesia:write(User_modifie), - ok - end; - _ -> erreur - end - end - )). +set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Nick_format, 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} -> + case user_by_login(Login) of + {ok, U} when U#user.id =/= User#user.id -> + login_deja_pris; + _ -> + User_modifie = User#user{ + % TODO : pourquoi ne pas tester avec la valeur "undefined" plutôt qu'avec "is_list" ? + % TODO : validation plus strict des données (pas de page négative dans les conv par exemple) + login = if is_list(Login) -> Login; true -> User#user.login end, + password = if is_list(Password) -> Password; true -> User#user.password end, + pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end, + 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, + 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 + }, + mnesia:write(User_modifie), + ok + end; + _ -> erreur + end + end + )); + true -> + erreur + end. % Met à jour la date de la dernière connexion d'un utilisateur à maintenant