1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-13 10:22:42 +01:00
phorge-phorge/src/applications/maniphest
epriestley 341079c3cf Move some received mail responsibility to applications
Summary:
Ref T1205. Continuation of D5915.

Currently, `PhabricatorMetaMTAReceivedMail` has //all// the logic for routing mail. In particular:

  - New mail receivers in applications must edit it.
  - Mail receivers don't drop out when applications are uninstalled.

Applications have some logic in subclasses of `PhabricatorMailReplyHandler`, but this class is a bit of a mess. It is also heavily based on the assumption that mail receivers are objects (like revisions), but this is not true in at least two cases today (creating new tasks with `bugs@`, creating a new Conpherence thread) and likely other cases in the future (e.g., revision-by-mail).

Move this logic into a new `PhabricatorMailReceiver` classtree. This is similar to `PhabricatorMailReplyHandler` but a bit cleaner and more general. I plan to heavily reduce the responsibilities of `PhabricatorMailReplyHandler` or possibly eliminate it entirely.

For now, the new classtree doesn't do much of interest. The only behavioral change this diff causes is that Phabricator will now reject mail to an application when that application is uninstalled.

I also moved all the `ReplyHandler` classes into `mail/` directories in their respective applications.

Test Plan: Unit tests, used receive test to route mail to various objects.

Reviewers: btrahan

Reviewed By: btrahan

CC: Afaque_Hussain, edward, aran

Maniphest Tasks: T1205

Differential Revision: https://secure.phabricator.com/D5922
2013-05-14 10:57:41 -07:00
..
application Add Subscribe option to maniphest 2013-05-03 15:47:39 -07:00
auxiliaryfield Add a custom "Header" Maniphest field type 2013-04-07 15:58:17 -07:00
conduit Add 'dependsOn' array to ConduitApi_maniphest_Method::buildTaskInfoDictionaries() return 2013-05-10 10:18:09 -07:00
config Delete maniphest.enabled and phriction.enabled 2013-04-08 20:47:59 -07:00
constants getConfigEnv fails fast when key is not found and no default value is given. 2013-01-19 12:11:28 -08:00
controller Update form styles, implement in many places 2013-05-07 14:07:06 -07:00
editor Add Subscribe option to maniphest 2013-05-03 15:47:39 -07:00
event Hovercard tweaks 2013-04-06 21:16:55 -07:00
export Implemented support for different export formats. 2013-04-11 11:27:36 -07:00
extensions Implement Maniphest auxiliary field 'default' key 2013-03-07 17:23:30 -08:00
lipsum Fixed Project Generation 2013-05-03 08:13:58 -07:00
mail Move some received mail responsibility to applications 2013-05-14 10:57:41 -07:00
remarkup Require a viewer for Remarkup rendering 2013-03-04 12:33:05 -08:00
search Require a viewer to load handles 2013-02-28 17:15:09 -08:00
storage Streamline tag rendering for Differential and Maniphest 2013-04-03 08:28:18 -07:00
view Add a "byline" element to ObjectItemListView 2013-04-06 11:38:43 -07:00
ManiphestTaskQuery.php Add "Any User Projects" to Maniphest Custom Query 2013-04-04 10:58:17 -07:00