diff options
author | Andreas Gohr <gohr@cosmocode.de> | 2012-08-22 15:49:30 +0200 |
---|---|---|
committer | Andreas Gohr <gohr@cosmocode.de> | 2012-08-22 15:49:30 +0200 |
commit | 86bd5c0df3ca48ea055bb3a47cc25a9c3eff23c3 (patch) | |
tree | 79059aaf0bac475fbfc7c33fe9985ca52476a49b | |
parent | 70d71ed8159c719aa35363d05cc1dea2a95144f0 (diff) | |
download | rpg-86bd5c0df3ca48ea055bb3a47cc25a9c3eff23c3.tar.gz rpg-86bd5c0df3ca48ea055bb3a47cc25a9c3eff23c3.tar.bz2 |
add user's domain to the list of groups
-rw-r--r-- | inc/auth/ad.class.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/inc/auth/ad.class.php b/inc/auth/ad.class.php index e3ea87654..76b8924aa 100644 --- a/inc/auth/ad.class.php +++ b/inc/auth/ad.class.php @@ -15,6 +15,7 @@ * $conf['passcrypt'] = 'ssha'; * * $conf['auth']['ad']['account_suffix'] = ' + * * @my.domain.org'; * $conf['auth']['ad']['base_dn'] = 'DC=my,DC=domain,DC=org'; * $conf['auth']['ad']['domain_controllers'] = 'srv1.domain.org,srv2.domain.org'; @@ -211,6 +212,12 @@ class auth_ad extends auth_basic { $info['grps'][] = $conf['defaultgroup']; } + // add the user's domain to the groups + $domain = $this->_userDomain($user); + if($domain && !in_array("domain-$domain", (array) $info['grps'])) { + $info['grps'][] = $this->cleanGroup("domain-$domain"); + } + // check expiry time if($info['expires'] && $this->cnf['expirywarn']) { $result = $adldap->domain_info(array('maxpwdage')); // maximum pass age @@ -263,6 +270,8 @@ class auth_ad extends auth_basic { * @return string */ public function cleanUser($user) { + $domain = ''; + // get NTLM or Kerberos domain part list($dom, $user) = explode('\\', $user, 2); if(!$user) $user = $dom; @@ -271,8 +280,8 @@ class auth_ad extends auth_basic { if($dom) $domain = $dom; // clean up both - $domain = utf8_strtolower(trim($domain)); - $user = utf8_strtolower(trim($user)); + $domain = utf8_strtolower(trim($domain)); + $user = utf8_strtolower(trim($user)); // is this a known, valid domain? if not discard if(!is_array($this->cnf[$domain])) { |