X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_protocole.erl;fp=modules%2Ferl%2Feuphorik_protocole.erl;h=59f8def0c83766e4b2900e4cc4b043242de9ff5d;hp=7519ba8f866cc08dc1566f1f8b488a686921bc8e;hb=d9d05b6a2a13c2da190dd68d4409381d093679b2;hpb=bab95a234628a5c3efe969b85a81a054591f219c diff --git a/modules/erl/euphorik_protocole.erl b/modules/erl/euphorik_protocole.erl index 7519ba8..59f8def 100755 --- a/modules/erl/euphorik_protocole.erl +++ b/modules/erl/euphorik_protocole.erl @@ -5,7 +5,7 @@ -module(euphorik_protocole). -export([ - register/1, + register/2, login/1, logout/1, profile/1, @@ -20,18 +20,32 @@ % Une utilisateur s'enregistre avec un tuple {Login, Password}. -register([{login, Login}, {password, Password}]) -> - case euphorik_minichat:user_by_login(Login) of - {ok, _} -> - erreur("Login déjà existant"); - _ -> - User = euphorik_minichat:nouveau_user(Login, Password, generer_cookie()), - json_reponse_login_ok(User) +register([{login, Login}, {password, Password}], IP) -> + Can_register = euphorik_minichat:can_register(IP), + if Can_register -> + case euphorik_minichat:user_by_login(Login) of + {ok, _} -> + erreur("Login déjà existant"); + _ -> + User = euphorik_minichat:nouveau_user(Login, Password, generer_cookie()), + json_reponse_login_ok(User) + end; + true -> + erreur_register_flood() end; % Enregistrement sans {Login, Password} -register([]) -> - User = euphorik_minichat:nouveau_user("", generer_cookie()), - json_reponse_login_ok(User). +register([], IP) -> + Can_register = euphorik_minichat:can_register(IP), + if Can_register -> + User = euphorik_minichat:nouveau_user("", generer_cookie()), + json_reponse_login_ok(User); + true -> + erreur_register_flood() + end. + +erreur_register_flood() -> + erreur("Trop de register (flood)"). + % Un utilisateur se logge (avec un couple {login, mot de passe})