/** * return contact information for user * * @param Tinebase_Model_FullUser $_user * @param Addressbook_Model_Contact $_contact */ public function updateContactFromSyncBackend(Tinebase_Model_FullUser $_user, Addressbook_Model_Contact $_contact) { $userData = $this->_getMetaData($_user); $userData = $this->_ldap->getEntry($userData['dn']); $this->_ldap2Contact($userData, $_contact); #if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " synced user object: " . print_r($_contact->toArray(), true)); }
/** * 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; }