mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-29 19:33:54 +01:00
970 lines
40 KiB
PHP
970 lines
40 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* EGroupware EMailAdmin - DB schema
|
||
|
*
|
||
|
* @link http://www.egroupware.org
|
||
|
* @author Lars Kneschke
|
||
|
* @author Klaus Leithoff <kl@stylite.de>
|
||
|
* @author Ralf Becker <rb@stylite.de>
|
||
|
* @package emailadmin
|
||
|
* @subpackage setup
|
||
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||
|
* @version $Id$
|
||
|
*/
|
||
|
|
||
|
use EGroupware\Api\Mail\Credentials as emailadmin_credentials;
|
||
|
use EGroupware\Api\Mail\Account as emailadmin_account;
|
||
|
use EGroupware\Api\Preferences as preferences;
|
||
|
use EGroupware\Api\Accounts as accounts;
|
||
|
|
||
|
function emailadmin_upgrade0_0_3()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','smtpType', array('type' => 'int', 'precision' => 4));
|
||
|
|
||
|
return $setup_info['emailadmin']['currentver'] = '0.0.4';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade0_0_4()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','defaultDomain', array('type' => 'varchar', 'precision' => 100));
|
||
|
|
||
|
return $setup_info['emailadmin']['currentver'] = '0.0.5';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade0_0_5()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','organisationName', array('type' => 'varchar', 'precision' => 100));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','userDefinedAccounts', array('type' => 'varchar', 'precision' => 3));
|
||
|
|
||
|
return $setup_info['emailadmin']['currentver'] = '0.0.6';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade0_0_6()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','oldimapcclient',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '3'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '0.0.007';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade0_0_007()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_emailadmin','oldimapcclient','imapoldcclient');
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '0.0.008';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade0_0_008()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.0';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_0_0()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','editforwardingaddress',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '3'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.1';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_0_1()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','ea_order', array('type' => 'int', 'precision' => 4));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.2';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_0_2()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','ea_appname', array('type' => 'varchar','precision' => '80'));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','ea_group', array('type' => 'varchar','precision' => '80'));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.3';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_0_3()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_emailadmin','egw_emailadmin');
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_2()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','profileID','ea_profile_id');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpServer','ea_smtp_server');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpType','ea_smtp_type');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpPort','ea_smtp_port');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpAuth','ea_smtp_auth');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','editforwardingaddress','ea_editforwardingaddress');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPServer','ea_smtp_ldap_server');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPBaseDN','ea_smtp_ldap_basedn');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPAdminDN','ea_smtp_ldap_admindn');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPAdminPW','ea_smtp_ldap_adminpw');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPUseDefault','ea_smtp_ldap_use_default');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapServer','ea_imap_server');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapType','ea_imap_type');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapPort','ea_imap_port');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapLoginType','ea_imap_login_type');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapTLSAuthentication','ea_imap_tsl_auth');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapTLSEncryption','ea_imap_tsl_encryption');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapEnableCyrusAdmin','ea_imap_enable_cyrus');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapAdminUsername','ea_imap_admin_user');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapAdminPW','ea_imap_admin_pw');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapEnableSieve','ea_imap_enable_sieve');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapSieveServer','ea_imap_sieve_server');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapSievePort','ea_imap_sieve_port');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','description','ea_description');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','defaultDomain','ea_default_domain');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','organisationName','ea_organisation_name');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','userDefinedAccounts','ea_user_defined_accounts');
|
||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapoldcclient','ea_imapoldcclient');
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2.001';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_2_001()
|
||
|
{
|
||
|
/* done by RefreshTable() anyway
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_smtp_auth_username',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '80'
|
||
|
));*/
|
||
|
/* done by RefreshTable() anyway
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_smtp_auth_password',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '80'
|
||
|
));*/
|
||
|
$GLOBALS['egw_setup']->oProc->RefreshTable('egw_emailadmin',array(
|
||
|
'fd' => array(
|
||
|
'ea_profile_id' => array('type' => 'auto','nullable' => False),
|
||
|
'ea_smtp_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_type' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_smtp_port' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_smtp_auth' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_editforwardingaddress' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_smtp_ldap_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_ldap_basedn' => array('type' => 'varchar','precision' => '200'),
|
||
|
'ea_smtp_ldap_admindn' => array('type' => 'varchar','precision' => '200'),
|
||
|
'ea_smtp_ldap_adminpw' => array('type' => 'varchar','precision' => '30'),
|
||
|
'ea_smtp_ldap_use_default' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_imap_type' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_imap_port' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_imap_login_type' => array('type' => 'varchar','precision' => '20'),
|
||
|
'ea_imap_tsl_auth' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_tsl_encryption' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_enable_cyrus' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_admin_user' => array('type' => 'varchar','precision' => '40'),
|
||
|
'ea_imap_admin_pw' => array('type' => 'varchar','precision' => '40'),
|
||
|
'ea_imap_enable_sieve' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_sieve_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_imap_sieve_port' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_description' => array('type' => 'varchar','precision' => '200'),
|
||
|
'ea_default_domain' => array('type' => 'varchar','precision' => '100'),
|
||
|
'ea_organisation_name' => array('type' => 'varchar','precision' => '100'),
|
||
|
'ea_user_defined_accounts' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imapoldcclient' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_order' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_appname' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_group' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_auth_username' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_auth_password' => array('type' => 'varchar','precision' => '80')
|
||
|
),
|
||
|
'pk' => array('ea_profile_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array('ea_appname','ea_group'),
|
||
|
'uc' => array()
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2.002';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_2_002()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.4';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_4()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_user_defined_signatures',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '3'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_default_signature',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '255'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.4.001';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_4_001()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_user_defined_identities',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '3'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.5.001';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_5_001()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_user',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '80'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_active',array(
|
||
|
'type' => 'int',
|
||
|
'precision' => '4'
|
||
|
));
|
||
|
$GLOBALS['phpgw_setup']->oProc->query("UPDATE egw_emailadmin set ea_user='0', ea_active=1",__LINE__,__FILE__);
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.5.002';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_5_002()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_imap_auth_username',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '80'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_imap_auth_password',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '80'
|
||
|
));
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.5.003';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_5_003()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.5.004';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_5_004()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.6';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_6()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_emailadmin','ea_default_signature',array(
|
||
|
'type' => 'text'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.6.001';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_6_001()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_stationery_active_templates',array(
|
||
|
'type' => 'text'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.8'; // was '1.7.003';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_7_003()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_emailadmin','ea_imap_type',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => 56,
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_emailadmin','ea_smtp_type',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => 56,
|
||
|
));
|
||
|
foreach (array('1'=>'defaultsmtp', '2'=>'postfixldap', '3'=>'postfixinetorgperson', '4'=>'smtpplesk', '5' =>'postfixdbmailuser') as $id => $newtype)
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->query('update egw_emailadmin set ea_smtp_type=\''.$newtype.'\' where ea_smtp_type=\''.$id.'\'',__LINE__,__FILE__);
|
||
|
}
|
||
|
foreach (array('2'=>'defaultimap', '3'=>'cyrusimap', '4'=>'dbmailqmailuser', '5'=>'pleskimap', '6' =>'dbmaildbmailuser') as $id => $newtype)
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->query('update egw_emailadmin set ea_imap_type=\''.$newtype.'\' where ea_imap_type=\''.$id.'\'',__LINE__,__FILE__);
|
||
|
}
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.001'; // was '1.7.004';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_8()
|
||
|
{
|
||
|
emailadmin_upgrade1_7_003();
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.001';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_7_004()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.001';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_9_001()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->RefreshTable('egw_emailadmin',array(
|
||
|
'fd' => array(
|
||
|
'ea_profile_id' => array('type' => 'auto','nullable' => False),
|
||
|
'ea_smtp_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_type' => array('type' => 'varchar','precision' => '56'),
|
||
|
'ea_smtp_port' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_smtp_auth' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_editforwardingaddress' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_smtp_ldap_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_ldap_basedn' => array('type' => 'varchar','precision' => '200'),
|
||
|
'ea_smtp_ldap_admindn' => array('type' => 'varchar','precision' => '200'),
|
||
|
'ea_smtp_ldap_adminpw' => array('type' => 'varchar','precision' => '30'),
|
||
|
'ea_smtp_ldap_use_default' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_imap_type' => array('type' => 'varchar','precision' => '56'),
|
||
|
'ea_imap_port' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_imap_login_type' => array('type' => 'varchar','precision' => '20'),
|
||
|
'ea_imap_tsl_auth' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_tsl_encryption' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_enable_cyrus' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_admin_user' => array('type' => 'varchar','precision' => '40'),
|
||
|
'ea_imap_admin_pw' => array('type' => 'varchar','precision' => '40'),
|
||
|
'ea_imap_enable_sieve' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_imap_sieve_server' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_imap_sieve_port' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_description' => array('type' => 'varchar','precision' => '200'),
|
||
|
'ea_default_domain' => array('type' => 'varchar','precision' => '100'),
|
||
|
'ea_organisation_name' => array('type' => 'varchar','precision' => '100'),
|
||
|
'ea_user_defined_identities' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_user_defined_accounts' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_order' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_appname' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_group' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_user' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_active' => array('type' => 'int','precision' => '4'),
|
||
|
'ea_smtp_auth_username' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_smtp_auth_password' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_user_defined_signatures' => array('type' => 'varchar','precision' => '3'),
|
||
|
'ea_default_signature' => array('type' => 'text'),
|
||
|
'ea_imap_auth_username' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_imap_auth_password' => array('type' => 'varchar','precision' => '80'),
|
||
|
'ea_stationery_active_templates' => array('type' => 'text')
|
||
|
),
|
||
|
'pk' => array('ea_profile_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array('ea_appname','ea_group'),
|
||
|
'uc' => array()
|
||
|
));
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.002';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_9_002()
|
||
|
{
|
||
|
// convert serialized stationery templates setting to eTemplate store style
|
||
|
foreach($GLOBALS['egw_setup']->db->query('SELECT ea_profile_id,ea_stationery_active_templates FROM egw_emailadmin
|
||
|
WHERE ea_stationery_active_templates IS NOT NULL',__LINE__,__FILE__) as $row)
|
||
|
{
|
||
|
if(is_array(($templates=unserialize($row['ea_stationery_active_templates']))))
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->db->query('UPDATE egw_emailadmin SET ea_stationery_active_templates="'.implode(',',$templates).'"'
|
||
|
.' WHERE ea_profile_id='.(int)$row['ea_profile_id'],__LINE__,__FILE__);
|
||
|
}
|
||
|
unset($templates);
|
||
|
}
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.003';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_9_003()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_emailadmin','ea_smtp_auth_username',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '128',
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.004';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_9_004()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.005';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_9_005()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->CreateTable('egw_mailaccounts',array(
|
||
|
'fd' => array(
|
||
|
'mail_id' => array('type' => 'auto','nullable' => False),
|
||
|
'account_id' => array('type' => 'int','precision' => '4','nullable' => False),
|
||
|
'mail_type' => array('type' => 'int','precision' => '1','nullable' => False,'comment' => '0=active, 1=alias, 2=forward, 3=forwardOnly, 4=quota'),
|
||
|
'mail_value' => array('type' => 'varchar','precision' => '128','nullable' => False)
|
||
|
),
|
||
|
'pk' => array('mail_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array('mail_value',array('account_id','mail_type')),
|
||
|
'uc' => array()
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.006';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_006()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->CreateTable('egw_ea_accounts',array(
|
||
|
'fd' => array(
|
||
|
'acc_id' => array('type' => 'auto','nullable' => False),
|
||
|
'acc_name' => array('type' => 'varchar','precision' => '80','comment' => 'description'),
|
||
|
'ident_id' => array('type' => 'int','precision' => '4','nullable' => False,'comment' => 'standard identity'),
|
||
|
'acc_imap_host' => array('type' => 'varchar','precision' => '128','nullable' => False,'comment' => 'imap hostname'),
|
||
|
'acc_imap_ssl' => array('type' => 'int','precision' => '1','nullable' => False,'default' => '0','comment' => '0=none, 1=starttls, 2=tls, 3=ssl, &8=validate certificate'),
|
||
|
'acc_imap_port' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '143','comment' => 'imap port'),
|
||
|
'acc_sieve_enabled' => array('type' => 'bool','default' => '0','comment' => 'sieve enabled'),
|
||
|
'acc_sieve_host' => array('type' => 'varchar','precision' => '128','comment' => 'sieve host, default imap_host'),
|
||
|
'acc_sieve_port' => array('type' => 'int','precision' => '4','default' => '4190'),
|
||
|
'acc_folder_sent' => array('type' => 'varchar','precision' => '128','comment' => 'sent folder'),
|
||
|
'acc_folder_trash' => array('type' => 'varchar','precision' => '128','comment' => 'trash folder'),
|
||
|
'acc_folder_draft' => array('type' => 'varchar','precision' => '128','comment' => 'draft folder'),
|
||
|
'acc_folder_template' => array('type' => 'varchar','precision' => '128','comment' => 'template folder'),
|
||
|
'acc_smtp_host' => array('type' => 'varchar','precision' => '128','comment' => 'smtp hostname'),
|
||
|
'acc_smtp_ssl' => array('type' => 'int','precision' => '1','nullable' => False,'default' => '0','comment' => '0=none, 1=starttls, 2=tls, 3=ssl, &8=validate certificate'),
|
||
|
'acc_smtp_port' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '25','comment' => 'smtp port'),
|
||
|
'acc_smtp_type' => array('type' => 'varchar','precision' => '32','default' => 'emailadmin_smtp','comment' => 'smtp class to use'),
|
||
|
'acc_imap_type' => array('type' => 'varchar','precision' => '32','default' => 'emailadmin_imap','comment' => 'imap class to use'),
|
||
|
'acc_imap_logintype' => array('type' => 'varchar','precision' => '20','comment' => 'standard, vmailmgr, admin, uidNumber'),
|
||
|
'acc_domain' => array('type' => 'varchar','precision' => '100','comment' => 'domain name'),
|
||
|
'acc_further_identities' => array('type' => 'bool','nullable' => False,'default' => '1','comment' => '0=no, 1=yes'),
|
||
|
'acc_user_editable' => array('type' => 'bool','nullable' => False,'default' => '1','comment' => '0=no, 1=yes'),
|
||
|
'acc_sieve_ssl' => array('type' => 'int','precision' => '1','default' => '1','comment' => '0=none, 1=starttls, 2=tls, 3=ssl, &8=validate certificate'),
|
||
|
'acc_modified' => array('type' => 'timestamp','nullable' => False,'default' => 'current_timestamp'),
|
||
|
'acc_modifier' => array('type' => 'int','meta' => 'user','precision' => '4'),
|
||
|
'acc_smtp_auth_session' => array('type' => 'bool','comment' => '0=no, 1=yes, use username/pw from current user')
|
||
|
),
|
||
|
'pk' => array('acc_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array(),
|
||
|
'uc' => array()
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.007';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_007()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->CreateTable('egw_ea_credentials',array(
|
||
|
'fd' => array(
|
||
|
'cred_id' => array('type' => 'auto','nullable' => False),
|
||
|
'acc_id' => array('type' => 'int','precision' => '4','nullable' => False,'comment' => 'into egw_ea_accounts'),
|
||
|
'cred_type' => array('type' => 'int','precision' => '1','nullable' => False,'comment' => '&1=imap, &2=smtp, &4=admin'),
|
||
|
'account_id' => array('type' => 'int','meta' => 'user','precision' => '4','nullable' => False,'comment' => 'account_id or 0=all'),
|
||
|
'cred_username' => array('type' => 'varchar','precision' => '80','nullable' => False,'comment' => 'username'),
|
||
|
'cred_password' => array('type' => 'varchar','precision' => '80','comment' => 'password encrypted'),
|
||
|
'cred_pw_enc' => array('type' => 'int','precision' => '1','default' => '0','comment' => '0=not, 1=user pw, 2=system')
|
||
|
),
|
||
|
'pk' => array('cred_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array(),
|
||
|
'uc' => array(array('acc_id','account_id','cred_type'))
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.008';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_008()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->CreateTable('egw_ea_identities',array(
|
||
|
'fd' => array(
|
||
|
'ident_id' => array('type' => 'auto','nullable' => False),
|
||
|
'acc_id' => array('type' => 'int','precision' => '4','nullable' => False,'comment' => 'for which account'),
|
||
|
'ident_realname' => array('type' => 'varchar','precision' => '128','nullable' => False,'comment' => 'real name'),
|
||
|
'ident_email' => array('type' => 'varchar','precision' => '128','comment' => 'email address'),
|
||
|
'ident_org' => array('type' => 'varchar','precision' => '128','comment' => 'organisation'),
|
||
|
'ident_signature' => array('type' => 'text','comment' => 'signature text'),
|
||
|
'account_id' => array('type' => 'int','meta' => 'account','precision' => '4','nullable' => False,'default' => '0','comment' => '0=all users of give mail account')
|
||
|
),
|
||
|
'pk' => array('ident_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array(),
|
||
|
'uc' => array()
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.009';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_009()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->CreateTable('egw_ea_valid',array(
|
||
|
'fd' => array(
|
||
|
'acc_id' => array('type' => 'int','precision' => '4','nullable' => False),
|
||
|
'account_id' => array('type' => 'int','meta' => 'account','precision' => '4','nullable' => False)
|
||
|
),
|
||
|
'pk' => array(),
|
||
|
'fk' => array(),
|
||
|
'ix' => array(array('account_id','acc_id')),
|
||
|
'uc' => array(array('acc_id','account_id'))
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.010';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Convert utf7-imap encoded folder-names to utf-8
|
||
|
*
|
||
|
* @param string $folder
|
||
|
* @return string
|
||
|
*/
|
||
|
function utf7imap2utf8($folder)
|
||
|
{
|
||
|
if (function_exists('mb_convert_encoding'))
|
||
|
{
|
||
|
$folder = mb_convert_encoding($folder, 'utf-8', 'utf7-imap');
|
||
|
}
|
||
|
return $folder;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Migrate eMailAdmin profiles to accounts
|
||
|
*/
|
||
|
function emailadmin_upgrade1_9_010()
|
||
|
{
|
||
|
static $prot2ssl = array('ssl' => 3, 'tls' => 2, 'starttls' => 1);
|
||
|
$acc_ids = array();
|
||
|
// migrate personal felamimail accounts, identities and signatures
|
||
|
try {
|
||
|
$db = $GLOBALS['egw_setup']->db;
|
||
|
foreach($db->select('egw_emailadmin', '*', array('ea_active' => 1), __LINE__, __FILE__, false,
|
||
|
// order general profiles first, then group profiles and user specific ones last
|
||
|
'ORDER BY ea_group IS NULL AND ea_user IS NULL DESC,ea_group IS NULL,ea_user', 'emailadmin') as $row)
|
||
|
{
|
||
|
$owner = $row['ea_user'] > 0 ? (int)$row['ea_user'] : ($row['ea_group'] ? -abs($row['ea_group']) : 0);
|
||
|
|
||
|
// always store general profiles and group profiles
|
||
|
// only store user profiles if they contain at least an imap_host
|
||
|
// otherwise store just the credentials for that user and account of his primary group or first general account
|
||
|
if ($owner <= 0 || $owner > 0 && !empty($row['ea_imap_host']) ||
|
||
|
!($acc_id = ($primary_group = accounts::id2name($owner, 'account_primary_group')) &&
|
||
|
isset($acc_ids[$primary_group]) ? $acc_ids[$primary_group] : $acc_ids['0']))
|
||
|
{
|
||
|
$prefs = new preferences($owner);
|
||
|
$all_prefs = $prefs->read_repository();
|
||
|
$pref_values = $all_prefs['felamimail'];
|
||
|
|
||
|
// create standard identity for account
|
||
|
$identity = array(
|
||
|
'acc_id' => 0,
|
||
|
'ident_realname' => '',
|
||
|
'ident_email' => '',
|
||
|
'ident_org' => $row['ea_organisation_name'],
|
||
|
'ident_signature' => $row['ea_default_signature'],
|
||
|
);
|
||
|
$db->insert('egw_ea_identities', $identity, false, __LINE__, __FILE__, 'emailadmin');
|
||
|
$ident_id = $db->get_last_insert_id('egw_ea_identities', 'ident_id');
|
||
|
|
||
|
// create account
|
||
|
$smtp_ssl = 0;
|
||
|
if (strpos($row['ea_smtp_server'], '://') !== false)
|
||
|
{
|
||
|
list($prot, $row['ea_smtp_server']) = explode('://', $row['ea_smtp_server']);
|
||
|
$smtp_ssl = (int)$prot2ssl[$prot];
|
||
|
}
|
||
|
$account = array(
|
||
|
'acc_name' => $row['ea_description'],
|
||
|
'ident_id' => $ident_id,
|
||
|
'acc_imap_type' => emailadmin_account::getIcClass($row['ea_imap_type']),
|
||
|
'acc_imap_logintype' => $row['ea_imap_login_type'],
|
||
|
'acc_imap_host' => $row['ea_imap_server'],
|
||
|
'acc_imap_ssl' => $row['ea_imap_tsl_encryption'] | ($row['ea_imap_tsl_auth'] === 'yes' ? 8 : 0),
|
||
|
'acc_imap_port' => $row['ea_imap_port'],
|
||
|
'acc_sieve_enabled' => $row['ea_imap_enable_sieve'] == 'yes',
|
||
|
'acc_sieve_host' => $row['ea_imap_sieve_server'],
|
||
|
'acc_sieve_ssl' => $row['fm_ic_sieve_port'] == 5190 ? 2 : 1,
|
||
|
'acc_sieve_port' => $row['ea_imap_sieve_port'],
|
||
|
'acc_folder_sent' => utf7imap2utf8($pref_values['sentFolder']),
|
||
|
'acc_folder_trash' => utf7imap2utf8($pref_values['trashFolder']),
|
||
|
'acc_folder_draft' => utf7imap2utf8($pref_values['draftFolder']),
|
||
|
'acc_folder_template' => utf7imap2utf8($pref_values['templateFolder']),
|
||
|
'acc_smtp_type' => $row['ea_smtp_type'],
|
||
|
'acc_smtp_host' => $row['ea_smtp_server'],
|
||
|
'acc_smtp_ssl' => $smtp_ssl,
|
||
|
'acc_smtp_port' => $row['ea_smtp_port'],
|
||
|
'acc_domain' => $row['ea_default_domain'],
|
||
|
'acc_further_identities' => $row['ea_user_defined_identities'] == 'yes' ||
|
||
|
$row['ea_user_defined_signatures'] == 'yes', // both together are now called identities
|
||
|
'acc_user_editable' => false,
|
||
|
'acc_smtp_auth_session' => $row['ea_smtp_auth'] == 'ann' ||
|
||
|
$row['ea_smtp_auth'] == 'yes' && empty($row['ea_smtp_auth_username']),
|
||
|
);
|
||
|
$db->insert('egw_ea_accounts', $account, false, __LINE__, __FILE__, 'emailadmin');
|
||
|
$acc_id = $db->get_last_insert_id('egw_ea_accounts', 'acc_id');
|
||
|
|
||
|
// remember acc_id by owner, to be able to base credential only profiles on them
|
||
|
if ($owner <= 0 && !isset($acc_ids[$owner])) $acc_ids[(string)$owner] = $acc_id;
|
||
|
|
||
|
// update above created identity with account acc_id
|
||
|
$db->update('egw_ea_identities', array('acc_id' => $acc_id), array('ident_id' => $ident_id), __LINE__, __FILE__, 'emailadmin');
|
||
|
|
||
|
// make account valid for given owner
|
||
|
$db->insert('egw_ea_valid', array(
|
||
|
'acc_id' => $acc_id,
|
||
|
'account_id' => $owner,
|
||
|
), false, __LINE__, __FILE__, 'emailadmin');
|
||
|
}
|
||
|
// credentials are either stored for specific user or all users (account_id=0), not group-specific
|
||
|
if (!($owner > 0)) $owner = 0;
|
||
|
// add imap credentials if necessary
|
||
|
$cred_type = $row['ea_smpt_auth'] != 'no' && $row['ea_imap_auth_username'] && $row['ea_smtp_auth_username'] &&
|
||
|
$row['ea_imap_auth_username'] == $row['ea_smtp_auth_username'] &&
|
||
|
$row['ea_imap_auth_password'] == $row['ea_smtp_auth_password'] ? 3 : 1;
|
||
|
if ($row['ea_imap_auth_username'])
|
||
|
{
|
||
|
emailadmin_credentials::write($acc_id, $row['ea_imap_auth_username'], $row['ea_imap_auth_password'], $cred_type, $owner);
|
||
|
}
|
||
|
// add smtp credentials if necessary and different from imap
|
||
|
if ($row['ea_smpt_auth'] != 'no' && !empty($row['ea_smtp_auth_username']) && $cred_type != 3)
|
||
|
{
|
||
|
emailadmin_credentials::write($acc_id, $row['ea_smtp_auth_username'], $row['ea_smtp_auth_password'], 2, $owner);
|
||
|
}
|
||
|
// add admin credentials
|
||
|
if ($row['ea_imap_enable_cyrus'] == 'yes' && !empty($row['ea_imap_admin_user']))
|
||
|
{
|
||
|
emailadmin_credentials::write($acc_id, $row['ea_imap_admin_user'], $row['ea_imap_admin_pw'], 8, $owner);
|
||
|
}
|
||
|
}
|
||
|
// ToDo: migrate all not yet via personal fmail profiles migrated signatures
|
||
|
}
|
||
|
catch(Exception $e) {
|
||
|
// ignore all errors, eg. because FMail is not installed
|
||
|
echo "<p>".$e->getMessage()."</p>\n";
|
||
|
}
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.011';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Helper function for 1.9.011 upgrade to query standard identity of a given user
|
||
|
*
|
||
|
* There's no defined standard identity, we simply pick first one we find
|
||
|
* sorting results by:
|
||
|
* - prefering identical email or same-domain
|
||
|
* - prefering personal accounts over all-user ones
|
||
|
* - for all-user ones we prefer a personal identitiy (account_id!=0)
|
||
|
*
|
||
|
* @param int $account_id
|
||
|
* @param string $email optional email to be used to find matching account/identity with identical email or same domain
|
||
|
* @return array with ident_* and acc_id
|
||
|
*/
|
||
|
function emailadmin_std_identity($account_id, $email=null)
|
||
|
{
|
||
|
if ($email) list(, $domain) = explode('@', $email);
|
||
|
return $GLOBALS['egw_setup']->db->select('egw_ea_accounts', 'egw_ea_identities.*',
|
||
|
'egw_ea_valid.account_id IN (0,'.(int)$account_id.') AND egw_ea_identities.account_id IN (0,'.(int)$account_id.')',
|
||
|
__LINE__, __FILE__, 0,
|
||
|
'ORDER BY '.($email ?
|
||
|
'ident_email='.$GLOBALS['egw_setup']->db->quote($email).' DESC,'.
|
||
|
'ident_email LIKE '.$GLOBALS['egw_setup']->db->quote('%@'.$domain).' DESC,' : '').
|
||
|
'egw_ea_identities.account_id DESC,egw_ea_valid.account_id DESC', 'emailadmin', 1,
|
||
|
'JOIN egw_ea_valid ON egw_ea_accounts.acc_id=egw_ea_valid.acc_id '.
|
||
|
'JOIN egw_ea_identities ON egw_ea_accounts.acc_id=egw_ea_identities.acc_id')->fetch();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Migrate (personal) FMail accounts to eMailAdmin accounts
|
||
|
*/
|
||
|
function emailadmin_upgrade1_9_011()
|
||
|
{
|
||
|
static $prot2ssl = array('ssl' => 3, 'tls' => 2, 'starttls' => 1);
|
||
|
$std_identity = null;
|
||
|
// migrate personal felamimail accounts, identities and signatures
|
||
|
$db = $GLOBALS['egw_setup']->db;
|
||
|
if (in_array('egw_felamimail_accounts', $db->table_names(true)))
|
||
|
{
|
||
|
try {
|
||
|
// migrate real fmail accounts, but not yet identities (fm_ic_hostname is NULL)
|
||
|
foreach($db->select('egw_felamimail_accounts', '*', 'fm_ic_hostname IS NOT NULL', __LINE__, __FILE__, false, '', 'felamimail') as $row)
|
||
|
{
|
||
|
$prefs = new preferences($row['fm_owner']);
|
||
|
$all_prefs = $prefs->read_repository();
|
||
|
$pref_values = $all_prefs['felamimail'];
|
||
|
|
||
|
// create standard identity for account
|
||
|
$identity = array(
|
||
|
'acc_id' => 0,
|
||
|
'ident_realname' => $row['fm_realname'],
|
||
|
'ident_email' => $row['fm_emailaddress'],
|
||
|
'ident_org' => $row['fm_organisation'],
|
||
|
'ident_signature' => $db->select('egw_felamimail_signatures', 'fm_signature', array(
|
||
|
'fm_signatureid' => $row['fm_signatureid'],
|
||
|
), __LINE__, __FILE__, false, '', 'felamimail')->fetchColumn(),
|
||
|
);
|
||
|
$db->insert('egw_ea_identities', $identity, false, __LINE__, __FILE__, 'emailadmin');
|
||
|
$ident_id = $db->get_last_insert_id('egw_ea_identities', 'ident_id');
|
||
|
|
||
|
// create account
|
||
|
$og_ssl = 0;
|
||
|
if (strpos($row['fm_og_hostname'], '://') !== false)
|
||
|
{
|
||
|
list($prot, $row['fm_og_hostname']) = explode('://', $row['fm_og_hostname']);
|
||
|
$og_ssl = (int)$prot2ssl[$prot];
|
||
|
}
|
||
|
$account = array(
|
||
|
'acc_name' => $row['fm_emailaddress'],
|
||
|
'ident_id' => $ident_id,
|
||
|
'acc_imap_host' => $row['fm_ic_hostname'],
|
||
|
'acc_imap_ssl' => $row['fm_ic_encryption'] | ($row['fm_ic_validatecertificate'] ? 8 : 0),
|
||
|
'acc_imap_port' => $row['fm_ic_port'],
|
||
|
'acc_sieve_enabled' => $row['fm_ic_enable_sieve'],
|
||
|
'acc_sieve_host' => $row['fm_ic_sieve_server'],
|
||
|
'acc_sieve_ssl' => $row['fm_ic_sieve_port'] == 5190 ? 2 : 1,
|
||
|
'acc_sieve_port' => $row['fm_ic_sieve_port'],
|
||
|
'acc_folder_sent' => utf7imap2utf8($row['fm_ic_sentfolder'] ? $row['fm_ic_sentfolder'] : $pref_values['sentFolder']),
|
||
|
'acc_folder_trash' => utf7imap2utf8($row['fm_ic_trashfolder'] ? $row['fm_ic_trashfolder'] : $pref_values['trashFolder']),
|
||
|
'acc_folder_draft' => utf7imap2utf8($row['fm_ic_draftfolder'] ? $row['fm_ic_draftfolder'] : $pref_values['draftFolder']),
|
||
|
'acc_folder_template' => utf7imap2utf8($row['fm_ic_templatefolder'] ? $row['fm_ic_templatefolder'] : $pref_values['templateFolder']),
|
||
|
'acc_smtp_host' => $row['fm_og_hostname'],
|
||
|
'acc_smtp_ssl' => $og_ssl,
|
||
|
'acc_smtp_port' => $row['fm_og_port'],
|
||
|
);
|
||
|
$db->insert('egw_ea_accounts', $account, false, __LINE__, __FILE__, 'emailadmin');
|
||
|
$acc_id = $db->get_last_insert_id('egw_ea_accounts', 'acc_id');
|
||
|
$identity['acc_id'] = $acc_id;
|
||
|
if (!isset($std_identity[$row['fm_owner']])) $std_identity[$row['fm_owner']] = $identity;
|
||
|
// update above created identity with account acc_id
|
||
|
$db->update('egw_ea_identities', array('acc_id' => $acc_id), array('ident_id' => $ident_id), __LINE__, __FILE__, 'emailadmin');
|
||
|
|
||
|
// make account valid for given owner
|
||
|
$db->insert('egw_ea_valid', array(
|
||
|
'acc_id' => $acc_id,
|
||
|
'account_id' => $row['fm_owner'],
|
||
|
), false, __LINE__, __FILE__, 'emailadmin');
|
||
|
|
||
|
// add imap credentials
|
||
|
$cred_type = $row['fm_og_smtpauth'] && $row['fm_ic_username'] == $row['fm_og_username'] &&
|
||
|
$row['fm_ic_password'] == $row['fm_og_password'] ? 3 : 1;
|
||
|
emailadmin_credentials::write($acc_id, $row['fm_ic_username'], $row['fm_ic_password'], $cred_type, $row['fm_owner']);
|
||
|
// add smtp credentials if necessary and different from imap
|
||
|
if ($row['fm_og_smtpauth'] && $cred_type != 3)
|
||
|
{
|
||
|
emailadmin_credentials::write($acc_id, $row['fm_og_username'], $row['fm_og_password'], 2, $row['fm_owner']);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// migrate fmail identities (fm_ic_hostname is NULL), not real fmail account done above
|
||
|
foreach($db->select('egw_felamimail_accounts', '*', 'fm_ic_hostname IS NULL', __LINE__, __FILE__, false, '', 'felamimail') as $row)
|
||
|
{
|
||
|
if (!($std_identity = emailadmin_std_identity($row['fm_owner'])))
|
||
|
{
|
||
|
continue; // no account found to add identity to
|
||
|
}
|
||
|
// create standard identity for account
|
||
|
$identity = array(
|
||
|
'acc_id' => $std_identity['acc_id'],
|
||
|
'ident_realname' => $row['fm_realname'],
|
||
|
'ident_email' => $row['fm_emailaddress'],
|
||
|
'ident_org' => $row['fm_organisation'],
|
||
|
'ident_signature' => $db->select('egw_felamimail_signatures', 'fm_signature', array(
|
||
|
'fm_signatureid' => $row['fm_signatureid'],
|
||
|
), __LINE__, __FILE__, false, '', 'felamimail')->fetchColumn(),
|
||
|
'account_id' => $row['fm_owner'],
|
||
|
);
|
||
|
$db->insert('egw_ea_identities', $identity, false, __LINE__, __FILE__, 'emailadmin');
|
||
|
}
|
||
|
|
||
|
// migrate all not yet as standard-signatures migrated signatures to identities of first migrated fmail profile
|
||
|
// completing them with realname, email and org from standard-signature of given account
|
||
|
foreach($db->select('egw_felamimail_signatures', '*',
|
||
|
"fm_signatureid NOT IN (SELECT fm_signatureid FROM egw_felamimail_accounts)",
|
||
|
__LINE__, __FILE__, false, '', 'felamimail') as $row)
|
||
|
{
|
||
|
if (!($std_identity = emailadmin_std_identity($row['fm_accountid'])))
|
||
|
{
|
||
|
continue; // ignore signatures for whos owner (fm_accountid!) we have no personal profile
|
||
|
}
|
||
|
$identity = $std_identity; unset($identity['ident_id']);
|
||
|
$identity['ident_realname'] = $std_identity['ident_realname'].' ('.$row['fm_description'].')';
|
||
|
$identity['ident_signature'] = $row['fm_signature'];
|
||
|
$identity['account_id'] = $row['fm_accountid'];
|
||
|
$db->insert('egw_ea_identities', $identity, false, __LINE__, __FILE__, 'emailadmin');
|
||
|
}
|
||
|
}
|
||
|
catch(Exception $e) {
|
||
|
// ignore all errors, eg. because FMail is not installed
|
||
|
echo "<p>".$e->getMessage()."</p>\n";
|
||
|
}
|
||
|
}
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.015';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade1_9_015()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_ea_accounts','acc_folder_junk',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '128',
|
||
|
'comment' => 'junk folder'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_ea_accounts','acc_imap_default_quota',array(
|
||
|
'type' => 'int',
|
||
|
'precision' => '4',
|
||
|
'comment' => 'default quota, if no user specific one set'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_ea_accounts','acc_imap_timeout',array(
|
||
|
'type' => 'int',
|
||
|
'precision' => '2',
|
||
|
'comment' => 'timeout for imap connection'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.016';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_016()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_ea_identities','ident_name',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '128',
|
||
|
'comment' => 'name of identity to display'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.017';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_017()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->CreateTable('egw_ea_notifications',array(
|
||
|
'fd' => array(
|
||
|
'notif_id' => array('type' => 'auto','nullable' => False),
|
||
|
'acc_id' => array('type' => 'int','precision' => '4','nullable' => False,'comment' => 'mail account'),
|
||
|
'account_id' => array('type' => 'int','meta' => 'user','precision' => '4','nullable' => False,'comment' => 'user account'),
|
||
|
'notif_folder' => array('type' => 'varchar','precision' => '255','nullable' => False,'comment' => 'folder name')
|
||
|
),
|
||
|
'pk' => array('notif_id'),
|
||
|
'fk' => array(),
|
||
|
'ix' => array(array('account_id','acc_id')),
|
||
|
'uc' => array()
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.018';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_018()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_smtp_type',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '32',
|
||
|
'default' => 'emailadmin_smtp',
|
||
|
'comment' => 'smtp class to use'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_imap_type',array(
|
||
|
'type' => 'varchar',
|
||
|
'precision' => '32',
|
||
|
'default' => 'emailadmin_imap',
|
||
|
'comment' => 'imap class to use'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.9.019';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade1_9_019()
|
||
|
{
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '14.1';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade14_1()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->RefreshTable('egw_ea_valid',array(
|
||
|
'fd' => array(
|
||
|
'acc_id' => array('type' => 'int','precision' => '4','nullable' => False),
|
||
|
'account_id' => array('type' => 'int','meta' => 'account','precision' => '4','nullable' => False)
|
||
|
),
|
||
|
'pk' => array(),
|
||
|
'fk' => array(),
|
||
|
'ix' => array(array('account_id','acc_id')),
|
||
|
'uc' => array(array('acc_id','account_id'))
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '14.2';
|
||
|
}
|
||
|
|
||
|
function emailadmin_upgrade14_2()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_mailaccounts','mail_value',array(
|
||
|
'type' => 'ascii',
|
||
|
'precision' => '128',
|
||
|
'nullable' => False,
|
||
|
'comment' => 'the value (that should be) corresponding to the mail_type'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '14.2.001';
|
||
|
}
|
||
|
|
||
|
|
||
|
function emailadmin_upgrade14_2_001()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_imap_host',array(
|
||
|
'type' => 'ascii',
|
||
|
'precision' => '128',
|
||
|
'nullable' => False,
|
||
|
'comment' => 'imap hostname'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_sieve_host',array(
|
||
|
'type' => 'ascii',
|
||
|
'precision' => '128',
|
||
|
'comment' => 'sieve host, default imap_host'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_smtp_type',array(
|
||
|
'type' => 'ascii',
|
||
|
'precision' => '32',
|
||
|
'default' => 'emailadmin_smtp',
|
||
|
'comment' => 'smtp class to use'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_imap_type',array(
|
||
|
'type' => 'ascii',
|
||
|
'precision' => '32',
|
||
|
'default' => 'emailadmin_imap',
|
||
|
'comment' => 'imap class to use'
|
||
|
));
|
||
|
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_ea_accounts','acc_imap_logintype',array(
|
||
|
'type' => 'ascii',
|
||
|
'precision' => '20',
|
||
|
'comment' => 'standard, vmailmgr, admin, uidNumber'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '14.3';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* New flag to allow non-emailadmins (users) to define (add, edit or remove) forwards
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
function emailadmin_upgrade14_3()
|
||
|
{
|
||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_ea_accounts','acc_user_forward',array(
|
||
|
'type' => 'bool',
|
||
|
'default' => '0',
|
||
|
'comment' => 'allow user to define forwards'
|
||
|
));
|
||
|
|
||
|
return $GLOBALS['setup_info']['emailadmin']['currentver'] = '14.3.001';
|
||
|
}
|