mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-19 12:00:55 +01:00
Remove "username@phabricator.mycompany.com" creating a Conpherence
Summary: Ref T10121. This doesn't work at all at HEAD, and even when it did it was mostly just confusing to installs with unexpected setups where Phabricator is receiving mail at `@mycompany.com` and this is colliding with real addresses. It might make sense to restore it some day after the next Conphernece update, but just strip it out for now. Since it doesn't work anyway, I'm pretty confident no one is using it. Test Plan: - Before patch: send mail to `dog@local.phacility.com`, got a policy error from Conpherece. - After patch: sent mail to `dog@local.phacility.com`, got a correct "no routable recipients" error. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10121 Differential Revision: https://secure.phabricator.com/D14997
This commit is contained in:
parent
516ba5e6c5
commit
8e1b2f9861
2 changed files with 0 additions and 69 deletions
|
@ -257,7 +257,6 @@ phutil_register_library_map(array(
|
|||
'ConpherenceConstants' => 'applications/conpherence/constants/ConpherenceConstants.php',
|
||||
'ConpherenceController' => 'applications/conpherence/controller/ConpherenceController.php',
|
||||
'ConpherenceCreateThreadConduitAPIMethod' => 'applications/conpherence/conduit/ConpherenceCreateThreadConduitAPIMethod.php',
|
||||
'ConpherenceCreateThreadMailReceiver' => 'applications/conpherence/mail/ConpherenceCreateThreadMailReceiver.php',
|
||||
'ConpherenceDAO' => 'applications/conpherence/storage/ConpherenceDAO.php',
|
||||
'ConpherenceDurableColumnView' => 'applications/conpherence/view/ConpherenceDurableColumnView.php',
|
||||
'ConpherenceEditor' => 'applications/conpherence/editor/ConpherenceEditor.php',
|
||||
|
@ -4193,7 +4192,6 @@ phutil_register_library_map(array(
|
|||
'ConpherenceConstants' => 'Phobject',
|
||||
'ConpherenceController' => 'PhabricatorController',
|
||||
'ConpherenceCreateThreadConduitAPIMethod' => 'ConpherenceConduitAPIMethod',
|
||||
'ConpherenceCreateThreadMailReceiver' => 'PhabricatorMailReceiver',
|
||||
'ConpherenceDAO' => 'PhabricatorLiskDAO',
|
||||
'ConpherenceDurableColumnView' => 'AphrontTagView',
|
||||
'ConpherenceEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
<?php
|
||||
|
||||
final class ConpherenceCreateThreadMailReceiver
|
||||
extends PhabricatorMailReceiver {
|
||||
|
||||
public function isEnabled() {
|
||||
$app_class = 'PhabricatorConpherenceApplication';
|
||||
return PhabricatorApplication::isClassInstalled($app_class);
|
||||
}
|
||||
|
||||
public function canAcceptMail(PhabricatorMetaMTAReceivedMail $mail) {
|
||||
$usernames = $this->getMailUsernames($mail);
|
||||
if (!$usernames) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$users = $this->loadMailUsers($mail);
|
||||
if (count($users) != count($usernames)) {
|
||||
// At least some of the addresses are not users, so don't accept this as
|
||||
// a new Conpherence thread.
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function getMailUsernames(PhabricatorMetaMTAReceivedMail $mail) {
|
||||
$usernames = array();
|
||||
foreach ($mail->getToAddresses() as $to_address) {
|
||||
$address = self::stripMailboxPrefix($to_address);
|
||||
$usernames[] = id(new PhutilEmailAddress($address))->getLocalPart();
|
||||
}
|
||||
|
||||
return array_unique($usernames);
|
||||
}
|
||||
|
||||
private function loadMailUsers(PhabricatorMetaMTAReceivedMail $mail) {
|
||||
$usernames = $this->getMailUsernames($mail);
|
||||
if (!$usernames) {
|
||||
return array();
|
||||
}
|
||||
|
||||
return id(new PhabricatorUser())->loadAllWhere(
|
||||
'username in (%Ls)',
|
||||
$usernames);
|
||||
}
|
||||
|
||||
protected function processReceivedMail(
|
||||
PhabricatorMetaMTAReceivedMail $mail,
|
||||
PhabricatorUser $sender) {
|
||||
|
||||
$users = $this->loadMailUsers($mail);
|
||||
$phids = mpull($users, 'getPHID');
|
||||
|
||||
$conpherence = id(new ConpherenceReplyHandler())
|
||||
->setMailReceiver(ConpherenceThread::initializeNewRoom($sender))
|
||||
->setMailAddedParticipantPHIDs($phids)
|
||||
->setActor($sender)
|
||||
->setExcludeMailRecipientPHIDs($mail->loadAllRecipientPHIDs())
|
||||
->processEmail($mail);
|
||||
|
||||
if ($conpherence) {
|
||||
$mail->setRelatedPHID($conpherence->getPHID());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue