Exemple #1
0
 /**
  * Factory method to create the RootDSE.
  *
  * @param  Zend_Ldap $ldap
  * @return Zend_Ldap_Node_RootDse
  * @throws Zend_Ldap_Exception
  */
 public static function create(Zend_Ldap $ldap)
 {
     $dn = Zend_Ldap_Dn::fromString('');
     $data = $ldap->getEntry($dn, array('*', '+'), true);
     if (isset($data['domainfunctionality'])) {
         /**
          * @see Zend_Ldap_Node_RootDse_ActiveDirectory
          */
         require_once 'Zend/Ldap/Node/RootDse/ActiveDirectory.php';
         return new Zend_Ldap_Node_RootDse_ActiveDirectory($dn, $data);
     } else {
         if (isset($data['dsaname'])) {
             /**
              * @see Zend_Ldap_Node_RootDse_ActiveDirectory
              */
             require_once 'Zend/Ldap/Node/RootDse/eDirectory.php';
             return new Zend_Ldap_Node_RootDse_eDirectory($dn, $data);
         } else {
             if (isset($data['structuralobjectclass']) && $data['structuralobjectclass'][0] === 'OpenLDAProotDSE') {
                 /**
                  * @see Zend_Ldap_Node_RootDse_OpenLdap
                  */
                 require_once 'Zend/Ldap/Node/RootDse/OpenLdap.php';
                 return new Zend_Ldap_Node_RootDse_OpenLdap($dn, $data);
             } else {
                 return new self($dn, $data);
             }
         }
     }
 }
Exemple #2
0
 /**
  * Factory method to create the Schema node.
  *
  * @param  Zend_Ldap $ldap
  * @return Zend_Ldap_Node_Schema
  * @throws Zend_Ldap_Exception
  */
 public static function create(Zend_Ldap $ldap)
 {
     $dn = $ldap->getRootDse()->getSchemaDn();
     $data = $ldap->getEntry($dn, array('*', '+'), true);
     switch ($ldap->getRootDse()->getServerType()) {
         case Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY:
             /**
              * @see Zend_Ldap_Node_Schema_ActiveDirectory
              */
             return new Zend_Ldap_Node_Schema_ActiveDirectory($dn, $data, $ldap);
         case Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP:
             /**
              * @see Zend_Ldap_Node_RootDse_ActiveDirectory
              */
             return new Zend_Ldap_Node_Schema_OpenLdap($dn, $data, $ldap);
         case Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY:
         default:
             return new self($dn, $data, $ldap);
     }
 }
Exemple #3
0
 /**
  * Factory method to create an attached Zend_Ldap_Node for a given DN.
  *
  * @param  string|array|Zend_Ldap_Dn $dn
  * @param  Zend_Ldap                 $ldap
  * @return Zend_Ldap_Node|null
  * @throws Zend_Ldap_Exception
  */
 public static function fromLdap($dn, Zend_Ldap $ldap)
 {
     if (is_string($dn) || is_array($dn)) {
         $dn = Zend_Ldap_Dn::factory($dn);
     } else {
         if ($dn instanceof Zend_Ldap_Dn) {
             $dn = clone $dn;
         } else {
             /**
              * @see Zend_Ldap_Exception
              */
             require_once PHP_LIBRARY_PATH . 'Zend/Ldap/Exception.php';
             throw new Zend_Ldap_Exception(null, '$dn is of a wrong data type.');
         }
     }
     $data = $ldap->getEntry($dn, array('*', '+'), true);
     if ($data === null) {
         return null;
     }
     $entry = new self($dn, $data, true, $ldap);
     return $entry;
 }
Exemple #4
0
 /**
  * Reload node attributes from LDAP.
  *
  * This is an online method.
  *
  * @param  Zend_Ldap $ldap
  * @return Zend_Ldap_Node_Abstract Provides a fluid interface
  * @throws Zend_Ldap_Exception
  */
 public function reload(Zend_Ldap $ldap = null)
 {
     if ($ldap !== null) {
         $data = $ldap->getEntry($this->_getDn(), array('*', '+'), true);
         $this->_loadData($data, true);
     }
     return $this;
 }
Exemple #5
0
 /**
  * This function takes care of loading the user from LDAP
  * @param String $userId
  * @return false if the data is not present, or an array containing the data.
  */
 protected function _loadUser($userId)
 {
     $user = $this->_ldap->getEntry($this->_getDNForUserId($userId));
     return $user;
 }