Page MenuHomePhabricator

Make Projects a PhabricatorSubscribableInterface, but with restricted defaults
ClosedPublic

Authored by epriestley on Feb 7 2014, 7:28 PM.
Tags
None
Referenced Files
F18734606: D8165.id.diff
Tue, Sep 30, 10:57 PM
F18648967: D8165.diff
Sep 20 2025, 6:21 PM
F18627941: D8165.id18515.diff
Sep 16 2025, 5:09 AM
F18622944: D8165.id18515.diff
Sep 15 2025, 1:37 PM
F18587825: D8165.diff
Sep 11 2025, 10:30 PM
F18198116: D8165.id.diff
Aug 17 2025, 10:43 PM
F18194837: D8165.id18515.diff
Aug 17 2025, 12:36 PM
F18193668: D8165.id18475.diff
Aug 17 2025, 6:19 AM
Subscribers

Details

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.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped