config= $config; $ldap= $this->config->get_ldap_link(); $ldap->cat($userdn,array('sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage')); $attrs= $ldap->fetch(); if (isset($attrs['givenName'][0]) && isset($attrs['sn'][0])){ $this->cn= $attrs['givenName'][0]." ".$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']; } function loadACL() { $ldap= $this->config->get_ldap_link(); /* Load ACL's from all groups we're in */ $this->subtreeACL= array(); $ldap->cd($this->config->current['BASE']); 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()); $base= preg_replace("/[ ]*,[ ]*/", ",", $base); for ($i= 0; $i<$attrs["gosaSubtreeACL"]["count"]; $i++){ $this->subtreeACL[$base][]= $attrs["gosaSubtreeACL"][$i]; } } } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>