forked from extern/egroupware
fixed error in ldap-backend: "Error saving the contact !!! 1"
This commit is contained in:
parent
f79aa7e65f
commit
f5cf1ed1d2
@ -447,12 +447,6 @@ class bocontacts extends socontacts
|
|||||||
$contact['n_fn'] = $this->fullname($contact);
|
$contact['n_fn'] = $this->fullname($contact);
|
||||||
if (isset($contact['org_name'])) $contact['n_fileas'] = $this->fileas($contact);
|
if (isset($contact['org_name'])) $contact['n_fileas'] = $this->fileas($contact);
|
||||||
}
|
}
|
||||||
// savegard the account_id against changes not triggered by the accounts-class
|
|
||||||
if (isset($contact['account_id']) && !$ignore_acl)
|
|
||||||
{
|
|
||||||
$account_id = $contact['account_id'];
|
|
||||||
unset($contact['account_id']);
|
|
||||||
}
|
|
||||||
// we dont update the content-history, if we run inside setup (admin-account-creation)
|
// we dont update the content-history, if we run inside setup (admin-account-creation)
|
||||||
if(!($this->error = parent::save($contact)) && is_object($GLOBALS['egw']->contenthistory))
|
if(!($this->error = parent::save($contact)) && is_object($GLOBALS['egw']->contenthistory))
|
||||||
{
|
{
|
||||||
@ -463,9 +457,6 @@ class bocontacts extends socontacts
|
|||||||
$GLOBALS['egw']->accounts->cache_invalidate($contact['account_id']);
|
$GLOBALS['egw']->accounts->cache_invalidate($contact['account_id']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// restoring the unset account_id
|
|
||||||
if ($account_id) $contact['account_id'] = $acount_id;
|
|
||||||
|
|
||||||
return $this->error ? false : $contact['id'];
|
return $this->error ? false : $contact['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -317,6 +317,7 @@ class so_ldap
|
|||||||
// group address book
|
// group address book
|
||||||
if(!($cn = strtolower($GLOBALS['egw']->accounts->id2name((int)$data['owner']))))
|
if(!($cn = strtolower($GLOBALS['egw']->accounts->id2name((int)$data['owner']))))
|
||||||
{
|
{
|
||||||
|
error_log('Unknown owner');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$baseDN = 'cn='. ldap::quote($cn) .','.($data['owner'] < 0 ? $this->sharedContactsDN : $this->personalContactsDN);
|
$baseDN = 'cn='. ldap::quote($cn) .','.($data['owner'] < 0 ? $this->sharedContactsDN : $this->personalContactsDN);
|
||||||
@ -339,7 +340,8 @@ class so_ldap
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return true; // only admin or the user itself is allowd to write accounts!
|
error_log("Permission denied, to write: data[owner]=$data[owner], data[account_id]=$data[account_id], account_id=".$GLOBALS['egw_info']['user']['account_id']);
|
||||||
|
return lang('Permission denied !!!'); // only admin or the user itself is allowd to write accounts!
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if $baseDN exists. If not create it
|
// check if $baseDN exists. If not create it
|
||||||
@ -415,6 +417,8 @@ class so_ldap
|
|||||||
// update entry
|
// update entry
|
||||||
$dn = $oldContactInfo[0]['dn'];
|
$dn = $oldContactInfo[0]['dn'];
|
||||||
$needRecreation = false;
|
$needRecreation = false;
|
||||||
|
// never allow to change the uidNumber (account_id) on update, as it could be misused by eg. xmlrpc or syncml
|
||||||
|
unset($ldapContact['uidnumber']);
|
||||||
|
|
||||||
// add missing objectclasses
|
// add missing objectclasses
|
||||||
if($ldapContact['objectClass'] && array_diff($ldapContact['objectClass'],$oldObjectclasses))
|
if($ldapContact['objectClass'] && array_diff($ldapContact['objectClass'],$oldObjectclasses))
|
||||||
@ -875,7 +879,7 @@ class so_ldap
|
|||||||
* check if $baseDN exists. If not create it
|
* check if $baseDN exists. If not create it
|
||||||
*
|
*
|
||||||
* @param string $baseDN cn=xxx,ou=yyy,ou=contacts,$GLOBALS['egw_info']['server']['ldap_contact_context']
|
* @param string $baseDN cn=xxx,ou=yyy,ou=contacts,$GLOBALS['egw_info']['server']['ldap_contact_context']
|
||||||
* @return boolean/string fase on success or string with error-message
|
* @return boolean/string false on success or string with error-message
|
||||||
*/
|
*/
|
||||||
function _check_create_dn($baseDN)
|
function _check_create_dn($baseDN)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user