2012-10-05 22:18:05 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
interface PhabricatorSubscribableInterface {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return true to indicate that the given PHID is automatically subscribed
|
|
|
|
* to the object (for example, they are the author or in some other way
|
|
|
|
* irrevocably a subscriber). This will, e.g., cause the UI to render
|
|
|
|
* "Automatically Subscribed" instead of "Subscribe".
|
|
|
|
*
|
|
|
|
* @param PHID PHID (presumably a user) to test for automatic subscription.
|
|
|
|
* @return bool True if the object/user is automatically subscribed.
|
|
|
|
*/
|
|
|
|
public function isAutomaticallySubscribed($phid);
|
|
|
|
|
|
|
|
}
|
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 23:29:17 +01:00
|
|
|
|
|
|
|
// TEMPLATE IMPLEMENTATION /////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/* -( PhabricatorSubscribableInterface )----------------------------------- */
|
|
|
|
/*
|
|
|
|
|
|
|
|
public function isAutomaticallySubscribed($phid) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|