/**
  * (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());
             }
         }
     }
 }