1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-20 13:52:40 +01:00

Exclusion of actor as a mail recipient per preference can be overridden

Summary:
Fixes T2797

Currently, emails are sent in no case to the actor if he has disabled the preference to send emails for his own actions. This won't let us send any test emails from the MetaMTA application to ourselves.

This revision corrects the latter by specifically overriding the option for test emails.

Test Plan:
tried to send emails to myself. verified test mail got blocked with change not applied.

applied the change. verified new change with both preference enabled and disabled did work fine.

Reviewers: epriestley

Reviewed By: epriestley

CC: kai, aran, Korvin

Maniphest Tasks: T2797

Differential Revision: https://secure.phabricator.com/D5398
This commit is contained in:
epriestley 2013-03-20 15:50:02 -07:00
parent 404d514d0e
commit eca49cb91f
2 changed files with 12 additions and 1 deletions

View file

@ -32,6 +32,7 @@ final class PhabricatorMetaMTASendController
$mail->setIsHTML($request->getInt('html')); $mail->setIsHTML($request->getInt('html'));
$mail->setIsBulk($request->getInt('bulk')); $mail->setIsBulk($request->getInt('bulk'));
$mail->setMailTags($request->getStrList('mailtags')); $mail->setMailTags($request->getStrList('mailtags'));
$mail->setOverrideNoSelfMailPreference(true);
$mail->save(); $mail->save();
if ($request->getInt('immediately')) { if ($request->getInt('immediately')) {
$mail->sendNow(); $mail->sendNow();

View file

@ -23,6 +23,7 @@ final class PhabricatorMetaMTAMail extends PhabricatorMetaMTADAO {
protected $relatedPHID; protected $relatedPHID;
private $excludePHIDs = array(); private $excludePHIDs = array();
private $overrideNoSelfMail = false;
public function __construct() { public function __construct() {
@ -115,6 +116,15 @@ final class PhabricatorMetaMTAMail extends PhabricatorMetaMTADAO {
return $this->excludePHIDs; return $this->excludePHIDs;
} }
public function getOverrideNoSelfMailPreference() {
return $this->overrideNoSelfMail;
}
public function setOverrideNoSelfMailPreference($override) {
$this->overrideNoSelfMail = $override;
return $this;
}
public function getTranslation(array $objects) { public function getTranslation(array $objects) {
$default_translation = PhabricatorEnv::getEnvConfig('translation.provider'); $default_translation = PhabricatorEnv::getEnvConfig('translation.provider');
$return = null; $return = null;
@ -822,7 +832,7 @@ final class PhabricatorMetaMTAMail extends PhabricatorMetaMTADAO {
$from_user = id(new PhabricatorUser())->loadOneWhere( $from_user = id(new PhabricatorUser())->loadOneWhere(
'phid = %s', 'phid = %s',
$from); $from);
if ($from_user) { if ($from_user && !$this->getOverrideNoSelfMailPreference()) {
$pref_key = PhabricatorUserPreferences::PREFERENCE_NO_SELF_MAIL; $pref_key = PhabricatorUserPreferences::PREFERENCE_NO_SELF_MAIL;
$exclude_self = $from_user $exclude_self = $from_user
->loadPreferences() ->loadPreferences()