/** * (non-PHPdoc) */ protected function _saveOrUpdateSpecialResultToLdap() { foreach ($this->_ldapRawData as $dn) { if (isset($dn['simplemail_readonly'])) { continue; } // check for any values of worth to be saved (compared to minimal entry) $skeleton = array_change_key_case($this->_simpleMailConfig['skeleton']); $skeleton['dn'] = true; $skeleton = array_merge($skeleton, Zend_Ldap_Dn::fromString($this->_simpleMailConfig['storage_rdn'])->getRdn()); try { if (count(array_diff_key($dn, $skeleton)) > 1) { $this->_ldap->save(Zend_Ldap_Dn::fromString($dn['dn']), $dn); } else { $this->_ldap->delete(Zend_Ldap_Dn::fromString($dn['dn']), false); } } catch (Zend_Ldap_Exception $ldapException) { if (Tinebase_Core::isLogLevel(Zend_Log::WARN)) { Tinebase_Core::getLogger()->warn(__METHOD__ . '::' . __LINE__ . ' simpleMail - cannot modify ldap entry (' . $dn['dn'] . '): ' . $ldapException->getMessage()); } } } }
/** * (non-PHPdoc) */ protected function _saveOrUpdateSpecialResultToLdap() { foreach ($this->_ldapRawData as $dn) { if (isset($dn['simplemail_readonly'])) { continue; } $keepEntryThreshold = 0; foreach ($this->_propertyMapping as $property => $ldapName) { if (substr($ldapName, -8) == ':boolean') { $ldapName = substr($ldapName, 0, -8); } if (!isset($dn[$ldapName])) { $dn[$ldapName] = null; $keepEntryThreshold++; } elseif ($dn[$ldapName] === null) { $keepEntryThreshold++; } } // check for any values of worth to be saved (compared to minimal entry) $dn = array_change_key_case($dn); $skeleton = array_change_key_case($this->_simpleMailConfig['skeleton']); $skeleton = array_merge($skeleton, Zend_Ldap_Dn::fromString($this->_simpleMailConfig['storage_rdn'])->getRdn()); $skeleton['dn'] = true; // Zend_Ldap_Dn always carries the DN try { if (count(array_diff_key($dn, $skeleton)) > $keepEntryThreshold) { $this->_ldap->save(Zend_Ldap_Dn::fromString($dn['dn']), $dn); } else { $this->_ldap->delete(Zend_Ldap_Dn::fromString($dn['dn']), false); } } catch (Zend_Ldap_Exception $ldapException) { if (Tinebase_Core::isLogLevel(Zend_Log::WARN)) { Tinebase_Core::getLogger()->warn(__METHOD__ . '::' . __LINE__ . ' simpleMail - cannot modify ldap entry (' . $dn['dn'] . '): ' . $ldapException->getMessage()); } } } }