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/files
epriestley 21de2b1a0c Make Projects a PhabricatorSubscribableInterface, but with restricted defaults
Summary:
Ref T4379. I want project subscriptions to work like this (yell if this seems whacky, since it makes subscriptions mean somethign a little different for projects than they do for other objects):

  - You can only subscribe to a project if you're a project member.
  - When you're added as a member, you're added as a subscriber.
  - When you're removed as a member, you're removed as a subscriber.
  - While you're a member, you can optionally unsubscribe.

From a UI perspective:

  - We don't show the subscriber list, since it's going to be some uninteresting subset of the member list.
  - We don't show CC transactions in history, since they're an uninteresting near-approximation of the membership transactions.
  - You only see the subscription controls if you're a member.

To do this, I've augmented `PhabricatorSubscribableInterface` with two new methods. It would be nice if we were on PHP 5.4+ and could just use traits for this, but we should get data about version usage before we think about this. For now, copy/paste the default implementations into every implementing class.

Then, I implemented the interface in `PhabricatorProject` but with alternate defaults.

Test Plan:
  - Used the normal interaction on existing objects.
  - This has no actual effect on projects, verified no subscription stuff mysteriously appeared.
  - Hit the new error case by fiddling with the UI.

Reviewers: btrahan

Reviewed By: btrahan

CC: chad, aran

Maniphest Tasks: T4379

Differential Revision: https://secure.phabricator.com/D8165
2014-02-10 14:29:17 -08:00
..
application Remove quick create buttons from application launcher 2014-01-29 17:23:50 -08:00
conduit Make most file reads policy-aware 2013-09-30 09:38:13 -07:00
config Support audio files with HTML5 <audio /> 2013-09-27 10:51:25 -07:00
controller Move PhabricatorTagView to PHUITagView 2014-01-14 14:09:52 -08:00
editor Add support for more granular sending of email in application transactions 2013-09-13 15:08:17 -07:00
engine Muck around with Diviner method documentation display 2013-09-08 09:15:22 -07:00
engineselector Delete license headers from files 2012-11-05 11:16:51 -08:00
exception Delete license headers from files 2012-11-05 11:16:51 -08:00
garbagecollector Complete modularization of the GC daemon 2014-01-15 10:02:31 -08:00
lipsum Made Changes to Mock and File generation after pushing some methods to superclass 2013-05-06 13:32:01 -07:00
mail Maniphest - add support for !assign command 2013-10-14 12:29:41 -07:00
management Extend all "ManagementWorkflow" classes from a base class 2013-12-27 13:15:40 -08:00
phid Lock policy queries to their applications 2013-10-21 17:20:27 -07:00
query Provide phragment.getstate and phragment.getpatch Conduit methods 2013-12-11 11:19:23 +11:00
remarkup Add explicit width/height controls for embedded images in Remarkup 2013-11-19 17:33:55 -08:00
storage Make Projects a PhabricatorSubscribableInterface, but with restricted defaults 2014-02-10 14:29:17 -08:00
view Fix file upload redirect URI 2013-05-31 14:35:25 -07:00
PhabricatorImageTransformer.php Fix meme generation for palette PNGs 2013-11-18 15:16:58 -08:00