Ejemplo n.º 1
0
 /**
  * create a new group in sync backend
  *
  * @param  Tinebase_Model_Group  $_group
  * 
  * @return Tinebase_Model_Group
  */
 public function addGroupInSyncBackend(Tinebase_Model_Group $_group)
 {
     if ($this->_isReadOnlyBackend) {
         return;
     }
     $dn = $this->_generateDn($_group);
     $objectClass = array('top', 'posixGroup');
     $gidNumber = $this->_generateGidNumber();
     $ldapData = array('objectclass' => $objectClass, 'gidnumber' => $gidNumber, 'cn' => $_group->name, 'description' => $_group->description);
     if (isset($this->_options['useRfc2307bis']) && $this->_options['useRfc2307bis'] == true) {
         $ldapData['objectclass'][] = 'groupOfNames';
         // the member attribute can not be emtpy, seems to be common praxis
         // to set the member attribute to the group dn itself for empty groups
         $ldapData['member'] = $dn;
     }
     foreach ($this->_plugins as $plugin) {
         $plugin->inspectAddGroup($_group, $ldapData);
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . '  $dn: ' . $dn);
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . '  $ldapData: ' . print_r($ldapData, true));
     }
     $this->_ldap->add($dn, $ldapData);
     $groupId = $this->_ldap->getEntry($dn, array($this->_groupUUIDAttribute));
     $groupId = $groupId[$this->_groupUUIDAttribute][0];
     $group = $this->getGroupByIdFromSyncBackend($groupId);
     return $group;
 }
 /**
  * add an user
  * 
  * @param   Tinebase_Model_FullUser  $user
  * @return  Tinebase_Model_FullUser|null
  */
 public function addUserToSyncBackend(Tinebase_Model_FullUser $user)
 {
     if ($this->_isReadOnlyBackend) {
         return null;
     }
     $ldapData = $this->_user2ldap($user);
     $ldapData['uidnumber'] = $this->_generateUidNumber();
     $ldapData['objectclass'] = $this->_requiredObjectClass;
     foreach ($this->_ldapPlugins as $plugin) {
         $plugin->inspectAddUser($user, $ldapData);
     }
     $dn = $this->_generateDn($user);
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . '  ldapData: ' . print_r($ldapData, true));
     }
     $this->_ldap->add($dn, $ldapData);
     $userId = $this->_ldap->getEntry($dn, array($this->_userUUIDAttribute));
     $userId = $userId[$this->_userUUIDAttribute][0];
     $user = $this->getUserByPropertyFromSyncBackend('accountId', $userId, 'Tinebase_Model_FullUser');
     return $user;
 }