index 337c398a79f7c8e408ce1eda0d19776690a9b692..5ac469a8434828c5e447cc63276c437259928507 100644 (file)
var $ip;
var $username;
var $cn;
+ var $gidNumber= -1;
+ var $language= "";
var $config;
var $subtreeACL= array();
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])){
} 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'];
/* 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());