ADD trois mode d'affichage pour les pseudos
[euphorik.git] / modules / erl / euphorik_minichat.erl
index 2e2f406..519870c 100755 (executable)
@@ -28,7 +28,7 @@
    est_une_reponse_a_user/2,
    % set :\r
    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é.\r
-set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Conversations) ->
-   resultat_transaction(mnesia:transaction(
-      fun() ->
-         case user_by_cookie(Cookie) of
-            {ok, User} ->               \r
-               case user_by_login(Login) of\r
-                  {ok, U} when U#user.id =/= User#user.id ->\r
-                     login_deja_pris;\r
-                  _ ->               \r
-                     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)\r
-                        login = if is_list(Login) -> Login; true -> User#user.login end,\r
-                        password = if is_list(Password) -> Password; true -> User#user.password end,\r
-                        pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end,\r
-                        email = if is_list(Email) -> Email; true -> User#user.email end,\r
-                        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\r
-                     },\r
-                     mnesia:write(User_modifie),\r
-                     ok\r
-               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} ->               \r
+                     case user_by_login(Login) of\r
+                        {ok, U} when U#user.id =/= User#user.id ->\r
+                           login_deja_pris;\r
+                        _ ->               \r
+                           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)\r
+                              login = if is_list(Login) -> Login; true -> User#user.login end,\r
+                              password = if is_list(Password) -> Password; true -> User#user.password end,\r
+                              pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end,\r
+                              email = if is_list(Email) -> Email; true -> User#user.email end,\r
+                              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\r
+                           },\r
+                           mnesia:write(User_modifie),\r
+                           ok\r
+                     end;
+                  _ -> erreur
+               end
+            end
+         ));
+      true ->
+         erreur
+   end.
 
 
 % Met à jour la date de la dernière connexion d'un utilisateur à maintenant