mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-23 05:41:02 +01:00
several stuff regarding IMAP/SMTPServerType Handling
This commit is contained in:
parent
9d350b0f7d
commit
346dd803e4
@ -233,7 +233,9 @@ class emailadmin_bo extends so_sql
|
||||
$GLOBALS['emailadmin_bo'] = $this;
|
||||
}
|
||||
$this->soemailadmin = new emailadmin_so();
|
||||
//translate the standard entry description
|
||||
//init with all servertypes and translate the standard entry description
|
||||
self::$SMTPServerType = self::getSMTPServerTypes();
|
||||
self::$IMAPServerType = self::getIMAPServerTypes();
|
||||
self::$SMTPServerType['emailadmin_smtp']['description'] = lang('standard SMTP-Server');
|
||||
self::$IMAPServerType['defaultimap']['description'] = lang('standard IMAP Server');
|
||||
if ($_restoreSesssion) // && !(is_array(self::$sessionData) && (count(self::$sessionData)>0)) )
|
||||
@ -399,11 +401,11 @@ class emailadmin_bo extends so_sql
|
||||
switch($_class)
|
||||
{
|
||||
case 'imap':
|
||||
return self::$IMAPServerType[$_serverTypeID]['fieldNames'];
|
||||
return (isset(self::$IMAPServerType[$_serverTypeID]['fieldNames'])?self::$IMAPServerType[$_serverTypeID]['fieldNames']:array());
|
||||
break;
|
||||
case 'smtp':
|
||||
if ($_serverTypeID=='defaultsmtp') $_serverTypeID='emailadmin_smtp';
|
||||
return self::$SMTPServerType[$_serverTypeID]['fieldNames'];
|
||||
return (isset(self::$SMTPServerType[$_serverTypeID]['fieldNames'])?self::$SMTPServerType[$_serverTypeID]['fieldNames']:array());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -479,8 +481,11 @@ class emailadmin_bo extends so_sql
|
||||
if (isset($profileData[$found]))
|
||||
{
|
||||
if ($profileData[$found]['smtpType']=='defaultsmtp') $profileData[$found]['smtpType'] = 'emailadmin_smtp';
|
||||
$fieldNames = array_merge(self::$SMTPServerType[$profileData[$found]['smtpType']]['fieldNames'],
|
||||
self::$IMAPServerType[$profileData[$found]['imapType']]['fieldNames']);
|
||||
$smtpFields = array();
|
||||
$imapFields = array();
|
||||
if (isset(self::$SMTPServerType[$profileData[$found]['smtpType']]['fieldNames'])) $smtpFields = self::$SMTPServerType[$profileData[$found]['smtpType']]['fieldNames'];
|
||||
if (isset(self::$IMAPServerType[$profileData[$found]['imapType']]['fieldNames'])) $imapFields = self::$IMAPServerType[$profileData[$found]['imapType']]['fieldNames'];
|
||||
$fieldNames = array_merge($smtpFields,$imapFields);
|
||||
}
|
||||
$fieldNames[] = 'description';
|
||||
$fieldNames[] = 'defaultDomain';
|
||||
@ -523,14 +528,22 @@ class emailadmin_bo extends so_sql
|
||||
*
|
||||
* @return array classname => label pairs
|
||||
*/
|
||||
static public function getSMTPServerTypes()
|
||||
static public function getSMTPServerTypes($extended=true)
|
||||
{
|
||||
$retData = array();
|
||||
foreach(self::$SMTPServerType as $key => $value)
|
||||
{
|
||||
$retData[$key] = $value['description'];
|
||||
if ($extended)
|
||||
{
|
||||
$retData[$key]['fieldNames'] = isset($value['fieldNames'])?$value['fieldNames']:array();
|
||||
$retData[$key]['description'] = isset($value['description'])?$value['description']:$key;
|
||||
$retData[$key]['classname'] = isset($value['classname'])?$value['classname']:$key;
|
||||
}
|
||||
}
|
||||
foreach($GLOBALS['egw']->hooks->process('smtp_server_types',array(),true) as $app => $data)
|
||||
foreach($GLOBALS['egw']->hooks->process(array(
|
||||
'location' => 'smtp_server_types',
|
||||
'extended' => $extended,
|
||||
),array(),true) as $app => $data)
|
||||
{
|
||||
if ($data) $retData += $data;
|
||||
}
|
||||
@ -552,8 +565,10 @@ class emailadmin_bo extends so_sql
|
||||
{
|
||||
if ($extended)
|
||||
{
|
||||
$retData[$key]['description'] = $value['description'];
|
||||
$retData[$key]['protocol'] = $value['protocol'];
|
||||
$retData[$key]['fieldNames'] = isset($value['fieldNames'])?$value['fieldNames']:array();
|
||||
$retData[$key]['description'] = isset($value['description'])?$value['description']:$key;
|
||||
$retData[$key]['protocol'] = isset($value['protocol'])?$value['protocol']:'imap';
|
||||
$retData[$key]['classname'] = isset($value['classname'])?$value['classname']:$key;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1028,4 +1043,29 @@ class emailadmin_bo extends so_sql
|
||||
return -$default_profile['profileID'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get ID of User specific default profile
|
||||
*
|
||||
* ID is negative for FMail, which used positive ID's for user profiles!
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
static function getUserDefaultProfileID()
|
||||
{
|
||||
$groups = array(0);
|
||||
// set the second entry to the users primary group
|
||||
$groups[] = $GLOBALS['egw_info']['user']['account_primary_group'];
|
||||
$userGroups = $GLOBALS['egw']->accounts->membership($GLOBALS['egw_info']['user']['account_id']);
|
||||
foreach((array)$userGroups as $groupInfo) {
|
||||
$groups[] = $groupInfo['account_id'];
|
||||
}
|
||||
$soemailadmin = new emailadmin_so();
|
||||
if (($profile = $soemailadmin->getUserProfile('felamimail',$groups,$GLOBALS['egw_info']['user']['account_id'])))
|
||||
{
|
||||
$default_profile = $profile['profileID']*-1;;
|
||||
|
||||
return $default_profile;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -135,12 +135,16 @@ class emailadmin_hooks
|
||||
return array(
|
||||
'emailadmin_dovecot' => $extended ? array(
|
||||
'description' => 'Dovecot',
|
||||
'classname' => 'emailadmin_dovecot',
|
||||
'protocol' => 'imap',
|
||||
) : 'Dovecot',
|
||||
);
|
||||
|
||||
case 'smtp_server_types': // nothing yet
|
||||
return array('emailadmin_smtp_sql' => 'Postfix (SQL)');
|
||||
return array('emailadmin_smtp_sql' => $extended ? array(
|
||||
'description' => 'Postfix (SQL)',
|
||||
'classname' => 'emailadmin_smtp_sql',
|
||||
) : 'Postfix (SQL)');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ class emailadmin_ui extends emailadmin_bo
|
||||
break;
|
||||
}
|
||||
}
|
||||
$sel_options['ea_smtp_type']=parent::getSMTPServerTypes();
|
||||
$sel_options['ea_smtp_type']=parent::getSMTPServerTypes(false);
|
||||
$sel_options['ea_imap_type']=parent::getIMAPServerTypes(false);
|
||||
$sel_options['ea_appname'] =self::getAllowedApps();
|
||||
// setting for the top of the app, etc.
|
||||
@ -390,7 +390,7 @@ class emailadmin_ui extends emailadmin_bo
|
||||
list($content['ea_smtp_auth_username'],$content['smtp_senders_email']) = explode(';',$content['ea_smtp_auth_username']);
|
||||
$preserv['ea_profile_id'] = $content['ea_profile_id'];
|
||||
//$preserv['ea_stationery_active_templates'] = $content['ea_stationery_active_templates'];
|
||||
$sel_options['ea_smtp_type']=parent::getSMTPServerTypes();
|
||||
$sel_options['ea_smtp_type']=parent::getSMTPServerTypes(false);
|
||||
$sel_options['ea_imap_type']=parent::getIMAPServerTypes(false);
|
||||
$sel_options['ea_appname'] =self::getAllowedApps();
|
||||
$sel_options['ea_imap_login_type'] = self::getIMAPLoginTypes($content['ea_imap_type']);
|
||||
|
Loading…
Reference in New Issue
Block a user