Page MenuHomePhabricator

D12249.diff
No OneTemporary

D12249.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
@@ -391,7 +391,6 @@
'DifferentialLintField' => 'applications/differential/customfield/DifferentialLintField.php',
'DifferentialLintStatus' => 'applications/differential/constants/DifferentialLintStatus.php',
'DifferentialLocalCommitsView' => 'applications/differential/view/DifferentialLocalCommitsView.php',
- 'DifferentialMail' => 'applications/differential/mail/DifferentialMail.php',
'DifferentialManiphestTasksField' => 'applications/differential/customfield/DifferentialManiphestTasksField.php',
'DifferentialModernHunk' => 'applications/differential/storage/DifferentialModernHunk.php',
'DifferentialParseCacheGarbageCollector' => 'applications/differential/garbagecollector/DifferentialParseCacheGarbageCollector.php',
@@ -976,7 +975,7 @@
'LegalpadDocumentSignatureSearchEngine' => 'applications/legalpad/query/LegalpadDocumentSignatureSearchEngine.php',
'LegalpadDocumentSignatureVerificationController' => 'applications/legalpad/controller/LegalpadDocumentSignatureVerificationController.php',
'LegalpadDocumentSignatureViewController' => 'applications/legalpad/controller/LegalpadDocumentSignatureViewController.php',
- 'LegalpadMockMailReceiver' => 'applications/legalpad/mail/LegalpadMockMailReceiver.php',
+ 'LegalpadMailReceiver' => 'applications/legalpad/mail/LegalpadMailReceiver.php',
'LegalpadObjectNeedsSignatureEdgeType' => 'applications/legalpad/edge/LegalpadObjectNeedsSignatureEdgeType.php',
'LegalpadReplyHandler' => 'applications/legalpad/mail/LegalpadReplyHandler.php',
'LegalpadSchemaSpec' => 'applications/legalpad/storage/LegalpadSchemaSpec.php',
@@ -3442,6 +3441,7 @@
'ConpherenceThread' => array(
'ConpherenceDAO',
'PhabricatorPolicyInterface',
+ 'PhabricatorApplicationTransactionInterface',
),
'ConpherenceThreadIndexer' => 'PhabricatorSearchDocumentIndexer',
'ConpherenceThreadListView' => 'AphrontView',
@@ -3577,7 +3577,6 @@
'DifferentialLegacyHunk' => 'DifferentialHunk',
'DifferentialLintField' => 'DifferentialCustomField',
'DifferentialLocalCommitsView' => 'AphrontView',
- 'DifferentialMail' => 'PhabricatorMail',
'DifferentialManiphestTasksField' => 'DifferentialCoreCustomField',
'DifferentialModernHunk' => 'DifferentialHunk',
'DifferentialParseCacheGarbageCollector' => 'PhabricatorGarbageCollector',
@@ -4229,7 +4228,7 @@
'LegalpadDocumentSignatureSearchEngine' => 'PhabricatorApplicationSearchEngine',
'LegalpadDocumentSignatureVerificationController' => 'LegalpadController',
'LegalpadDocumentSignatureViewController' => 'LegalpadController',
- 'LegalpadMockMailReceiver' => 'PhabricatorObjectMailReceiver',
+ 'LegalpadMailReceiver' => 'PhabricatorObjectMailReceiver',
'LegalpadObjectNeedsSignatureEdgeType' => 'PhabricatorEdgeType',
'LegalpadReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'LegalpadSchemaSpec' => 'PhabricatorConfigSchemaSpec',
diff --git a/src/applications/audit/editor/PhabricatorAuditCommentEditor.php b/src/applications/audit/editor/PhabricatorAuditCommentEditor.php
--- a/src/applications/audit/editor/PhabricatorAuditCommentEditor.php
+++ b/src/applications/audit/editor/PhabricatorAuditCommentEditor.php
@@ -38,12 +38,6 @@
return array_keys($phids);
}
- public static function newReplyHandlerForCommit($commit) {
- $reply_handler = new PhabricatorAuditReplyHandler();
- $reply_handler->setMailReceiver($commit);
- return $reply_handler;
- }
-
public static function getMailThreading(
PhabricatorRepository $repository,
PhabricatorRepositoryCommit $commit) {
diff --git a/src/applications/audit/mail/PhabricatorAuditMailReceiver.php b/src/applications/audit/mail/PhabricatorAuditMailReceiver.php
--- a/src/applications/audit/mail/PhabricatorAuditMailReceiver.php
+++ b/src/applications/audit/mail/PhabricatorAuditMailReceiver.php
@@ -21,17 +21,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = PhabricatorAuditCommentEditor::newReplyHandlerForCommit($object);
-
- $handler->setActor($sender);
- $handler->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
- $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new PhabricatorAuditReplyHandler();
}
}
diff --git a/src/applications/conpherence/application/PhabricatorConpherenceApplication.php b/src/applications/conpherence/application/PhabricatorConpherenceApplication.php
--- a/src/applications/conpherence/application/PhabricatorConpherenceApplication.php
+++ b/src/applications/conpherence/application/PhabricatorConpherenceApplication.php
@@ -65,4 +65,14 @@
);
}
+ public function getMailCommandObjects() {
+
+ // TODO: Conpherence threads don't currently support any commands directly,
+ // so the documentation page we end up generating is empty and funny
+ // looking. Add support here once we support "!add", "!leave", "!topic",
+ // or whatever else.
+
+ return array();
+ }
+
}
diff --git a/src/applications/conpherence/mail/ConpherenceThreadMailReceiver.php b/src/applications/conpherence/mail/ConpherenceThreadMailReceiver.php
--- a/src/applications/conpherence/mail/ConpherenceThreadMailReceiver.php
+++ b/src/applications/conpherence/mail/ConpherenceThreadMailReceiver.php
@@ -23,18 +23,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = id(new ConpherenceReplyHandler())
- ->setMailReceiver($object);
-
- $handler->setActor($sender);
- $handler->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
- $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new ConpherenceReplyHandler();
}
}
diff --git a/src/applications/conpherence/storage/ConpherenceThread.php b/src/applications/conpherence/storage/ConpherenceThread.php
--- a/src/applications/conpherence/storage/ConpherenceThread.php
+++ b/src/applications/conpherence/storage/ConpherenceThread.php
@@ -1,7 +1,9 @@
<?php
final class ConpherenceThread extends ConpherenceDAO
- implements PhabricatorPolicyInterface {
+ implements
+ PhabricatorPolicyInterface,
+ PhabricatorApplicationTransactionInterface {
protected $title;
protected $isRoom = 0;
@@ -290,4 +292,26 @@
return $icon;
}
+
+/* -( PhabricatorApplicationTransactionInterface )------------------------- */
+
+
+ public function getApplicationTransactionEditor() {
+ return new ConpherenceEditor();
+ }
+
+ public function getApplicationTransactionObject() {
+ return $this;
+ }
+
+ public function getApplicationTransactionTemplate() {
+ return new ConpherenceTransaction();
+ }
+
+ public function willRenderTimeline(
+ PhabricatorApplicationTransactionView $timeline,
+ AphrontRequest $request) {
+ return $timeline;
+ }
+
}
diff --git a/src/applications/differential/mail/DifferentialMail.php b/src/applications/differential/mail/DifferentialMail.php
deleted file mode 100644
--- a/src/applications/differential/mail/DifferentialMail.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-abstract class DifferentialMail extends PhabricatorMail {
-
- public static function newReplyHandlerForRevision(
- DifferentialRevision $revision) {
- $reply_handler = new DifferentialReplyHandler();
- $reply_handler->setMailReceiver($revision);
- return $reply_handler;
- }
-
-}
diff --git a/src/applications/differential/mail/DifferentialRevisionMailReceiver.php b/src/applications/differential/mail/DifferentialRevisionMailReceiver.php
--- a/src/applications/differential/mail/DifferentialRevisionMailReceiver.php
+++ b/src/applications/differential/mail/DifferentialRevisionMailReceiver.php
@@ -24,17 +24,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = DifferentialMail::newReplyHandlerForRevision($object);
-
- $handler->setActor($sender);
- $handler->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
- $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new DifferentialReplyHandler();
}
}
diff --git a/src/applications/diffusion/application/PhabricatorDiffusionApplication.php b/src/applications/diffusion/application/PhabricatorDiffusionApplication.php
--- a/src/applications/diffusion/application/PhabricatorDiffusionApplication.php
+++ b/src/applications/diffusion/application/PhabricatorDiffusionApplication.php
@@ -148,4 +148,17 @@
);
}
+ public function getMailCommandObjects() {
+ return array(
+ 'commit' => array(
+ 'name' => pht('Email Commands: Commits'),
+ 'header' => pht('Interacting with Commits'),
+ 'object' => new PhabricatorRepositoryCommit(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'commits and audits in Diffusion.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/files/application/PhabricatorFilesApplication.php b/src/applications/files/application/PhabricatorFilesApplication.php
--- a/src/applications/files/application/PhabricatorFilesApplication.php
+++ b/src/applications/files/application/PhabricatorFilesApplication.php
@@ -96,4 +96,17 @@
);
}
+ public function getMailCommandObjects() {
+ return array(
+ 'file' => array(
+ 'name' => pht('Email Commands: Files'),
+ 'header' => pht('Interacting with Files'),
+ 'object' => new PhabricatorFile(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'files.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/files/mail/FileMailReceiver.php b/src/applications/files/mail/FileMailReceiver.php
--- a/src/applications/files/mail/FileMailReceiver.php
+++ b/src/applications/files/mail/FileMailReceiver.php
@@ -20,18 +20,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = id(new FileReplyHandler())
- ->setMailReceiver($object);
-
- $handler->setActor($sender);
- $handler->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
- $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new FileReplyHandler();
}
}
diff --git a/src/applications/legalpad/application/PhabricatorLegalpadApplication.php b/src/applications/legalpad/application/PhabricatorLegalpadApplication.php
--- a/src/applications/legalpad/application/PhabricatorLegalpadApplication.php
+++ b/src/applications/legalpad/application/PhabricatorLegalpadApplication.php
@@ -80,4 +80,17 @@
);
}
+ public function getMailCommandObjects() {
+ return array(
+ 'document' => array(
+ 'name' => pht('Email Commands: Legalpad Documents'),
+ 'header' => pht('Interacting with Legalpad Documents'),
+ 'object' => new LegalpadDocument(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'documents in Legalpad.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/legalpad/mail/LegalpadMockMailReceiver.php b/src/applications/legalpad/mail/LegalpadMailReceiver.php
rename from src/applications/legalpad/mail/LegalpadMockMailReceiver.php
rename to src/applications/legalpad/mail/LegalpadMailReceiver.php
--- a/src/applications/legalpad/mail/LegalpadMockMailReceiver.php
+++ b/src/applications/legalpad/mail/LegalpadMailReceiver.php
@@ -1,6 +1,6 @@
<?php
-final class LegalpadMockMailReceiver extends PhabricatorObjectMailReceiver {
+final class LegalpadMailReceiver extends PhabricatorObjectMailReceiver {
public function isEnabled() {
$app_class = 'PhabricatorLegalpadApplication';
@@ -21,18 +21,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = id(new LegalpadReplyHandler())
- ->setMailReceiver($object)
- ->setActor($sender)
- ->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
-
- return $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new LegalpadReplyHandler();
}
}
diff --git a/src/applications/macro/application/PhabricatorMacroApplication.php b/src/applications/macro/application/PhabricatorMacroApplication.php
--- a/src/applications/macro/application/PhabricatorMacroApplication.php
+++ b/src/applications/macro/application/PhabricatorMacroApplication.php
@@ -57,4 +57,17 @@
);
}
+ public function getMailCommandObjects() {
+ return array(
+ 'macro' => array(
+ 'name' => pht('Email Commands: Macros'),
+ 'header' => pht('Interacting with Macros'),
+ 'object' => new PhabricatorFileImageMacro(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'image macros.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/macro/mail/PhabricatorMacroMailReceiver.php b/src/applications/macro/mail/PhabricatorMacroMailReceiver.php
--- a/src/applications/macro/mail/PhabricatorMacroMailReceiver.php
+++ b/src/applications/macro/mail/PhabricatorMacroMailReceiver.php
@@ -20,13 +20,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- // TODO: For now, we just drop this mail on the floor.
-
+ protected function getTransactionReplyHandler() {
+ return new PhabricatorMacroReplyHandler();
}
}
diff --git a/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php b/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php
--- a/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php
+++ b/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php
@@ -24,18 +24,8 @@
return head($results);
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = new ManiphestReplyHandler();
- $handler->setMailReceiver($object);
-
- $handler->setActor($sender);
- $handler->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
- $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new ManiphestReplyHandler();
}
}
diff --git a/src/applications/metamta/receiver/PhabricatorObjectMailReceiver.php b/src/applications/metamta/receiver/PhabricatorObjectMailReceiver.php
--- a/src/applications/metamta/receiver/PhabricatorObjectMailReceiver.php
+++ b/src/applications/metamta/receiver/PhabricatorObjectMailReceiver.php
@@ -39,10 +39,26 @@
return $this;
}
- abstract protected function processReceivedObjectMail(
+ protected function processReceivedObjectMail(
PhabricatorMetaMTAReceivedMail $mail,
PhabricatorLiskDAO $object,
- PhabricatorUser $sender);
+ PhabricatorUser $sender) {
+
+ $handler = $this->getTransactionReplyHandler();
+ if ($handler) {
+ return $handler
+ ->setMailReceiver($object)
+ ->setActor($sender)
+ ->setExcludeMailRecipientPHIDs($mail->loadExcludeMailRecipientPHIDs())
+ ->processEmail($mail);
+ }
+
+ throw new PhutilMethodNotImplementedException();
+ }
+
+ protected function getTransactionReplyHandler() {
+ return null;
+ }
public function loadMailReceiverObject($pattern, PhabricatorUser $viewer) {
return $this->loadObject($pattern, $viewer);
diff --git a/src/applications/paste/application/PhabricatorPasteApplication.php b/src/applications/paste/application/PhabricatorPasteApplication.php
--- a/src/applications/paste/application/PhabricatorPasteApplication.php
+++ b/src/applications/paste/application/PhabricatorPasteApplication.php
@@ -82,4 +82,17 @@
return $items;
}
+ public function getMailCommandObjects() {
+ return array(
+ 'paste' => array(
+ 'name' => pht('Email Commands: Pastes'),
+ 'header' => pht('Interacting with Pastes'),
+ 'object' => new PhabricatorPaste(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'pastes.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/paste/mail/PasteMailReceiver.php b/src/applications/paste/mail/PasteMailReceiver.php
--- a/src/applications/paste/mail/PasteMailReceiver.php
+++ b/src/applications/paste/mail/PasteMailReceiver.php
@@ -20,18 +20,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- $handler = id(new PasteReplyHandler())
- ->setMailReceiver($object);
-
- $handler->setActor($sender);
- $handler->setExcludeMailRecipientPHIDs(
- $mail->loadExcludeMailRecipientPHIDs());
- $handler->processEmail($mail);
+ protected function getTransactionReplyHandler() {
+ return new PasteReplyHandler();
}
}
diff --git a/src/applications/pholio/application/PhabricatorPholioApplication.php b/src/applications/pholio/application/PhabricatorPholioApplication.php
--- a/src/applications/pholio/application/PhabricatorPholioApplication.php
+++ b/src/applications/pholio/application/PhabricatorPholioApplication.php
@@ -77,4 +77,17 @@
);
}
+ public function getMailCommandObjects() {
+ return array(
+ 'mock' => array(
+ 'name' => pht('Email Commands: Mocks'),
+ 'header' => pht('Interacting with Pholio Mocks'),
+ 'object' => new PholioMock(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'mocks in Pholio.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/pholio/mail/PholioMockMailReceiver.php b/src/applications/pholio/mail/PholioMockMailReceiver.php
--- a/src/applications/pholio/mail/PholioMockMailReceiver.php
+++ b/src/applications/pholio/mail/PholioMockMailReceiver.php
@@ -20,12 +20,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- // TODO: For now, we just drop this mail on the floor.
+ protected function getTransactionReplyHandler() {
+ return new PholioReplyHandler();
}
}
diff --git a/src/applications/ponder/application/PhabricatorPonderApplication.php b/src/applications/ponder/application/PhabricatorPonderApplication.php
--- a/src/applications/ponder/application/PhabricatorPonderApplication.php
+++ b/src/applications/ponder/application/PhabricatorPonderApplication.php
@@ -66,4 +66,17 @@
);
}
+ public function getMailCommandObjects() {
+ return array(
+ 'question' => array(
+ 'name' => pht('Email Commands: Questions'),
+ 'header' => pht('Interacting with Ponder Questions'),
+ 'object' => new PonderQuestion(),
+ 'summary' => pht(
+ 'This page documents the commands you can use to interact with '.
+ 'questions in Ponder.'),
+ ),
+ );
+ }
+
}
diff --git a/src/applications/ponder/mail/PonderQuestionMailReceiver.php b/src/applications/ponder/mail/PonderQuestionMailReceiver.php
--- a/src/applications/ponder/mail/PonderQuestionMailReceiver.php
+++ b/src/applications/ponder/mail/PonderQuestionMailReceiver.php
@@ -20,13 +20,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- // TODO: For now, we just drop this mail on the floor.
-
+ protected function getTransactionReplyHandler() {
+ return new PonderQuestionReplyHandler();
}
}
diff --git a/src/applications/releeph/application/PhabricatorReleephApplication.php b/src/applications/releeph/application/PhabricatorReleephApplication.php
--- a/src/applications/releeph/application/PhabricatorReleephApplication.php
+++ b/src/applications/releeph/application/PhabricatorReleephApplication.php
@@ -78,4 +78,11 @@
);
}
+ public function getMailCommandObjects() {
+ // TODO: Pull requests don't implement any interfaces which give them
+ // meaningful commands, so don't expose ReleephRequest here for now.
+ // Once we add relevant commands, return it here.
+ return array();
+ }
+
}
diff --git a/src/applications/releeph/mail/ReleephRequestMailReceiver.php b/src/applications/releeph/mail/ReleephRequestMailReceiver.php
--- a/src/applications/releeph/mail/ReleephRequestMailReceiver.php
+++ b/src/applications/releeph/mail/ReleephRequestMailReceiver.php
@@ -20,13 +20,8 @@
->executeOne();
}
- protected function processReceivedObjectMail(
- PhabricatorMetaMTAReceivedMail $mail,
- PhabricatorLiskDAO $object,
- PhabricatorUser $sender) {
-
- // TODO: For now, we just drop this mail on the floor.
-
+ protected function getTransactionReplyHandler() {
+ return new ReleephRequestReplyHandler();
}
}

File Metadata

Mime Type
text/plain
Expires
Wed, Oct 30, 1:50 AM (2 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6714897
Default Alt Text
D12249.diff (21 KB)

Event Timeline