Browse Source

join different social profiles and concatenate profile data

Andrey Sergienko 10 years ago
parent
commit
e4fa122fd3
2 changed files with 15 additions and 3 deletions
  1. 5 2
      src/avz.erl
  2. 10 1
      src/userhelper.erl

+ 5 - 2
src/avz.erl

@@ -13,7 +13,10 @@ event(init) -> [];
 event(logout) -> wf:user(undefined), wf:redirect(?LOGIN_PAGE);
 event(to_login) -> wf:redirect(?LOGIN_PAGE);
 event({register, #user{}=U}) -> kvs:add(U), login_user(U); % sample
-event({login, #user{}=U}) -> login_user(U);                % sample
+event({login, #user{}=U, N}) ->
+    Updated = userhelper:updateUser(U,N),
+    kvs:put(Updated),
+    login_user(Updated);                % sample
 event({Method,Event}) -> Method:event({Method,Event});
 event(Ev) ->  error_logger:info_msg("Page Event ~p",[Ev]).
 
@@ -29,7 +32,7 @@ login(Key, Args) ->
     case kvs:get(user,Key:email_prop(Args,Key)) of
         {ok,Existed} ->
             RegData = Key:registration_data(Args, Key, Existed),
-            (?CTX#cx.module):event({login, Existed});
+            (?CTX#cx.module):event({login, Existed, RegData});
         {error,_} ->
             RegData = Key:registration_data(Args, Key, #user{}),
             (?CTX#cx.module):event({register, RegData});

+ 10 - 1
src/userhelper.erl

@@ -1,5 +1,5 @@
 -module(userhelper).
--export([updateProplist/2]).
+-export([updateProplist/2,updateUser/2]).
 
 -include_lib("kvs/include/user.hrl").
 
@@ -10,3 +10,12 @@ updateProplist({K,V},P) ->
 	        _ -> lists:keyreplace(K,1,Prop,{K,V})
     end.
 
+updateUser(E,N) ->
+    Username = case E#user.username of undefined -> N#user.username; _ -> E#user.username end,
+    Tokens = N#user.tokens,
+    Images = N#user.images,
+    Names = case E#user.names of undefined -> N#user.names; _ -> E#user.names end,
+    Surnames = case E#user.surnames of undefined -> N#user.surnames; _ -> E#user.surnames end,
+    Birth = case E#user.birth of undefined -> N#user.birth; _ -> E#user.birth end,
+    Sex = case E#user.sex of undefined -> N#user.sex; _ -> E#user.sex end,
+    E#user{username=Username,tokens=Tokens,images=Images,names=Names,surnames=Surnames,birth=Birth,sex=Sex}.