mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-28 19:03:14 +01:00
mail account and addressbook migration in all directions and for dbmailuser schema too
This commit is contained in:
parent
ba56cef6d4
commit
7cd9685d71
@ -145,6 +145,12 @@ class setup_cmd_ldap extends setup_cmd
|
|||||||
// read accounts from old store
|
// read accounts from old store
|
||||||
$accounts = $this->accounts(!$to_ldap);
|
$accounts = $this->accounts(!$to_ldap);
|
||||||
|
|
||||||
|
/* uncomment if you want to have SQL cleaned up before migration
|
||||||
|
if (!$to_ldap)
|
||||||
|
{
|
||||||
|
$GLOBALS['egw']->db->query('TRUNCATE TABLE egw_accounts', __LINE__, __FILE__);
|
||||||
|
$GLOBALS['egw']->db->query('DELETE FROM egw_addressbook WHERE account_id IS NOT NULL', __LINE__, __FILE__);
|
||||||
|
}*/
|
||||||
// instanciate accounts obj for new store
|
// instanciate accounts obj for new store
|
||||||
$accounts_obj = $this->accounts_obj($to_ldap);
|
$accounts_obj = $this->accounts_obj($to_ldap);
|
||||||
|
|
||||||
@ -196,28 +202,51 @@ class setup_cmd_ldap extends setup_cmd
|
|||||||
$accounts_created++;
|
$accounts_created++;
|
||||||
|
|
||||||
// check if we need to migrate mail-account
|
// check if we need to migrate mail-account
|
||||||
// todo sql --> ldap and other schemas
|
if (!isset($ldap_class))
|
||||||
if (!$to_ldap && in_array('qmailUser', $account['objectclass']))
|
|
||||||
{
|
{
|
||||||
if (!isset($emailadmin_ldap))
|
$ldap_class = false;
|
||||||
|
$ldap = new ldap();
|
||||||
|
$ldap->ldapConnect();
|
||||||
|
foreach(array( // todo: have these enumerated by emailadmin ...
|
||||||
|
'qmailUser' => 'postfixldap',
|
||||||
|
'dbMailUser' => 'postfixdbmailuser',
|
||||||
|
// nothing to migrate for inetOrgPerson ...
|
||||||
|
) as $object_class => $class)
|
||||||
{
|
{
|
||||||
include_once(EGW_INCLUDE_ROOT.'/emailadmin/inc/class.postfixldap.inc.php');
|
if ($ldap->getLDAPServerInfo()->supportsObjectClass($object_class))
|
||||||
$emailadmin_ldap = new postfixldap();
|
{
|
||||||
|
$ldap_class = $class;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (($mailaccount = $emailadmin_ldap->getUserData($account_id)))
|
|
||||||
{
|
|
||||||
echo "<p>".array2string($mailaccount).': ';
|
|
||||||
if (!isset($emailadmin_sql))
|
|
||||||
{
|
|
||||||
$emailadmin_sql = new emailadmin_smtp_sql();
|
|
||||||
}
|
}
|
||||||
$emailadmin_sql->setUserData($account_id, (array)$mailaccount['mailAlternateAddress'],
|
}
|
||||||
|
if ($ldap_class)
|
||||||
|
{
|
||||||
|
if (!isset($emailadmin_src))
|
||||||
|
{
|
||||||
|
include_once(EGW_INCLUDE_ROOT.'/emailadmin/inc/class.'.$ldap_class.'.inc.php');
|
||||||
|
if ($to_ldap)
|
||||||
|
{
|
||||||
|
$emailadmin_src = new emailadmin_smtp_sql();
|
||||||
|
$emailadmin_dst = new $ldap_class();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$emailadmin_src = new $ldap_class();
|
||||||
|
$emailadmin_dst = new emailadmin_smtp_sql();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (($mailaccount = $emailadmin_src->getUserData($account_id)))
|
||||||
|
{
|
||||||
|
//echo "<p>".array2string($mailaccount).': ';
|
||||||
|
$emailadmin_dst->setUserData($account_id, (array)$mailaccount['mailAlternateAddress'],
|
||||||
(array)$mailaccount['mailForwardingAddress'], $mailaccount['deliveryMode'],
|
(array)$mailaccount['mailForwardingAddress'], $mailaccount['deliveryMode'],
|
||||||
$mailaccount['accountStatus'], $mailaccount['mailLocalAddress'],
|
$mailaccount['accountStatus'], $mailaccount['mailLocalAddress'],
|
||||||
$mailaccount['quotaLimit']);
|
$mailaccount['quotaLimit']);
|
||||||
echo "mail account migraged<br/>\n";
|
|
||||||
|
$msg[] = lang("Mail account of %1 migraged", $account['account_lid']);
|
||||||
}
|
}
|
||||||
else echo "<p>No mail account data found for #$account_id $account[account_lid]!</p>\n";
|
//else echo "<p>No mail account data found for #$account_id $account[account_lid]!</p>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// should we run any or some addAccount hooks
|
// should we run any or some addAccount hooks
|
||||||
@ -292,7 +321,9 @@ class setup_cmd_ldap extends setup_cmd
|
|||||||
$GLOBALS['egw_info']['server'][$name] = $value;
|
$GLOBALS['egw_info']['server'][$name] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ob_start();
|
||||||
$addressbook->migrate2ldap($to_ldap ? 'accounts' : 'accounts-back');
|
$addressbook->migrate2ldap($to_ldap ? 'accounts' : 'accounts-back');
|
||||||
|
$msg = array_merge($msg, explode("\n", strip_tags(ob_get_clean())));
|
||||||
|
|
||||||
$this->restore_db();
|
$this->restore_db();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user