avz.erl 1.3 KB

123456789101112131415161718192021222324252627
  1. -module(avz).
  2. -author('Maxim Sokhatsky').
  3. -compile(export_all).
  4. -include_lib("avz/include/avz.hrl").
  5. -include_lib("n2o/include/wf.hrl").
  6. -include_lib("kvs/include/users.hrl").
  7. callback(Methods) -> [ M:callback() || M <- Methods].
  8. sdk(Methods) -> [ M:sdks() || M <- Methods].
  9. event(init) -> [];
  10. event(logout) -> wf:user(undefined), wf:redirect(?LOGIN_PAGE);
  11. event(login) -> wf:redirect(?AFTER_LOGIN);
  12. event(to_login) -> wf:redirect(?LOGIN_PAGE);
  13. event({Method,Event}) -> Method:event({Method,Event});
  14. event(Ev) -> error_logger:info_msg("Page Event ~p",[Ev]).
  15. api_event(plusLogin, Args, Term) -> google:api_event(plusLogin, Args, Term);
  16. api_event(fbLogin, Args, Term) -> facebook:api_event(fbLogin, Args, Term);
  17. api_event(Name, Args, Term) -> error_logger:info_msg("Unknown API event: ~p ~p ~p",[Name, Args, Term]).
  18. login_user(User) -> wf:user(User), wf:redirect(?AFTER_LOGIN).
  19. login(Key, Args)-> case Args of [{error, E}|_Rest] -> error_logger:info_msg("oauth error: ~p", [E]);
  20. _ -> case kvs:get(user,Key:email_prop(Args,Key)) of
  21. {ok,Existed} -> {Id, RegData} = Key:registration_data(Args, Key, Existed), login_user(RegData);
  22. {error,_} -> {Id, RegData} = Key:registration_data(Args, Key, #user{}),
  23. kvs:put(RegData), login_user(RegData) end end.