2011-07-01 12:37:47 +02:00
|
|
|
<?php
|
2012-09-27 19:09:17 +02:00
|
|
|
/**
|
2011-07-01 12:37:47 +02:00
|
|
|
* eGroupWare - eMailAdmin hooks
|
|
|
|
*
|
|
|
|
* @link http://www.egroupware.org
|
|
|
|
* @package emailadmin
|
|
|
|
* @author Klaus Leithoff <leithoff-AT-stylite.de>
|
|
|
|
* @copyright (c) 2008-8 by leithoff-At-stylite.de
|
|
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
|
|
* @version $Id$
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* diverse static emailadmin hooks
|
|
|
|
*/
|
|
|
|
class emailadmin_hooks
|
|
|
|
{
|
|
|
|
// hook to plug in into admin (managable) applications list
|
|
|
|
static function admin()
|
|
|
|
{
|
|
|
|
// Only Modify the $file and $title variables.....
|
|
|
|
$title = $appname = 'emailadmin';
|
|
|
|
$file = Array(
|
|
|
|
'Site Configuration' => $GLOBALS['egw']->link('/index.php','menuaction=emailadmin.emailadmin_ui.index')
|
|
|
|
);
|
|
|
|
|
|
|
|
//Do not modify below this line
|
|
|
|
display_section($appname,$title,$file);
|
|
|
|
}
|
2012-11-19 13:40:26 +01:00
|
|
|
|
2011-07-01 12:37:47 +02:00
|
|
|
/**
|
|
|
|
* Hook called if account emailadim settings has to be modified
|
|
|
|
*
|
|
|
|
* @param array $data
|
|
|
|
* @param int $data['account_id'] numerical id
|
|
|
|
*/
|
|
|
|
static function edit_user($data)
|
|
|
|
{
|
|
|
|
//echo "called hook and function<br>".function_backtrace()."<br>";
|
|
|
|
//_debug_array($data);
|
|
|
|
|
|
|
|
if ($data['account_id'] && // can't set it on add
|
|
|
|
$GLOBALS['egw_info']['user']['apps']['emailadmin'])
|
|
|
|
{
|
|
|
|
$GLOBALS['menuData'][] = array(
|
|
|
|
'description' => 'eMailAdmin: User assigned Profile',
|
|
|
|
'url' => '/index.php',
|
|
|
|
'extradata' => 'menuaction=emailadmin.emailadmin_ui.index'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Hook called after group emailadim settings has to be modified
|
|
|
|
*
|
|
|
|
* @param array $data
|
|
|
|
* @param int $data['account_id'] numerical id
|
|
|
|
*/
|
|
|
|
static function edit_group($data)
|
|
|
|
{
|
|
|
|
#echo "called hook and function<br>";
|
|
|
|
#_debug_array($data);
|
|
|
|
# somehow the $data var seems to be quite sparsely populated, so we dont check any further
|
|
|
|
if (#!empty($data['account_id']) && $data['account_id'] < 0 && // can't set it on add
|
|
|
|
$GLOBALS['egw_info']['user']['apps']['emailadmin'])
|
|
|
|
{
|
|
|
|
$GLOBALS['menuData'][] = array(
|
|
|
|
'description' => 'eMailAdmin: Group assigned Profile',
|
|
|
|
'url' => '/index.php',
|
|
|
|
'extradata' => 'menuaction=emailadmin.emailadmin_ui.index'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Hook called before an account get deleted
|
|
|
|
*
|
|
|
|
* @param array $data
|
|
|
|
* @param int $data['account_id'] numerical id
|
|
|
|
* @param string $data['account_lid'] account-name
|
|
|
|
* @param int $data['new_owner'] account-id of new owner, or false if data should get deleted
|
|
|
|
*/
|
|
|
|
static function deleteaccount(array $data)
|
|
|
|
{
|
|
|
|
if((int)$data['account_id'] > 0 &&
|
|
|
|
$GLOBALS['egw_info']['user']['apps']['emailadmin'])
|
|
|
|
{
|
|
|
|
$boemailadmin = new emailadmin_bo();
|
|
|
|
$profileList = $boemailadmin->getProfileList($profileID,$appName,$groupID,(int) $data['account_id']);
|
|
|
|
if (is_array($profileList)) {
|
|
|
|
foreach ($profileList as $key => $value) {
|
|
|
|
$boemailadmin->delete($value['profileID']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2012-11-19 13:40:26 +01:00
|
|
|
|
2011-07-01 12:37:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Hook called before a group get deleted
|
|
|
|
*
|
|
|
|
* @param array $data
|
|
|
|
* @param int $data['account_id'] numerical id
|
|
|
|
* @param string $data['account_name'] account-name
|
|
|
|
*/
|
|
|
|
static function deletegroup(array $data)
|
|
|
|
{
|
|
|
|
if ((int)$data['account_id'] < 0 &&
|
|
|
|
$GLOBALS['egw_info']['user']['apps']['emailadmin'])
|
|
|
|
{
|
|
|
|
$boemailadmin = new emailadmin_bo();
|
|
|
|
$profileList = $boemailadmin->getProfileList($profileID,$appName,(int) $data['account_id'],$accountID);
|
|
|
|
if (is_array($profileList)) {
|
|
|
|
foreach ($profileList as $key => $value) {
|
2013-01-14 09:52:23 +01:00
|
|
|
$boemailadmin->soemailadmin->deleteProfile($value['profileID']);
|
2011-07-01 12:37:47 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-09-27 19:09:17 +02:00
|
|
|
/**
|
|
|
|
* Add further imap and smtp server plugins to emailadmin
|
|
|
|
*
|
|
|
|
* @param string|array $data location string or array with key 'location' and other params
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public static function server_types($data)
|
|
|
|
{
|
|
|
|
$location = is_array($data) ? $data['location'] : $data;
|
|
|
|
$extended = is_array($data) ? $data['extended'] : false;
|
|
|
|
|
|
|
|
switch($location)
|
|
|
|
{
|
|
|
|
case 'imap_server_types':
|
|
|
|
return array(
|
2012-11-20 16:44:29 +01:00
|
|
|
'defaultimap' => $extended ? array(
|
|
|
|
'description' => 'standard IMAP server',
|
|
|
|
'protocol' => 'imap',
|
|
|
|
'classname' => 'defaultimap'
|
|
|
|
) : 'standard IMAP server',
|
2012-09-27 19:09:17 +02:00
|
|
|
'emailadmin_dovecot' => $extended ? array(
|
|
|
|
'description' => 'Dovecot',
|
2012-11-20 14:46:32 +01:00
|
|
|
'classname' => 'emailadmin_dovecot',
|
2012-09-27 19:09:17 +02:00
|
|
|
'protocol' => 'imap',
|
|
|
|
) : 'Dovecot',
|
2012-11-20 16:44:29 +01:00
|
|
|
'cyrusimap' => $extended ? array(
|
|
|
|
'description' => 'Cyrus IMAP Server',
|
|
|
|
'protocol' => 'imap',
|
|
|
|
'classname' => 'cyrusimap'
|
|
|
|
) : 'Cyrus IMAP Server',
|
|
|
|
'dbmailqmailuser' => $extended ? array(
|
|
|
|
'description' => 'DBMail (qmailUser schema)',
|
|
|
|
'protocol' => 'imap',
|
|
|
|
'classname' => 'dbmailqmailuser'
|
|
|
|
) : 'DBMail (qmailUser schema)',
|
|
|
|
'pleskimap' => $extended ? array(
|
|
|
|
'description' => 'Plesk IMAP Server (Courier)',
|
|
|
|
'protocol' => 'imap',
|
|
|
|
'classname' => 'pleskimap'
|
|
|
|
) : 'Plesk IMAP Server (Courier)',
|
|
|
|
'dbmaildbmailuser' => $extended ? array(
|
|
|
|
'description' => 'DBMail (dbmailUser schema)',
|
|
|
|
'protocol' => 'imap',
|
|
|
|
'classname' => 'dbmaildbmailuser'
|
|
|
|
) : 'DBMail (dbmailUser schema)',
|
2012-09-27 19:09:17 +02:00
|
|
|
);
|
|
|
|
|
2012-11-19 13:40:26 +01:00
|
|
|
case 'smtp_server_types': // nothing yet
|
2012-11-20 16:44:29 +01:00
|
|
|
return array(
|
|
|
|
'emailadmin_smtp' => $extended ? array(
|
|
|
|
'description' => 'standard SMTP-Server',
|
|
|
|
'classname' => 'emailadmin_smtp'
|
|
|
|
) : 'standard SMTP-Server',
|
|
|
|
'emailadmin_smtp_sql' => $extended ? array(
|
2012-11-20 14:46:32 +01:00
|
|
|
'description' => 'Postfix (SQL)',
|
|
|
|
'classname' => 'emailadmin_smtp_sql',
|
2012-11-20 16:44:29 +01:00
|
|
|
) : 'Postfix (SQL)',
|
|
|
|
'postfixldap' => $extended ? array(
|
|
|
|
'description' => 'Postfix (qmail Schema)',
|
|
|
|
'classname' => 'postfixldap'
|
|
|
|
) : 'Postfix (qmail Schema)',
|
2013-02-21 15:57:31 +01:00
|
|
|
'emailadmin_smtp_qmail' => $extended ? array(
|
|
|
|
'description' => 'Postfix (new qmail Schema)',
|
|
|
|
'classname' => 'emailadmin_smtp_qmail'
|
|
|
|
) : 'Postfix (new qmail Schema)',
|
2012-11-20 16:44:29 +01:00
|
|
|
'postfixinetorgperson' => $extended ? array(
|
|
|
|
'description' => 'Postfix (inetOrgPerson Schema)',
|
|
|
|
'classname' => 'postfixinetorgperson'
|
|
|
|
) : 'Postfix (inetOrgPerson Schema)',
|
|
|
|
'smtpplesk' => $extended ? array(
|
|
|
|
'description' => 'Plesk SMTP-Server (Qmail)',
|
|
|
|
'classname' => 'smtpplesk'
|
|
|
|
) : 'Plesk SMTP-Server (Qmail)',
|
|
|
|
'postfixdbmailuser' => $extended ? array(
|
|
|
|
'description' => 'Postfix (dbmail Schema)',
|
|
|
|
'classname' => 'postfixdbmailuser'
|
|
|
|
) : 'Postfix (dbmail Schema)',
|
|
|
|
);
|
2012-09-27 19:09:17 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2011-07-01 12:37:47 +02:00
|
|
|
}
|