diff options
author | Stan Hu <stanhu@gmail.com> | 2018-05-12 22:02:26 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-05-12 22:33:29 -0700 |
commit | 1be2ec2d04056e79f144f1782b4b8b75f87f1679 (patch) | |
tree | f213478ee4dd5740db1bd16562a4f748af8917af /lib/gitlab/auth | |
parent | 40683268b2b5ad807194387d8345a30195e178c4 (diff) | |
download | gitlab-ce-1be2ec2d04056e79f144f1782b4b8b75f87f1679.tar.gz |
Fix system hook not firing for blocked users when LDAP sign-in is used
An LDAP sign-in request results in a different request parameter than
a standard GitLab sign-in. Since Warden doesn't pass us the user that
was blocked, we first search for a `username` in the request parameters
and then look for `user.login`.
Closes #46307
Diffstat (limited to 'lib/gitlab/auth')
-rw-r--r-- | lib/gitlab/auth/blocked_user_tracker.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/gitlab/auth/blocked_user_tracker.rb b/lib/gitlab/auth/blocked_user_tracker.rb index dae03a179e4..7609a7b04f6 100644 --- a/lib/gitlab/auth/blocked_user_tracker.rb +++ b/lib/gitlab/auth/blocked_user_tracker.rb @@ -17,7 +17,9 @@ module Gitlab # message passed along by Warden. return unless message == User::BLOCKED_MESSAGE - login = env.dig(ACTIVE_RECORD_REQUEST_PARAMS, 'user', 'login') + # Check for either LDAP or regular GitLab account logins + login = env.dig(ACTIVE_RECORD_REQUEST_PARAMS, 'username') || + env.dig(ACTIVE_RECORD_REQUEST_PARAMS, 'user', 'login') return unless login.present? |