mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-18 17:58:37 +01:00
Subclass most ReplyHandlers from TransactionReplyHandler
Summary: Ref T7199. Half of these aren't even reachable, but make some progress toward reducing the amount of nonsense and garbage in mail handling. Test Plan: Tested all reachable handlers with `bin/mail receive-test`. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T7199 Differential Revision: https://secure.phabricator.com/D12237
This commit is contained in:
parent
161f936871
commit
7c5f71b691
12 changed files with 57 additions and 252 deletions
|
@ -3943,7 +3943,7 @@ phutil_register_library_map(array(
|
||||||
'FileInfoConduitAPIMethod' => 'FileConduitAPIMethod',
|
'FileInfoConduitAPIMethod' => 'FileConduitAPIMethod',
|
||||||
'FileMailReceiver' => 'PhabricatorObjectMailReceiver',
|
'FileMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||||
'FileQueryChunksConduitAPIMethod' => 'FileConduitAPIMethod',
|
'FileQueryChunksConduitAPIMethod' => 'FileConduitAPIMethod',
|
||||||
'FileReplyHandler' => 'PhabricatorMailReplyHandler',
|
'FileReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'FileUploadChunkConduitAPIMethod' => 'FileConduitAPIMethod',
|
'FileUploadChunkConduitAPIMethod' => 'FileConduitAPIMethod',
|
||||||
'FileUploadConduitAPIMethod' => 'FileConduitAPIMethod',
|
'FileUploadConduitAPIMethod' => 'FileConduitAPIMethod',
|
||||||
'FileUploadHashConduitAPIMethod' => 'FileConduitAPIMethod',
|
'FileUploadHashConduitAPIMethod' => 'FileConduitAPIMethod',
|
||||||
|
@ -3990,7 +3990,7 @@ phutil_register_library_map(array(
|
||||||
'FundInitiativePHIDType' => 'PhabricatorPHIDType',
|
'FundInitiativePHIDType' => 'PhabricatorPHIDType',
|
||||||
'FundInitiativeQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'FundInitiativeQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
'FundInitiativeRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
'FundInitiativeRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
||||||
'FundInitiativeReplyHandler' => 'PhabricatorMailReplyHandler',
|
'FundInitiativeReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'FundInitiativeSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'FundInitiativeSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'FundInitiativeTransaction' => 'PhabricatorApplicationTransaction',
|
'FundInitiativeTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
'FundInitiativeTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
'FundInitiativeTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||||
|
@ -4217,7 +4217,7 @@ phutil_register_library_map(array(
|
||||||
'LegalpadDocumentSignatureViewController' => 'LegalpadController',
|
'LegalpadDocumentSignatureViewController' => 'LegalpadController',
|
||||||
'LegalpadMockMailReceiver' => 'PhabricatorObjectMailReceiver',
|
'LegalpadMockMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||||
'LegalpadObjectNeedsSignatureEdgeType' => 'PhabricatorEdgeType',
|
'LegalpadObjectNeedsSignatureEdgeType' => 'PhabricatorEdgeType',
|
||||||
'LegalpadReplyHandler' => 'PhabricatorMailReplyHandler',
|
'LegalpadReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'LegalpadSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
'LegalpadSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||||
'LegalpadSignatureNeededByObjectEdgeType' => 'PhabricatorEdgeType',
|
'LegalpadSignatureNeededByObjectEdgeType' => 'PhabricatorEdgeType',
|
||||||
'LegalpadTransaction' => 'PhabricatorApplicationTransaction',
|
'LegalpadTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
|
@ -4613,7 +4613,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorAuditManagementDeleteWorkflow' => 'PhabricatorAuditManagementWorkflow',
|
'PhabricatorAuditManagementDeleteWorkflow' => 'PhabricatorAuditManagementWorkflow',
|
||||||
'PhabricatorAuditManagementWorkflow' => 'PhabricatorManagementWorkflow',
|
'PhabricatorAuditManagementWorkflow' => 'PhabricatorManagementWorkflow',
|
||||||
'PhabricatorAuditPreviewController' => 'PhabricatorAuditController',
|
'PhabricatorAuditPreviewController' => 'PhabricatorAuditController',
|
||||||
'PhabricatorAuditReplyHandler' => 'PhabricatorMailReplyHandler',
|
'PhabricatorAuditReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'PhabricatorAuditTransaction' => 'PhabricatorApplicationTransaction',
|
'PhabricatorAuditTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
'PhabricatorAuditTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
'PhabricatorAuditTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
||||||
'PhabricatorAuditTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
'PhabricatorAuditTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||||
|
@ -5278,7 +5278,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorMacroMemeController' => 'PhabricatorMacroController',
|
'PhabricatorMacroMemeController' => 'PhabricatorMacroController',
|
||||||
'PhabricatorMacroMemeDialogController' => 'PhabricatorMacroController',
|
'PhabricatorMacroMemeDialogController' => 'PhabricatorMacroController',
|
||||||
'PhabricatorMacroQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'PhabricatorMacroQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
'PhabricatorMacroReplyHandler' => 'PhabricatorMailReplyHandler',
|
'PhabricatorMacroReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'PhabricatorMacroSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'PhabricatorMacroSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'PhabricatorMacroTransaction' => 'PhabricatorApplicationTransaction',
|
'PhabricatorMacroTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
'PhabricatorMacroTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
'PhabricatorMacroTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
||||||
|
@ -6193,7 +6193,7 @@ phutil_register_library_map(array(
|
||||||
'PholioMockThumbGridView' => 'AphrontView',
|
'PholioMockThumbGridView' => 'AphrontView',
|
||||||
'PholioMockViewController' => 'PholioController',
|
'PholioMockViewController' => 'PholioController',
|
||||||
'PholioRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
'PholioRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
||||||
'PholioReplyHandler' => 'PhabricatorMailReplyHandler',
|
'PholioReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'PholioSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
'PholioSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||||
'PholioSearchIndexer' => 'PhabricatorSearchDocumentIndexer',
|
'PholioSearchIndexer' => 'PhabricatorSearchDocumentIndexer',
|
||||||
'PholioTransaction' => 'PhabricatorApplicationTransaction',
|
'PholioTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
|
@ -6229,7 +6229,7 @@ phutil_register_library_map(array(
|
||||||
'PhortuneCartListController' => 'PhortuneController',
|
'PhortuneCartListController' => 'PhortuneController',
|
||||||
'PhortuneCartPHIDType' => 'PhabricatorPHIDType',
|
'PhortuneCartPHIDType' => 'PhabricatorPHIDType',
|
||||||
'PhortuneCartQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'PhortuneCartQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
'PhortuneCartReplyHandler' => 'PhabricatorMailReplyHandler',
|
'PhortuneCartReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'PhortuneCartSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'PhortuneCartSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'PhortuneCartTransaction' => 'PhabricatorApplicationTransaction',
|
'PhortuneCartTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
'PhortuneCartTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
'PhortuneCartTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||||
|
@ -6425,7 +6425,7 @@ phutil_register_library_map(array(
|
||||||
'PhrictionMoveController' => 'PhrictionController',
|
'PhrictionMoveController' => 'PhrictionController',
|
||||||
'PhrictionNewController' => 'PhrictionController',
|
'PhrictionNewController' => 'PhrictionController',
|
||||||
'PhrictionRemarkupRule' => 'PhutilRemarkupRule',
|
'PhrictionRemarkupRule' => 'PhutilRemarkupRule',
|
||||||
'PhrictionReplyHandler' => 'PhabricatorMailReplyHandler',
|
'PhrictionReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'PhrictionSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
'PhrictionSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||||
'PhrictionSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'PhrictionSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'PhrictionSearchIndexer' => 'PhabricatorSearchDocumentIndexer',
|
'PhrictionSearchIndexer' => 'PhabricatorSearchDocumentIndexer',
|
||||||
|
@ -6481,7 +6481,7 @@ phutil_register_library_map(array(
|
||||||
'PonderQuestionMailReceiver' => 'PhabricatorObjectMailReceiver',
|
'PonderQuestionMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||||
'PonderQuestionPHIDType' => 'PhabricatorPHIDType',
|
'PonderQuestionPHIDType' => 'PhabricatorPHIDType',
|
||||||
'PonderQuestionQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'PonderQuestionQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
'PonderQuestionReplyHandler' => 'PhabricatorMailReplyHandler',
|
'PonderQuestionReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'PonderQuestionSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'PonderQuestionSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'PonderQuestionStatus' => 'PonderConstants',
|
'PonderQuestionStatus' => 'PonderConstants',
|
||||||
'PonderQuestionStatusController' => 'PonderController',
|
'PonderQuestionStatusController' => 'PonderController',
|
||||||
|
@ -6594,7 +6594,7 @@ phutil_register_library_map(array(
|
||||||
'ReleephRequestMailReceiver' => 'PhabricatorObjectMailReceiver',
|
'ReleephRequestMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||||
'ReleephRequestPHIDType' => 'PhabricatorPHIDType',
|
'ReleephRequestPHIDType' => 'PhabricatorPHIDType',
|
||||||
'ReleephRequestQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'ReleephRequestQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
'ReleephRequestReplyHandler' => 'PhabricatorMailReplyHandler',
|
'ReleephRequestReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||||
'ReleephRequestSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'ReleephRequestSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'ReleephRequestTransaction' => 'PhabricatorApplicationTransaction',
|
'ReleephRequestTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
'ReleephRequestTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
'ReleephRequestTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class PhabricatorAuditReplyHandler extends PhabricatorMailReplyHandler {
|
final class PhabricatorAuditReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PhabricatorRepositoryCommit)) {
|
if (!($mail_receiver instanceof PhabricatorRepositoryCommit)) {
|
||||||
|
@ -8,43 +9,10 @@ final class PhabricatorAuditReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
// TODO: This conflicts with Countdown and will probably need to be
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'C');
|
// changed eventually.
|
||||||
}
|
return 'C';
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('C');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
$commit = $this->getMailReceiver();
|
|
||||||
$actor = $this->getActor();
|
|
||||||
$message = $mail->getCleanTextBody();
|
|
||||||
|
|
||||||
$content_source = PhabricatorContentSource::newForSource(
|
|
||||||
PhabricatorContentSource::SOURCE_EMAIL,
|
|
||||||
array(
|
|
||||||
'id' => $mail->getID(),
|
|
||||||
));
|
|
||||||
|
|
||||||
// TODO: Support !raise, !accept, etc.
|
|
||||||
|
|
||||||
$xactions = array();
|
|
||||||
|
|
||||||
$xactions[] = id(new PhabricatorAuditTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
|
|
||||||
->attachComment(
|
|
||||||
id(new PhabricatorAuditTransactionComment())
|
|
||||||
->setCommitPHID($commit->getPHID())
|
|
||||||
->setContent($message));
|
|
||||||
|
|
||||||
$editor = id(new PhabricatorAuditEditor())
|
|
||||||
->setActor($actor)
|
|
||||||
->setContentSource($content_source)
|
|
||||||
->setExcludeMailRecipientPHIDs($this->getExcludeMailRecipientPHIDs())
|
|
||||||
->setContinueOnMissingFields(true)
|
|
||||||
->applyTransactions($commit, $xactions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class FileReplyHandler extends PhabricatorMailReplyHandler {
|
final class FileReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PhabricatorFile)) {
|
if (!($mail_receiver instanceof PhabricatorFile)) {
|
||||||
|
@ -8,31 +9,14 @@ final class FileReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'F';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'F');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
protected function processMailCommands(array $commands) {
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('F');
|
$actor = $this->getActor();
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
$actor = $this->getActor();
|
|
||||||
$file = $this->getMailReceiver();
|
|
||||||
|
|
||||||
$body_data = $mail->parseBody();
|
|
||||||
$body = $body_data['body'];
|
|
||||||
$body = $this->enhanceBodyWithAttachments($body, $mail->getAttachments());
|
|
||||||
|
|
||||||
$content_source = PhabricatorContentSource::newForSource(
|
|
||||||
PhabricatorContentSource::SOURCE_EMAIL,
|
|
||||||
array(
|
|
||||||
'id' => $mail->getID(),
|
|
||||||
));
|
|
||||||
|
|
||||||
$xactions = array();
|
$xactions = array();
|
||||||
$commands = $body_data['commands'];
|
|
||||||
foreach ($commands as $command) {
|
foreach ($commands as $command) {
|
||||||
switch (head($command)) {
|
switch (head($command)) {
|
||||||
case 'unsubscribe':
|
case 'unsubscribe':
|
||||||
|
@ -44,19 +28,7 @@ final class FileReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$xactions[] = id(new PhabricatorFileTransaction())
|
return $xactions;
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
|
|
||||||
->attachComment(
|
|
||||||
id(new PhabricatorFileTransactionComment())
|
|
||||||
->setContent($body));
|
|
||||||
|
|
||||||
$editor = id(new PhabricatorFileEditor())
|
|
||||||
->setActor($actor)
|
|
||||||
->setContentSource($content_source)
|
|
||||||
->setContinueOnNoEffect(true)
|
|
||||||
->setIsPreview(false);
|
|
||||||
|
|
||||||
$editor->applyTransactions($file, $xactions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class FundInitiativeReplyHandler extends PhabricatorMailReplyHandler {
|
final class FundInitiativeReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof FundInitiative)) {
|
if (!($mail_receiver instanceof FundInitiative)) {
|
||||||
|
@ -8,18 +9,8 @@ final class FundInitiativeReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'I';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'I');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('I');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
// TODO: Implement.
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class LegalpadReplyHandler extends PhabricatorMailReplyHandler {
|
final class LegalpadReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof LegalpadDocument)) {
|
if (!($mail_receiver instanceof LegalpadDocument)) {
|
||||||
|
@ -8,59 +9,8 @@ final class LegalpadReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'L';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'L');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('L');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
$actor = $this->getActor();
|
|
||||||
$document = $this->getMailReceiver();
|
|
||||||
|
|
||||||
$body_data = $mail->parseBody();
|
|
||||||
$body = $body_data['body'];
|
|
||||||
$body = $this->enhanceBodyWithAttachments($body, $mail->getAttachments());
|
|
||||||
|
|
||||||
$content_source = PhabricatorContentSource::newForSource(
|
|
||||||
PhabricatorContentSource::SOURCE_EMAIL,
|
|
||||||
array(
|
|
||||||
'id' => $mail->getID(),
|
|
||||||
));
|
|
||||||
|
|
||||||
$xactions = array();
|
|
||||||
|
|
||||||
$commands = $body_data['commands'];
|
|
||||||
foreach ($commands as $command) {
|
|
||||||
switch (head($command)) {
|
|
||||||
case 'unsubscribe':
|
|
||||||
$xaction = id(new LegalpadTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_SUBSCRIBERS)
|
|
||||||
->setNewValue(array('-' => array($actor->getPHID())));
|
|
||||||
$xactions[] = $xaction;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$xactions[] = id(new LegalpadTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
|
|
||||||
->attachComment(
|
|
||||||
id(new LegalpadTransactionComment())
|
|
||||||
->setDocumentID($document->getID())
|
|
||||||
->setLineNumber(0)
|
|
||||||
->setLineLength(0)
|
|
||||||
->setContent($body));
|
|
||||||
|
|
||||||
$editor = id(new LegalpadDocumentEditor())
|
|
||||||
->setActor($actor)
|
|
||||||
->setContentSource($content_source)
|
|
||||||
->setContinueOnNoEffect(true)
|
|
||||||
->setIsPreview(false);
|
|
||||||
|
|
||||||
$editor->applyTransactions($document, $xactions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@ final class LegalpadTransactionComment
|
||||||
extends PhabricatorApplicationTransactionComment {
|
extends PhabricatorApplicationTransactionComment {
|
||||||
|
|
||||||
protected $documentID;
|
protected $documentID;
|
||||||
protected $lineNumber;
|
protected $lineNumber = 0;
|
||||||
protected $lineLength;
|
protected $lineLength = 0;
|
||||||
protected $fixedState;
|
protected $fixedState;
|
||||||
protected $hasReplies = 0;
|
protected $hasReplies = 0;
|
||||||
protected $replyToCommentPHID;
|
protected $replyToCommentPHID;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class PhabricatorMacroReplyHandler extends PhabricatorMailReplyHandler {
|
final class PhabricatorMacroReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PhabricatorFileImageMacro)) {
|
if (!($mail_receiver instanceof PhabricatorFileImageMacro)) {
|
||||||
|
@ -8,18 +9,8 @@ final class PhabricatorMacroReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'MCRO';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'MCRO');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('MCRO');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
// TODO: Implement this.
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class PholioReplyHandler extends PhabricatorMailReplyHandler {
|
final class PholioReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PholioMock)) {
|
if (!($mail_receiver instanceof PholioMock)) {
|
||||||
|
@ -8,18 +9,8 @@ final class PholioReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'M';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'M');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('M');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
// TODO: Implement this.
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class PhortuneCartReplyHandler extends PhabricatorMailReplyHandler {
|
final class PhortuneCartReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PhortuneCart)) {
|
if (!($mail_receiver instanceof PhortuneCart)) {
|
||||||
|
@ -8,18 +9,8 @@ final class PhortuneCartReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'CART';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'CART');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('CART');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
// TODO: Implement.
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class PhrictionReplyHandler extends PhabricatorMailReplyHandler {
|
final class PhrictionReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PhrictionDocument)) {
|
if (!($mail_receiver instanceof PhrictionDocument)) {
|
||||||
|
@ -8,21 +9,8 @@ final class PhrictionReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return PhrictionDocumentPHIDType::TYPECONST;
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress(
|
|
||||||
$handle,
|
|
||||||
PhrictionDocumentPHIDType::TYPECONST);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress(
|
|
||||||
PhrictionDocumentPHIDType::TYPECONST);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
// TODO: Implement.
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class PonderQuestionReplyHandler extends PhabricatorMailReplyHandler {
|
final class PonderQuestionReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof PonderQuestion)) {
|
if (!($mail_receiver instanceof PonderQuestion)) {
|
||||||
|
@ -8,16 +9,8 @@ final class PonderQuestionReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'Q';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'Q');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('Q');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
// ignore this entirely for now
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class ReleephRequestReplyHandler extends PhabricatorMailReplyHandler {
|
final class ReleephRequestReplyHandler
|
||||||
|
extends PhabricatorApplicationTransactionReplyHandler {
|
||||||
|
|
||||||
public function validateMailReceiver($mail_receiver) {
|
public function validateMailReceiver($mail_receiver) {
|
||||||
if (!($mail_receiver instanceof ReleephRequest)) {
|
if (!($mail_receiver instanceof ReleephRequest)) {
|
||||||
|
@ -8,39 +9,8 @@ final class ReleephRequestReplyHandler extends PhabricatorMailReplyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPrivateReplyHandlerEmailAddress(
|
public function getObjectPrefix() {
|
||||||
PhabricatorObjectHandle $handle) {
|
return 'Y';
|
||||||
return $this->getDefaultPrivateReplyHandlerEmailAddress($handle, 'Y');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPublicReplyHandlerEmailAddress() {
|
|
||||||
return $this->getDefaultPublicReplyHandlerEmailAddress('Y');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) {
|
|
||||||
$rq = $this->getMailReceiver();
|
|
||||||
$user = $this->getActor();
|
|
||||||
|
|
||||||
$content_source = PhabricatorContentSource::newForSource(
|
|
||||||
PhabricatorContentSource::SOURCE_EMAIL,
|
|
||||||
array(
|
|
||||||
'id' => $mail->getID(),
|
|
||||||
));
|
|
||||||
|
|
||||||
$body = $mail->getCleanTextBody();
|
|
||||||
|
|
||||||
$xactions = array();
|
|
||||||
$xactions[] = id(new ReleephRequestTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
|
|
||||||
->attachComment($body);
|
|
||||||
|
|
||||||
$editor = id(new ReleephRequestTransactionalEditor())
|
|
||||||
->setActor($user)
|
|
||||||
->setContentSource($content_source)
|
|
||||||
->setContinueOnNoEffect(true)
|
|
||||||
->setParentMessageID($mail->getMessageID());
|
|
||||||
|
|
||||||
$editor->applyTransactions($rq, $xactions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue