@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorSubscriptionsUnsubscribeEmailCommand
4 extends MetaMTAEmailTransactionCommand {
5
6 public function getCommand() {
7 return 'unsubscribe';
8 }
9
10 public function getCommandSummary() {
11 return pht('Remove yourself as a subscriber.');
12 }
13
14 public function isCommandSupportedForObject(
15 PhabricatorApplicationTransactionInterface $object) {
16 return ($object instanceof PhabricatorSubscribableInterface);
17 }
18
19 public function buildTransactions(
20 PhabricatorUser $viewer,
21 PhabricatorApplicationTransactionInterface $object,
22 PhabricatorMetaMTAReceivedMail $mail,
23 $command,
24 array $argv) {
25 $xactions = array();
26
27 $xactions[] = $object->getApplicationTransactionTemplate()
28 ->setTransactionType(PhabricatorTransactions::TYPE_SUBSCRIBERS)
29 ->setNewValue(
30 array(
31 '-' => array($viewer->getPHID()),
32 ));
33
34 return $xactions;
35 }
36
37}