mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-28 17:48:51 +01:00
moved saving of account contact-data to accounts class
This commit is contained in:
parent
236ed1e3df
commit
ad7972870c
@ -298,12 +298,40 @@ class accounts extends accounts_backend
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (($id = parent::save($data)) && $data['account_type'] == 'u' && $data['account_primary_group'] &&
|
if (($id = parent::save($data)) && $data['account_type'] != 'g')
|
||||||
(!($memberships = $this->memberships($id,true)) || !in_array($data['account_primary_group'],$memberships)))
|
|
||||||
{
|
{
|
||||||
$this->cache_invalidate($data['account_id']);
|
// if we are not on a pure LDAP system, we have to write the account-date via the contacts class now
|
||||||
$memberships[] = $data['account_primary_group'];
|
if (($GLOBALS['egw_info']['server']['account_repository'] != 'ldap' ||
|
||||||
$this->set_memberships($memberships,$id);
|
$GLOBALS['egw_info']['server']['contact_repository'] != 'ldap') &&
|
||||||
|
(!($old = $this->read($data['account_id'])) || // only for new account or changed contact-data
|
||||||
|
$old['account_firstname'] != $data['account_firstname'] ||
|
||||||
|
$old['account_lastname'] != $data['account_lastname'] ||
|
||||||
|
$old['account_email'] != $data['account_email']))
|
||||||
|
{
|
||||||
|
if (!$data['person_id']) $data['person_id'] = $old['person_id'];
|
||||||
|
|
||||||
|
if (!is_object($GLOBALS['egw']->contacts))
|
||||||
|
{
|
||||||
|
$GLOBALS['egw']->contacts =& CreateObject('phpgwapi.contacts');
|
||||||
|
}
|
||||||
|
$contact = array(
|
||||||
|
'n_given' => $data['account_firstname'],
|
||||||
|
'n_family' => $data['account_lastname'],
|
||||||
|
'email' => $data['account_email'],
|
||||||
|
'account_id' => $data['account_id'],
|
||||||
|
'id' => $data['person_id'],
|
||||||
|
'owner' => 0,
|
||||||
|
);
|
||||||
|
$GLOBALS['egw']->contacts->save($contact,true); // true = ignore addressbook acl
|
||||||
|
}
|
||||||
|
// save primary group if necessary
|
||||||
|
if ($data['account_primary_group'] && (!($memberships = $this->memberships($id,true)) ||
|
||||||
|
!in_array($data['account_primary_group'],$memberships)))
|
||||||
|
{
|
||||||
|
$this->cache_invalidate($data['account_id']);
|
||||||
|
$memberships[] = $data['account_primary_group'];
|
||||||
|
$this->set_memberships($memberships,$id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$this->cache_invalidate($data['account_id']);
|
$this->cache_invalidate($data['account_id']);
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* The SQL backend stores the group memberships via the ACL class (location 'phpgw_group')
|
* The SQL backend stores the group memberships via the ACL class (location 'phpgw_group')
|
||||||
*
|
*
|
||||||
* The (positive) account_id's of groups are mapped in this class to negative numeric
|
* The (positive) account_id's of groups are mapped in this class to negative numeric
|
||||||
* account_id's, to conform wit the way we handle groups in LDAP!
|
* account_id's, to conform with the way we handle groups in LDAP!
|
||||||
*
|
*
|
||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de> complete rewrite in 6/2006 and
|
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de> complete rewrite in 6/2006 and
|
||||||
@ -186,30 +186,7 @@ class accounts_backend
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// check if account and the contact-data changed
|
|
||||||
if ($data['account_type'] == 'g' || ($old = $this->read($data['account_id'])) &&
|
|
||||||
$old['account_firstname'] == $data['account_firstname'] &&
|
|
||||||
$old['account_lastname'] == $data['account_lastname'] &&
|
|
||||||
$old['account_email'] == $data['account_email'])
|
|
||||||
{
|
|
||||||
return $data['account_id']; // group or no change --> no need to update the contact
|
|
||||||
}
|
|
||||||
if (!$data['person_id']) $data['person_id'] = $old['person_id'];
|
|
||||||
}
|
}
|
||||||
if (!is_object($GLOBALS['egw']->contacts))
|
|
||||||
{
|
|
||||||
$GLOBALS['egw']->contacts =& CreateObject('phpgwapi.contacts');
|
|
||||||
}
|
|
||||||
$contact = array(
|
|
||||||
'n_given' => $data['account_firstname'],
|
|
||||||
'n_family' => $data['account_lastname'],
|
|
||||||
'email' => $data['account_email'],
|
|
||||||
'account_id' => $data['account_id'],
|
|
||||||
'id' => $data['person_id'],
|
|
||||||
'owner' => 0,
|
|
||||||
);
|
|
||||||
$GLOBALS['egw']->contacts->save($contact,true); // true = ignore addressbook acl
|
|
||||||
|
|
||||||
return $data['account_id'];
|
return $data['account_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user