Page MenuHomePhabricator

D21049.id50149.diff
No OneTemporary

D21049.id50149.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -4886,6 +4886,7 @@
'PhabricatorSubscriptionsListController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsListController.php',
'PhabricatorSubscriptionsMailEngineExtension' => 'applications/subscriptions/engineextension/PhabricatorSubscriptionsMailEngineExtension.php',
'PhabricatorSubscriptionsMuteController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsMuteController.php',
+ 'PhabricatorSubscriptionsMuteEmailCommand' => 'applications/subscriptions/command/PhabricatorSubscriptionsMuteEmailCommand.php',
'PhabricatorSubscriptionsRemoveSelfHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsRemoveSelfHeraldAction.php',
'PhabricatorSubscriptionsRemoveSubscribersHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsRemoveSubscribersHeraldAction.php',
'PhabricatorSubscriptionsSearchEngineAttachment' => 'applications/subscriptions/engineextension/PhabricatorSubscriptionsSearchEngineAttachment.php',
@@ -11626,6 +11627,7 @@
'PhabricatorSubscriptionsListController' => 'PhabricatorController',
'PhabricatorSubscriptionsMailEngineExtension' => 'PhabricatorMailEngineExtension',
'PhabricatorSubscriptionsMuteController' => 'PhabricatorController',
+ 'PhabricatorSubscriptionsMuteEmailCommand' => 'MetaMTAEmailTransactionCommand',
'PhabricatorSubscriptionsRemoveSelfHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
'PhabricatorSubscriptionsRemoveSubscribersHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
'PhabricatorSubscriptionsSearchEngineAttachment' => 'PhabricatorSearchEngineAttachment',
diff --git a/src/applications/subscriptions/command/PhabricatorSubscriptionsMuteEmailCommand.php b/src/applications/subscriptions/command/PhabricatorSubscriptionsMuteEmailCommand.php
new file mode 100644
--- /dev/null
+++ b/src/applications/subscriptions/command/PhabricatorSubscriptionsMuteEmailCommand.php
@@ -0,0 +1,41 @@
+<?php
+
+final class PhabricatorSubscriptionsMuteEmailCommand
+ extends MetaMTAEmailTransactionCommand {
+
+ public function getCommand() {
+ return 'mute';
+ }
+
+ public function getCommandSummary() {
+ return pht('Mute notifications from this object.');
+ }
+
+ public function isCommandSupportedForObject(
+ PhabricatorApplicationTransactionInterface $object) {
+ return ($object instanceof PhabricatorSubscribableInterface);
+ }
+
+ public function buildTransactions(
+ PhabricatorUser $viewer,
+ PhabricatorApplicationTransactionInterface $object,
+ PhabricatorMetaMTAReceivedMail $mail,
+ $command,
+ array $argv) {
+ $xactions = array();
+
+ $muted_type = PhabricatorMutedByEdgeType::EDGECONST;
+
+ $xaction_value = array(
+ '+' => array_fuse(array($viewer->getPHID())),
+ );
+
+ $xactions[] = id($object->getApplicationTransactionTemplate())
+ ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
+ ->setMetadataValue('edge:type', $muted_type)
+ ->setNewValue($xaction_value);
+
+ return $xactions;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 3:02 PM (2 d, 17 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7521100
Default Alt Text
D21049.id50149.diff (3 KB)

Event Timeline