X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_userinfo.inc;h=5ac469a8434828c5e447cc63276c437259928507;hb=4fb612fa5cd925e235fed7a9baf79b225e2db78e;hp=337c398a79f7c8e408ce1eda0d19776690a9b692;hpb=c2c6a6e54355a1b67c25bb4d761d847513810d02;p=gosa.git diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc index 337c398a7..5ac469a84 100644 --- a/include/class_userinfo.inc +++ b/include/class_userinfo.inc @@ -24,6 +24,8 @@ class userinfo var $ip; var $username; var $cn; + var $gidNumber= -1; + var $language= ""; var $config; var $subtreeACL= array(); @@ -32,7 +34,7 @@ class userinfo function userinfo($config, $userdn){ $this->config= $config; $ldap= $this->config->get_ldap_link(); - $ldap->cat($userdn); + $ldap->cat($userdn,array('sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage')); $attrs= $ldap->fetch(); if (isset($attrs['givenName'][0]) && isset($attrs['sn'][0])){ @@ -40,6 +42,14 @@ class userinfo } else { $this->cn= $attrs['uid'][0]; } + if (isset($attrs['gidNumber'][0])){ + $this->gidNumber= $attrs['gidNumber'][0]; + } + + /* Assign user language */ + if (isset($attrs['preferredLanguage'][0])){ + $this->language= $attrs['preferredLanguage'][0]; + } $this->dn= $userdn; $this->ip= $_SERVER['REMOTE_ADDR']; @@ -53,8 +63,13 @@ class userinfo /* Load ACL's from all groups we're in */ $this->subtreeACL= array(); $ldap->cd($this->config->current['BASE']); - $ldap->search("(&(objectClass=posixGroup)(objectClass=gosaObject)". - "(|(memberUid=$this->username)(cn=$this->username)))"); + if ($this->gidNumber == -1){ + $ldap->search("(&(objectClass=posixGroup)(objectClass=gosaObject)". + "(memberUid=$this->username))"); + } else { + $ldap->search("(&(objectClass=posixGroup)(objectClass=gosaObject)". + "(|(memberUid=$this->username)(gidNumber=$this->gidNumber)))"); + } while($attrs = $ldap->fetch()){ $base= preg_replace('/^[^,]+,ou=[^,]+,/i', "",$ldap->getDN());