forked from extern/egroupware
bug reported by admlange
spelling error
This commit is contained in:
parent
06178bef5f
commit
2517192f05
669
emailadmin/inc/class.bo.inc.php
Normal file
669
emailadmin/inc/class.bo.inc.php
Normal file
@ -0,0 +1,669 @@
|
||||
<?php
|
||||
/***************************************************************************\
|
||||
* eGroupWare *
|
||||
* http://www.egroupware.org *
|
||||
* http://www.linux-at-work.de *
|
||||
* Written by : Lars Kneschke [lkneschke@linux-at-work.de] *
|
||||
* ------------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\***************************************************************************/
|
||||
/* $Id$ */
|
||||
|
||||
class bo
|
||||
{
|
||||
var $sessionData;
|
||||
var $LDAPData;
|
||||
|
||||
var $SMTPServerType = array(); // holds a list of config options
|
||||
|
||||
var $imapClass; // holds the imap/pop3 class
|
||||
var $smtpClass; // holds the smtp class
|
||||
|
||||
function bo($_profileID=-1,$_restoreSesssion=true)
|
||||
{
|
||||
$this->soemailadmin =& CreateObject('emailadmin.so');
|
||||
|
||||
$this->SMTPServerType = array(
|
||||
'1' => array(
|
||||
'fieldNames' => array(
|
||||
'smtpServer',
|
||||
'smtpPort',
|
||||
'smtpAuth',
|
||||
'smtpType'
|
||||
),
|
||||
'description' => lang('standard SMTP-Server'),
|
||||
'classname' => 'defaultsmtp'
|
||||
),
|
||||
'2' => array(
|
||||
'fieldNames' => array(
|
||||
'smtpServer',
|
||||
'smtpPort',
|
||||
'smtpAuth',
|
||||
'smtpType',
|
||||
'editforwardingaddress',
|
||||
'smtpLDAPServer',
|
||||
'smtpLDAPAdminDN',
|
||||
'smtpLDAPAdminPW',
|
||||
'smtpLDAPBaseDN',
|
||||
'smtpLDAPUseDefault'
|
||||
),
|
||||
'description' => lang('Postfix with LDAP'),
|
||||
'classname' => 'postfixldap'
|
||||
)
|
||||
);
|
||||
|
||||
$this->IMAPServerType = array(
|
||||
'1' => array(
|
||||
'fieldNames' => array(
|
||||
'imapServer',
|
||||
'imapPort',
|
||||
'imapType',
|
||||
'imapLoginType',
|
||||
'imapTLSEncryption',
|
||||
'imapTLSAuthentication',
|
||||
'imapoldcclient'
|
||||
),
|
||||
'description' => lang('standard POP3 server'),
|
||||
'protocol' => 'pop3',
|
||||
'classname' => 'defaultpop'
|
||||
),
|
||||
'2' => array(
|
||||
'fieldNames' => array(
|
||||
'imapServer',
|
||||
'imapPort',
|
||||
'imapType',
|
||||
'imapLoginType',
|
||||
'imapTLSEncryption',
|
||||
'imapTLSAuthentication',
|
||||
'imapoldcclient'
|
||||
),
|
||||
'description' => lang('standard IMAP server'),
|
||||
'protocol' => 'imap',
|
||||
'classname' => 'defaultimap'
|
||||
),
|
||||
'3' => array(
|
||||
'fieldNames' => array(
|
||||
'imapServer',
|
||||
'imapPort',
|
||||
'imapType',
|
||||
'imapLoginType',
|
||||
'imapTLSEncryption',
|
||||
'imapTLSAuthentication',
|
||||
'imapoldcclient',
|
||||
'imapEnableCyrusAdmin',
|
||||
'imapAdminUsername',
|
||||
'imapAdminPW',
|
||||
'imapEnableSieve',
|
||||
'imapSieveServer',
|
||||
'imapSievePort'
|
||||
),
|
||||
'description' => lang('Cyrus IMAP Server'),
|
||||
'protocol' => 'imap',
|
||||
'classname' => 'cyrusimap'
|
||||
)
|
||||
);
|
||||
|
||||
if ($_restoreSesssion) $this->restoreSessionData();
|
||||
|
||||
if($_profileID >= 0)
|
||||
{
|
||||
$this->profileID = $_profileID;
|
||||
|
||||
$this->profileData = $this->getProfile($_profileID);
|
||||
|
||||
$this->imapClass = $this->IMAPServerType[$this->profileData['imapType']]['classname'];
|
||||
$this->smtpClass = $this->SMTPServerType[$this->profileData['smtpType']]['classname'];
|
||||
}
|
||||
}
|
||||
|
||||
function addAccount($_hookValues)
|
||||
{
|
||||
$this->profileData = $this->getUserProfile('felamimail', $_hookValues['account_groups']);
|
||||
|
||||
$this->imapClass = $this->IMAPServerType[$this->profileData['imapType']]['classname'];
|
||||
$this->smtpClass = $this->SMTPServerType[$this->profileData['smtpType']]['classname'];
|
||||
|
||||
|
||||
if (!empty($this->imapClass))
|
||||
{
|
||||
ExecMethod("emailadmin.".$this->imapClass.".addAccount",$_hookValues,3,$this->profileData);
|
||||
}
|
||||
|
||||
if (!empty($this->smtpClass))
|
||||
{
|
||||
ExecMethod("emailadmin.".$this->smtpClass.".addAccount",$_hookValues,3,$this->profileData);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteAccount($_hookValues)
|
||||
{
|
||||
$this->profileData = $this->getUserProfile('felamimail', $_hookValues['account_groups']);
|
||||
|
||||
$this->imapClass = $this->IMAPServerType[$this->profileData['imapType']]['classname'];
|
||||
$this->smtpClass = $this->SMTPServerType[$this->profileData['smtpType']]['classname'];
|
||||
|
||||
if (!empty($this->imapClass))
|
||||
{
|
||||
ExecMethod("emailadmin.".$this->imapClass.".deleteAccount",$_hookValues,3,$this->profileData);
|
||||
}
|
||||
|
||||
if (!empty($this->smtpClass))
|
||||
{
|
||||
ExecMethod("emailadmin.".$this->smtpClass.".deleteAccount",$_hookValues,3,$this->profileData);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteProfile($_profileID)
|
||||
{
|
||||
$this->soemailadmin->deleteProfile($_profileID);
|
||||
}
|
||||
|
||||
function encodeHeader($_string, $_encoding='q')
|
||||
{
|
||||
switch($_encoding)
|
||||
{
|
||||
case "q":
|
||||
if(!preg_match("/[\x80-\xFF]/",$_string))
|
||||
{
|
||||
// nothing to quote, only 7 bit ascii
|
||||
return $_string;
|
||||
}
|
||||
|
||||
$string = imap_8bit($_string);
|
||||
$stringParts = explode("=\r\n",$string);
|
||||
while(list($key,$value) = each($stringParts))
|
||||
{
|
||||
if(!empty($retString)) $retString .= " ";
|
||||
$value = str_replace(" ","_",$value);
|
||||
// imap_8bit does not convert "?"
|
||||
// it does not need, but it should
|
||||
$value = str_replace("?","=3F",$value);
|
||||
$retString .= "=?".strtoupper($this->displayCharset)."?Q?".$value."?=";
|
||||
}
|
||||
#exit;
|
||||
return $retString;
|
||||
break;
|
||||
default:
|
||||
return $_string;
|
||||
}
|
||||
}
|
||||
|
||||
function getAccountEmailAddress($_accountName, $_profileID)
|
||||
{
|
||||
$profileData = $this->getProfile($_profileID);
|
||||
|
||||
$smtpClass = $this->SMTPServerType[$profileData['smtpType']]['classname'];
|
||||
|
||||
return empty($smtpClass) ? False : ExecMethod("emailadmin.$smtpClass.getAccountEmailAddress",$_accountName,3,$profileData);
|
||||
}
|
||||
|
||||
function getFieldNames($_serverTypeID, $_class)
|
||||
{
|
||||
switch($_class)
|
||||
{
|
||||
case 'imap':
|
||||
return $this->IMAPServerType[$_serverTypeID]['fieldNames'];
|
||||
break;
|
||||
case 'smtp':
|
||||
return $this->SMTPServerType[$_serverTypeID]['fieldNames'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
# function getIMAPClass($_profileID)
|
||||
# {
|
||||
# if(!is_object($this->imapClass))
|
||||
# {
|
||||
# $profileData = $this->getProfile($_profileID);
|
||||
# $this->imapClass =& CreateObject('emailadmin.cyrusimap',$profileData);
|
||||
# }
|
||||
#
|
||||
# return $this->imapClass;
|
||||
# }
|
||||
|
||||
function getIMAPServerTypes()
|
||||
{
|
||||
foreach($this->IMAPServerType as $key => $value)
|
||||
{
|
||||
$retData[$key]['description'] = $value['description'];
|
||||
$retData[$key]['protocol'] = $value['protocol'];
|
||||
}
|
||||
|
||||
return $retData;
|
||||
}
|
||||
|
||||
function getLDAPStorageData($_serverid)
|
||||
{
|
||||
$storageData = $this->soemailadmin->getLDAPStorageData($_serverid);
|
||||
return $storageData;
|
||||
}
|
||||
|
||||
function getMailboxString($_folderName)
|
||||
{
|
||||
if (!empty($this->imapClass))
|
||||
{
|
||||
return ExecMethod("emailadmin.".$this->imapClass.".getMailboxString",$_folderName,3,$this->profileData);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getProfile($_profileID)
|
||||
{
|
||||
$profileData = $this->soemailadmin->getProfileList($_profileID);
|
||||
$found = false;
|
||||
if (is_array($profileData) && count($profileData))
|
||||
{
|
||||
foreach($profileData as $n => $data)
|
||||
{
|
||||
if ($data['ProfileID'] == $_profileID)
|
||||
{
|
||||
$found = $n;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($found === false) // no existing profile selected
|
||||
{
|
||||
if (is_array($profileData) && count($profileData)) // if we have a profile use that
|
||||
{
|
||||
reset($profileData);
|
||||
list($found,$data) = each($profileData);
|
||||
$this->profileID = $_profileID = $data['profileID'];
|
||||
}
|
||||
elseif ($GLOBALS['egw_info']['server']['smtp_server']) // create a default profile, from the data in the api config
|
||||
{
|
||||
$this->profileID = $_profileID = $this->soemailadmin->addProfile(array(
|
||||
'description' => $GLOBALS['egw_info']['server']['smtp_server'],
|
||||
'defaultDomain' => $GLOBALS['egw_info']['server']['mail_suffix'],
|
||||
'organisationName' => '',
|
||||
'userDefinedAccounts' => '',
|
||||
),array(
|
||||
'smtpServer' => $GLOBALS['egw_info']['server']['smtp_server'],
|
||||
'smtpPort' => $GLOBALS['egw_info']['server']['smtp_port'],
|
||||
'smtpAuth' => '',
|
||||
'smtpType' => '1',
|
||||
),array(
|
||||
'imapServer' => $GLOBALS['egw_info']['server']['mail_server'] ?
|
||||
$GLOBALS['egw_info']['server']['mail_server'] : $GLOBALS['egw_info']['server']['smtp_server'],
|
||||
'imapPort' => '143',
|
||||
'imapType' => '2', // imap
|
||||
'imapLoginType' => $GLOBALS['egw_info']['server']['mail_login_type'] ?
|
||||
$GLOBALS['egw_info']['server']['mail_login_type'] : 'standard',
|
||||
'imapTLSEncryption' => '',
|
||||
'imapTLSAuthentication' => '',
|
||||
'imapoldcclient' => '',
|
||||
));
|
||||
$profileData[$found = 0] = array(
|
||||
'smtpType' => '1',
|
||||
'imapType' => '2',
|
||||
);
|
||||
}
|
||||
}
|
||||
$fieldNames = array();
|
||||
if (isset($profileData[$found]))
|
||||
{
|
||||
$fieldNames = array_merge($this->SMTPServerType[$profileData[$found]['smtpType']]['fieldNames'],
|
||||
$this->IMAPServerType[$profileData[$found]['imapType']]['fieldNames']);
|
||||
}
|
||||
$fieldNames[] = 'description';
|
||||
$fieldNames[] = 'defaultDomain';
|
||||
$fieldNames[] = 'profileID';
|
||||
$fieldNames[] = 'organisationName';
|
||||
$fieldNames[] = 'userDefinedAccounts';
|
||||
$fieldNames[] = 'ea_appname';
|
||||
$fieldNames[] = 'ea_group';
|
||||
|
||||
return $this->soemailadmin->getProfile($_profileID, $fieldNames);
|
||||
}
|
||||
|
||||
function getProfileList($_profileID='')
|
||||
{
|
||||
return $this->soemailadmin->getProfileList($_profileID);
|
||||
}
|
||||
|
||||
# function getSMTPClass($_profileID)
|
||||
# {
|
||||
# if(!is_object($this->smtpClass))
|
||||
# {
|
||||
# $profileData = $this->getProfile($_profileID);
|
||||
# $this->smtpClass =& CreateObject('emailadmin.postfixldap',$profileData);
|
||||
# }
|
||||
#
|
||||
# return $this->smtpClass;
|
||||
# }
|
||||
|
||||
function getSMTPServerTypes()
|
||||
{
|
||||
foreach($this->SMTPServerType as $key => $value)
|
||||
{
|
||||
$retData[$key] = $value['description'];
|
||||
}
|
||||
|
||||
return $retData;
|
||||
}
|
||||
|
||||
function getUserProfile($_appName='', $_groups='')
|
||||
{
|
||||
$appName = ($_appName != '' ? $_appName : $GLOBALS['egw_info']['flags']['currentapp']);
|
||||
if(!is_array($_groups))
|
||||
{
|
||||
// initialize with 0 => means no group id
|
||||
$groups = array(0);
|
||||
$userGroups = $GLOBALS['egw']->accounts->membership($GLOBALS['egw_info']['user']['account_id']);
|
||||
foreach((array)$userGroups as $groupInfo)
|
||||
{
|
||||
$groups[] = $groupInfo['account_id'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$groups = $_groups;
|
||||
}
|
||||
|
||||
return $this->soemailadmin->getUserProfile($appName, $groups);
|
||||
}
|
||||
|
||||
function getUserData($_accountID, $_usecache)
|
||||
{
|
||||
if ($_usecache)
|
||||
{
|
||||
$userData = $this->userSessionData[$_accountID];
|
||||
}
|
||||
else
|
||||
{
|
||||
$userData = $this->soemailadmin->getUserData($_accountID);
|
||||
$bofelamimail =& CreateObject('felamimail.bofelamimail');
|
||||
$bofelamimail->openConnection('','',true);
|
||||
$userQuota =
|
||||
$bofelamimail->imapGetQuota($GLOBALS['egw']->accounts->id2name($_accountID));
|
||||
if(is_array($userQuota))
|
||||
{
|
||||
$userData['quotaLimit'] = $userQuota['limit'];
|
||||
}
|
||||
$bofelamimail->closeConnection();
|
||||
$this->userSessionData[$_accountID] = $userData;
|
||||
$this->saveSessionData();
|
||||
}
|
||||
return $userData;
|
||||
}
|
||||
|
||||
function restoreSessionData()
|
||||
{
|
||||
$this->sessionData = $GLOBALS['egw']->session->appsession('session_data');
|
||||
$this->userSessionData = $GLOBALS['egw']->session->appsession('user_session_data');
|
||||
}
|
||||
|
||||
function saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy)
|
||||
{
|
||||
if (!empty($this->smtpClass))
|
||||
{
|
||||
$smtpClass = &CreateObject('emailadmin.'.$this->smtpClass,$this->profileID);
|
||||
$smtpClass->saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* called by the validation hook in setup
|
||||
*
|
||||
* @param array $settings following keys: mail_server, mail_server_type {IMAP|IMAPS|POP-3|POP-3S},
|
||||
* mail_login_type {standard|vmailmgr}, mail_suffix (domain), smtp_server, smtp_port, smtp_auth_user, smtp_auth_passwd
|
||||
*/
|
||||
function setDefaultProfile($settings)
|
||||
{
|
||||
if (($profiles = $this->soemailadmin->getProfileList(0,true)))
|
||||
{
|
||||
$profile = array_shift($profiles);
|
||||
}
|
||||
else
|
||||
{
|
||||
$profile = array(
|
||||
'smtpType' => 1,
|
||||
'description' => 'default profile (created by setup)',
|
||||
'ea_appname' => '',
|
||||
'ea_group' => 0,
|
||||
);
|
||||
}
|
||||
foreach(array(
|
||||
'mail_server' => 'imapServer',
|
||||
'mail_server_type' => array(
|
||||
'imap' => array(
|
||||
'imapType' => 2,
|
||||
'imapPort' => 143,
|
||||
'imapTLSEncryption' => null,
|
||||
),
|
||||
'imaps' => array(
|
||||
'imapType' => 2,
|
||||
'imapPort' => 993,
|
||||
'imapTLSEncryption' => 'yes',
|
||||
),
|
||||
'pop3' => array(
|
||||
'imapType' => 1,
|
||||
'imapPort' => 110,
|
||||
'imapTLSEncryption' => null,
|
||||
),
|
||||
'pop3s' => array(
|
||||
'imapType' => 1,
|
||||
'imapPort' => 995,
|
||||
'imapTLSEncryption' => 'yes',
|
||||
),
|
||||
),
|
||||
'mail_login_type' => 'imapLoginType',
|
||||
'mail_suffix' => 'defaultDomain',
|
||||
'smtp_server' => 'smtpServer',
|
||||
'smtp_port' => 'smtpPort',
|
||||
) as $setup_name => $ea_name_data)
|
||||
{
|
||||
if (!is_array($ea_name_data))
|
||||
{
|
||||
$profile[$ea_name_data] = $settings[$setup_name];
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($ea_name_data as $setup_val => $ea_data)
|
||||
{
|
||||
if ($setup_val == $settings[$setup_name])
|
||||
{
|
||||
foreach($ea_data as $var => $val)
|
||||
{
|
||||
if ($var != 'imapType' || $val != 2 || $profile[$var] < 3) // dont kill special imap server types
|
||||
{
|
||||
$profile[$var] = $val;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->soemailadmin->updateProfile($profile);
|
||||
//echo "<p>EMailAdmin profile update: ".print_r($profile,true)."</p>\n"; exit;
|
||||
}
|
||||
|
||||
function saveProfile($_globalSettings, $_smtpSettings, $_imapSettings)
|
||||
{
|
||||
if(!isset($_globalSettings['profileID']))
|
||||
{
|
||||
$_globalSettings['ea_order'] = count($this->getProfileList()) + 1;
|
||||
$this->soemailadmin->addProfile($_globalSettings, $_smtpSettings, $_imapSettings);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->soemailadmin->updateProfile($_globalSettings, $_smtpSettings, $_imapSettings);
|
||||
}
|
||||
$all = $_globalSettings+$_smtpSettings+$_imapSettings;
|
||||
if (!$all['ea_group'] && !$all['ea_application']) // standard profile update eGW config
|
||||
{
|
||||
$new_config = array();
|
||||
foreach(array(
|
||||
'imapServer' => 'mail_server',
|
||||
'imapType' => 'mail_server_type',
|
||||
'imapLoginType' => 'mail_login_type',
|
||||
'defaultDomain' => 'mail_suffix',
|
||||
'smtpServer' => 'smtp_server',
|
||||
'smtpPort' => 'smtp_port',
|
||||
) as $ea_name => $config_name)
|
||||
{
|
||||
if (isset($all[$ea_name]))
|
||||
{
|
||||
if ($ea_name != 'imapType')
|
||||
{
|
||||
$new_config[$config_name] = $all[$ea_name];
|
||||
}
|
||||
else // imap type
|
||||
{
|
||||
$new_config[$config_name] = ($all['imapType'] == 1 ? 'pop3' : 'imap').($all['imapTLSEncryption'] ? 's' : '');
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count($new_config))
|
||||
{
|
||||
$config =& CreateObject('phpgwapi.config','phpgwapi');
|
||||
|
||||
foreach($new_config as $name => $value)
|
||||
{
|
||||
$config->save_value($name,$value,'phpgwapi');
|
||||
}
|
||||
//echo "<p>eGW configuration update: ".print_r($new_config,true)."</p>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function saveSessionData()
|
||||
{
|
||||
$GLOBALS['egw']->session->appsession('session_data','',$this->sessionData);
|
||||
$GLOBALS['egw']->session->appsession('user_session_data','',$this->userSessionData);
|
||||
}
|
||||
|
||||
function saveUserData($_accountID, $_formData, $_boAction)
|
||||
{
|
||||
$this->userSessionData[$_accountID]['mailLocalAddress'] = $_formData["mailLocalAddress"];
|
||||
$this->userSessionData[$_accountID]['accountStatus'] = $_formData["accountStatus"];
|
||||
$this->userSessionData[$_accountID]['deliveryMode'] = $_formData["deliveryMode"];
|
||||
$this->userSessionData[$_accountID]['qmailDotMode'] = $_formData["qmailDotMode"];
|
||||
$this->userSessionData[$_accountID]['deliveryProgramPath'] = $_formData["deliveryProgramPath"];
|
||||
$this->userSessionData[$_accountID]['quotaLimit'] = $_formData["quotaLimit"];
|
||||
|
||||
switch ($_boAction)
|
||||
{
|
||||
case 'add_mailAlternateAddress':
|
||||
if (is_array($this->userSessionData[$_accountID]['mailAlternateAddress']))
|
||||
{
|
||||
$count = count($this->userSessionData[$_accountID]['mailAlternateAddress']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$count = 0;
|
||||
$this->userSessionData[$_accountID]['mailAlternateAddress'] = array();
|
||||
}
|
||||
|
||||
$this->userSessionData[$_accountID]['mailAlternateAddress'][$count] =
|
||||
$_formData['add_mailAlternateAddress'];
|
||||
|
||||
$this->saveSessionData();
|
||||
|
||||
break;
|
||||
|
||||
case 'remove_mailAlternateAddress':
|
||||
$i=0;
|
||||
|
||||
while(list($key, $value) = @each($this->userSessionData[$_accountID]['mailAlternateAddress']))
|
||||
{
|
||||
#print ".. $key: $value<br>";
|
||||
if ($key != $_formData['remove_mailAlternateAddress'])
|
||||
{
|
||||
$newMailAlternateAddress[$i]=$value;
|
||||
#print "!! $i: $value<br>";
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$this->userSessionData[$_accountID]['mailAlternateAddress'] = $newMailAlternateAddress;
|
||||
|
||||
$this->saveSessionData();
|
||||
|
||||
break;
|
||||
|
||||
case 'add_mailRoutingAddress':
|
||||
if (is_array($this->userSessionData[$_accountID]['mailRoutingAddress']))
|
||||
{
|
||||
$count = count($this->userSessionData[$_accountID]['mailRoutingAddress']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$count = 0;
|
||||
$this->userSessionData[$_accountID]['mailRoutingAddress'] = array();
|
||||
}
|
||||
|
||||
$this->userSessionData[$_accountID]['mailRoutingAddress'][$count] =
|
||||
$_formData['add_mailRoutingAddress'];
|
||||
|
||||
$this->saveSessionData();
|
||||
|
||||
break;
|
||||
|
||||
case 'remove_mailRoutingAddress':
|
||||
$i=0;
|
||||
|
||||
while(list($key, $value) = @each($this->userSessionData[$_accountID]['mailRoutingAddress']))
|
||||
{
|
||||
if ($key != $_formData['remove_mailRoutingAddress'])
|
||||
{
|
||||
$newMailRoutingAddress[$i]=$value;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$this->userSessionData[$_accountID]['mailRoutingAddress'] = $newMailRoutingAddress;
|
||||
|
||||
$this->saveSessionData();
|
||||
|
||||
break;
|
||||
|
||||
case 'save':
|
||||
$this->soemailadmin->saveUserData(
|
||||
$_accountID,
|
||||
$this->userSessionData[$_accountID]);
|
||||
$bofelamimail =& CreateObject('felamimail.bofelamimail');
|
||||
$bofelamimail->openConnection('','',true);
|
||||
$bofelamimail->imapSetQuota($GLOBALS['egw']->accounts->id2name($_accountID),
|
||||
$this->userSessionData[$_accountID]['quotaLimit']);
|
||||
$bofelamimail->closeConnection();
|
||||
$GLOBALS['egw']->accounts->cache_invalidate($_accountID);
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function setOrder($_order)
|
||||
{
|
||||
if(is_array($_order)) {
|
||||
$this->soemailadmin->setOrder($_order);
|
||||
}
|
||||
}
|
||||
|
||||
function updateAccount($_hookValues)
|
||||
{
|
||||
$this->profileData = $this->getUserProfile('felamimail', $_hookValues['account_groups']);
|
||||
|
||||
$this->imapClass = $this->IMAPServerType[$this->profileData['imapType']]['classname'];
|
||||
$this->smtpClass = $this->SMTPServerType[$this->profileData['smtpType']]['classname'];
|
||||
|
||||
if (!empty($this->imapClass))
|
||||
{
|
||||
ExecMethod("emailadmin.".$this->imapClass.".updateAccount",$_hookValues,3,$this->profileData);
|
||||
}
|
||||
|
||||
if (!empty($this->smtpClass))
|
||||
{
|
||||
ExecMethod("emailadmin.".$this->smtpClass.".updateAccount",$_hookValues,3,$this->profileData);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
Loading…
Reference in New Issue
Block a user