From 1d7cfc171338567021abbccaa79e9ebea0b2466e Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 19 Nov 2012 12:54:54 +0000 Subject: [PATCH] if EGroupware manages a mail server, allow setting an email address for groups r40865: add group-members for groups as forward --- admin/inc/class.uiaccounts.inc.php | 23 ++++++++++++++----- .../inc/class.emailadmin_smtp_sql.inc.php | 18 +++++++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/admin/inc/class.uiaccounts.inc.php b/admin/inc/class.uiaccounts.inc.php index 88a346a0f6..225beb830b 100755 --- a/admin/inc/class.uiaccounts.inc.php +++ b/admin/inc/class.uiaccounts.inc.php @@ -1205,13 +1205,24 @@ $p->set_var ('account_file_space', ''); $p->set_var ('account_file_space_select',''."\n"); */ - - if ($group_repository['mailAllowed']) + // if EGroupware manages a mail server, allow setting an email address for groups + if ($group_repository['mailAllowed'] && $GLOBALS['egw_info']['apps']['emailadmin'] && + $GLOBALS['egw_info']['apps']['felamimail']) { - $p->set_var(array( - 'lang_email' => lang('Email'), - 'email' => html::input('account_email',$group_repository['account_email'],'',' style="width: 100%;"'), - )); + $emailadmin = new emailadmin_bo(); + if (($default_profile_id = $emailadmin->getDefaultProfileID())) + { + $bofelamimail = felamimail_bo::getInstance(true, $default_profile_id); + $ogServer = $bofelamimail->mailPreferences->getOutgoingServer($default_profile_id); + //error_log(__METHOD__."() default_profile_id = $default_profile_id, get_class(ogServer)=".get_class($ogServer)); + if (!in_array(get_class($ogServer), array('defaultsmtp', 'emailadmin_smtp'))) + { + $p->set_var(array( + 'lang_email' => lang('Email'), + 'email' => html::input('account_email',$group_repository['account_email'],'',' style="width: 100%;"'), + )); + } + } } $availableApps = $GLOBALS['egw_info']['apps']; foreach($availableApps as $app => $data) diff --git a/emailadmin/inc/class.emailadmin_smtp_sql.inc.php b/emailadmin/inc/class.emailadmin_smtp_sql.inc.php index 5876069ef4..ee9acae8fc 100644 --- a/emailadmin/inc/class.emailadmin_smtp_sql.inc.php +++ b/emailadmin/inc/class.emailadmin_smtp_sql.inc.php @@ -188,6 +188,24 @@ class emailadmin_smtp_sql extends emailadmin_smtp break; } } + // if query by email-address (not a regular call from fmail) + if (is_array($account_id)) + { + // add group-members for groups as forward (that way we dont need to store&update them) + foreach($account_id as $id) + { + if ($id < 0 && ($members = $this->accounts->members($id, true))) + { + foreach($members as $member) + { + if (($email = $this->accounts->id2name($member, 'account_email')) && !in_array($email, $userData['forward'])) + { + $userData['forward'][] = $email; + } + } + } + } + } } if ($this->debug) error_log(__METHOD__."('$user') returning ".array2string($userData));