summaryrefslogtreecommitdiff
path: root/app/controllers/sessions_controller.rb
diff options
context:
space:
mode:
authorGitLab Release Tools Bot <delivery-team+release-tools@gitlab.com>2020-09-02 12:48:21 +0000
committerGitLab Release Tools Bot <delivery-team+release-tools@gitlab.com>2020-09-02 12:48:21 +0000
commitcb6968910528d6752bf4ae07f36c8802cf49f728 (patch)
treebda0459ddfed8730e6939a62598ce4d2505df468 /app/controllers/sessions_controller.rb
parent2f99285841c974cd688afbd8b74b26c8dfb7c937 (diff)
parentc4e5ddc61fadd842693a4f5dcb1732df1fbb5df2 (diff)
downloadgitlab-ce-cb6968910528d6752bf4ae07f36c8802cf49f728.tar.gz
Merge remote-tracking branch 'dev/13-1-stable' into 13-1-stable
Diffstat (limited to 'app/controllers/sessions_controller.rb')
-rw-r--r--app/controllers/sessions_controller.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 9e8075d4bcc..4e1228dec39 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -8,6 +8,7 @@ class SessionsController < Devise::SessionsController
include Recaptcha::Verify
include RendersLdapServers
include KnownSignIn
+ include Gitlab::Utils::StrongMemoize
skip_before_action :check_two_factor_requirement, only: [:destroy]
# replaced with :require_no_authentication_without_flash
@@ -197,10 +198,14 @@ class SessionsController < Devise::SessionsController
end
def find_user
- if session[:otp_user_id]
- User.find(session[:otp_user_id])
- elsif user_params[:login]
- User.by_login(user_params[:login])
+ strong_memoize(:find_user) do
+ if session[:otp_user_id] && user_params[:login]
+ User.by_id_and_login(session[:otp_user_id], user_params[:login]).first
+ elsif session[:otp_user_id]
+ User.find(session[:otp_user_id])
+ elsif user_params[:login]
+ User.by_login(user_params[:login])
+ end
end
end