Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14356633
D12247.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
D12247.diff
View Options
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
@@ -2550,6 +2550,7 @@
'PhabricatorSubscriptionsEditController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php',
'PhabricatorSubscriptionsEditor' => 'applications/subscriptions/editor/PhabricatorSubscriptionsEditor.php',
'PhabricatorSubscriptionsListController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsListController.php',
+ 'PhabricatorSubscriptionsSubscribeEmailCommand' => 'applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php',
'PhabricatorSubscriptionsTransactionController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php',
'PhabricatorSubscriptionsUIEventListener' => 'applications/subscriptions/events/PhabricatorSubscriptionsUIEventListener.php',
'PhabricatorSubscriptionsUnsubscribeEmailCommand' => 'applications/subscriptions/command/PhabricatorSubscriptionsUnsubscribeEmailCommand.php',
@@ -5937,6 +5938,7 @@
'PhabricatorSubscriptionsEditController' => 'PhabricatorController',
'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor',
'PhabricatorSubscriptionsListController' => 'PhabricatorController',
+ 'PhabricatorSubscriptionsSubscribeEmailCommand' => 'MetaMTAEmailTransactionCommand',
'PhabricatorSubscriptionsTransactionController' => 'PhabricatorController',
'PhabricatorSubscriptionsUIEventListener' => 'PhabricatorEventListener',
'PhabricatorSubscriptionsUnsubscribeEmailCommand' => 'MetaMTAEmailTransactionCommand',
diff --git a/src/applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php b/src/applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php
new file mode 100644
--- /dev/null
+++ b/src/applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php
@@ -0,0 +1,74 @@
+<?php
+
+final class PhabricatorSubscriptionsSubscribeEmailCommand
+ extends MetaMTAEmailTransactionCommand {
+
+ public function getCommand() {
+ return 'subscribe';
+ }
+
+ public function getCommandSyntax() {
+ return '**!subscribe** //username #project ...//';
+ }
+
+ public function getCommandSummary() {
+ return pht('Add users or projects as subscribers.');
+ }
+
+ public function getCommandDescription() {
+ return pht(
+ 'Add one or more subscribers to the object. You can add users '.
+ 'by providing their usernames, or add projects by adding their '.
+ 'hashtags. For example, use `!subscribe alincoln #ios` to add the '.
+ 'user `alincoln` and the project with hashtag `#ios` as subscribers.'.
+ "\n\n".
+ 'Subscribers which are invalid or unrecognized will be ignored. This '.
+ 'command has no effect if you do not specify any subscribers.'.
+ "\n\n".
+ 'Users who are CC\'d on the email itself are also automatically '.
+ 'subscribed if Phabricator knows which accounts are linked to their '.
+ 'email addresses.');
+ }
+
+ public function getCommandAliases() {
+ return array(
+ 'cc',
+ );
+ }
+
+ public function isCommandSupportedForObject(
+ PhabricatorApplicationTransactionInterface $object) {
+ return ($object instanceof PhabricatorSubscribableInterface);
+ }
+
+ public function buildTransactions(
+ PhabricatorUser $viewer,
+ PhabricatorApplicationTransactionInterface $object,
+ PhabricatorMetaMTAReceivedMail $mail,
+ $command,
+ array $argv) {
+
+ $subscriber_phids = id(new PhabricatorObjectListQuery())
+ ->setViewer($viewer)
+ ->setAllowedTypes(
+ array(
+ PhabricatorPeopleUserPHIDType::TYPECONST,
+ PhabricatorProjectProjectPHIDType::TYPECONST,
+ ))
+ ->setObjectList(implode(' ', $argv))
+ ->setAllowPartialResults(true)
+ ->execute();
+
+ $xactions = array();
+
+ $xactions[] = $object->getApplicationTransactionTemplate()
+ ->setTransactionType(PhabricatorTransactions::TYPE_SUBSCRIBERS)
+ ->setNewValue(
+ array(
+ '+' => array_fuse($subscriber_phids),
+ ));
+
+ return $xactions;
+ }
+
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Dec 20, 10:49 PM (16 h, 19 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6912179
Default Alt Text
D12247.diff (4 KB)
Attached To
Mode
D12247: Implement a "!subscribe" mail command
Attached
Detach File
Event Timeline
Log In to Comment