示例#1
0
 /**
  * construct a typo3 user backend
  */
 public function __construct()
 {
     parent::__construct();
     $this->_t3db = Tinebase_Core::getDb();
     $this->_sqlUserBackend = new Tinebase_User_Sql();
 }
 /**
  * the constructor
  *
  * @param  array  $_options  Options used in connecting, binding, etc.
  * @throws Tinebase_Exception_Backend_Ldap
  */
 public function __construct(array $_options = array())
 {
     parent::__construct($_options);
     if (empty($_options['userUUIDAttribute'])) {
         $_options['userUUIDAttribute'] = 'entryUUID';
     }
     if (empty($_options['groupUUIDAttribute'])) {
         $_options['groupUUIDAttribute'] = 'entryUUID';
     }
     if (empty($_options['baseDn'])) {
         $_options['baseDn'] = $_options['userDn'];
     }
     if (empty($_options['userFilter'])) {
         $_options['userFilter'] = 'objectclass=posixaccount';
     }
     if (empty($_options['userSearchScope'])) {
         $_options['userSearchScope'] = Zend_Ldap::SEARCH_SCOPE_SUB;
     }
     if (empty($_options['groupFilter'])) {
         $_options['groupFilter'] = 'objectclass=posixgroup';
     }
     if (isset($_options['requiredObjectClass'])) {
         $this->_requiredObjectClass = (array) $_options['requiredObjectClass'];
     }
     if (isset($_options['readonly']) || array_key_exists('readonly', $_options)) {
         $this->_isReadOnlyBackend = (bool) $_options['readonly'];
     }
     if (isset($_options['ldap']) || array_key_exists('ldap', $_options)) {
         $this->_ldap = $_options['ldap'];
     }
     $this->_options = $_options;
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . " Registering " . print_r($this->_options, true));
     }
     $this->_userUUIDAttribute = strtolower($this->_options['userUUIDAttribute']);
     $this->_groupUUIDAttribute = strtolower($this->_options['groupUUIDAttribute']);
     $this->_baseDn = $this->_options['baseDn'];
     $this->_userBaseFilter = $this->_options['userFilter'];
     $this->_userSearchScope = $this->_options['userSearchScope'];
     $this->_groupBaseFilter = $this->_options['groupFilter'];
     $this->_rowNameMapping['accountId'] = $this->_userUUIDAttribute;
     if (!$this->_ldap instanceof Tinebase_Ldap) {
         $this->_ldap = new Tinebase_Ldap($this->_options);
         try {
             $this->_ldap->bind();
         } catch (Zend_Ldap_Exception $zle) {
             // @todo move this to Tinebase_Ldap?
             throw new Tinebase_Exception_Backend_Ldap('Could not bind to LDAP: ' . $zle->getMessage());
         }
     }
     foreach ($this->_plugins as $plugin) {
         if ($plugin instanceof Tinebase_User_Plugin_LdapInterface) {
             $this->registerLdapPlugin($plugin);
         }
     }
 }
示例#3
0
 /**
  * the constructor
  *
  * @param  array  $_options  Options used in connecting, binding, etc.
  * @throws Tinebase_Exception_Backend_Ldap
  */
 public function __construct(array $_options = array())
 {
     parent::__construct($_options);
     if (empty($_options['userUUIDAttribute'])) {
         $_options['userUUIDAttribute'] = 'entryUUID';
     }
     if (empty($_options['groupUUIDAttribute'])) {
         $_options['groupUUIDAttribute'] = 'entryUUID';
     }
     if (empty($_options['baseDn'])) {
         $_options['baseDn'] = $_options['userDn'];
     }
     if (empty($_options['userFilter'])) {
         $_options['userFilter'] = 'objectclass=posixaccount';
     }
     if (empty($_options['userSearchScope'])) {
         $_options['userSearchScope'] = Zend_Ldap::SEARCH_SCOPE_SUB;
     }
     if (empty($_options['groupFilter'])) {
         $_options['groupFilter'] = 'objectclass=posixgroup';
     }
     if (isset($_options['requiredObjectClass'])) {
         $this->_requiredObjectClass = (array) $_options['requiredObjectClass'];
     }
     if (array_key_exists('readonly', $_options)) {
         $this->_isReadOnlyBackend = (bool) $_options['readonly'];
     }
     $this->_options = $_options;
     $this->_userUUIDAttribute = strtolower($this->_options['userUUIDAttribute']);
     $this->_groupUUIDAttribute = strtolower($this->_options['groupUUIDAttribute']);
     $this->_baseDn = $this->_options['baseDn'];
     $this->_userBaseFilter = $this->_options['userFilter'];
     $this->_userSearchScope = $this->_options['userSearchScope'];
     $this->_groupBaseFilter = $this->_options['groupFilter'];
     $this->_rowNameMapping['accountId'] = $this->_userUUIDAttribute;
     try {
         $this->_ldap = new Tinebase_Ldap($this->_options);
         $this->_ldap->bind();
     } catch (Zend_Ldap_Exception $zle) {
         // @todo move this to Tinebase_Ldap?
         throw new Tinebase_Exception_Backend_Ldap('Could not bind to LDAP: ' . $zle->getMessage());
     }
     foreach ($this->_plugins as $plugin) {
         if ($plugin instanceof Tinebase_User_Plugin_LdapInterface) {
             $plugin->setLdap($this->_ldap);
             $this->_ldapPlugins[] = $plugin;
         }
     }
 }