diff options
author | Arthur Schiwon <blizzz@owncloud.com> | 2012-04-15 13:37:35 +0200 |
---|---|---|
committer | Arthur Schiwon <blizzz@owncloud.com> | 2012-04-15 14:50:03 +0200 |
commit | 54a9fd2e6ab90555908897da66219a4d615af136 (patch) | |
tree | 1f4762bd64a59517f4e6785a23d46f343609bc8a /apps/user_ldap/group_ldap.php | |
parent | 1f91224f9e8363d13fba56efceb26e751ac9728a (diff) | |
download | nextcloud-server-54a9fd2e6ab90555908897da66219a4d615af136.tar.gz nextcloud-server-54a9fd2e6ab90555908897da66219a4d615af136.zip |
group LDAP: implemented inGroup()
Diffstat (limited to 'apps/user_ldap/group_ldap.php')
-rw-r--r-- | apps/user_ldap/group_ldap.php | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index b9d00fc78af..3b817c65b76 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -21,7 +21,7 @@ * */ - class OC_GROUP_LDAP extends OC_Group_Backend { +class OC_GROUP_LDAP extends OC_Group_Backend { // //group specific settings protected $ldapGroupFilter; protected $ldapGroupDisplayName; @@ -40,7 +40,20 @@ * Checks whether the user is member of a group or not. */ public function inGroup($uid, $gid) { - return array(); + $filter = OC_LDAP::combineFilterWithAnd(array( + $this->ldapGroupFilter, + LDAP_GROUP_MEMBER_ASSOC_ATTR.'='.$uid, + $this->ldapGroupDisplayName.'='.$gid + )); + $groups = OC_LDAP::search($filter, $this->ldapGroupDisplayName); + + if(count($groups) == 1) { + return true; + } else if(count($groups) < 1) { + return false; + } else { + throw new Exception('Too many groups of the same name!? – this excpetion should never been thrown :)'); + } } /** @@ -79,4 +92,4 @@ } } - }
\ No newline at end of file +}
\ No newline at end of file |