Browse files

Use new OAuth classes

  • Loading branch information...
1 parent 0df1cf7 commit 9028999c933a3db790ef4645474d7b04888a308f @randx randx committed Sep 4, 2013
Showing with 15 additions and 9 deletions.
  1. +15 −9 app/controllers/omniauth_callbacks_controller.rb
View
24 app/controllers/omniauth_callbacks_controller.rb
@@ -18,33 +18,39 @@ def failure_message
def ldap
# We only find ourselves here
# if the authentication to LDAP was successful.
- @user = Gitlab::LDAP::User.find_or_create(request.env["omniauth.auth"])
+ @user = Gitlab::LDAP::User.find_or_create(oauth)
@user.remember_me = true if @user.persisted?
-
sign_in_and_redirect(@user)
end
private
def handle_omniauth
- oauth = request.env['omniauth.auth']
- provider, uid = oauth['provider'], oauth['uid']
-
if current_user
# Change a logged-in user's authentication method:
- current_user.extern_uid = uid
- current_user.provider = provider
+ current_user.extern_uid = oauth['uid']
+ current_user.provider = oauth['provider']
current_user.save
redirect_to profile_path
else
- @user = User.find_or_new_for_omniauth(oauth)
+ @user = Gitlab::OAuth::User.find(oauth)
+
+ # Create user if does not exist
+ # and allow_single_sign_on is true
+ if Gitlab.config.omniauth['allow_single_sign_on']
+ @user ||= Gitlab::OAuth::User.create(oauth)
+ end
if @user
- sign_in_and_redirect @user
+ sign_in_and_redirect(@user)
else
flash[:notice] = "There's no such user!"
redirect_to new_user_session_path
end
end
end
+
+ def oauth
+ @oauth ||= request.env['omniauth.auth']
+ end
end

0 comments on commit 9028999

Please sign in to comment.