diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-10-08 06:03:20 +0000 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-10-08 06:03:20 +0000 |
| commit | 07437ac3d436d427e4e8554f685f09a17d31e171 (patch) | |
| tree | 35799b1e22aa6fa18a27150bbf58f747d80f2a5d | |
| parent | db10e6aaa6e592bd6ebca94d7fc879da26079826 (diff) | |
| parent | baa65e89b90f21047e586c5842a1b7d499625fd0 (diff) | |
| download | gitlab-ce-07437ac3d436d427e4e8554f685f09a17d31e171.tar.gz | |
Merge branch 'feature/ssh_ldap_check' of /home/git/repositories/gitlab/gitlabhq
| -rw-r--r-- | lib/api/internal.rb | 1 | ||||
| -rw-r--r-- | lib/gitlab/ldap/user.rb | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb index 79f8eb3a543..ed6b50c3a6a 100644 --- a/lib/api/internal.rb +++ b/lib/api/internal.rb @@ -35,6 +35,7 @@ module API user = key.user return false if user.blocked? + return false if user.ldap_user? && Gitlab::LDAP::User.blocked?(user.extern_uid) action = case git_cmd when *DOWNLOAD_COMMANDS diff --git a/lib/gitlab/ldap/user.rb b/lib/gitlab/ldap/user.rb index 260bacfeeb0..78fc5dab9cb 100644 --- a/lib/gitlab/ldap/user.rb +++ b/lib/gitlab/ldap/user.rb @@ -71,6 +71,16 @@ module Gitlab find_by_uid(ldap_user.dn) if ldap_user end + # Check LDAP user existance by dn. User in git over ssh check + # + # It covers 2 cases: + # * when ldap account was removed + # * when ldap account was deactivated by change of OU membership in 'dn' + def blocked?(dn) + ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf) + ldap.connection.search(base: dn, size: 1).blank? + end + private def find_by_uid(uid) |
