1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-10 00:42:41 +01:00

Don't claim logged out users are automatically subscribed to un-owned objects

Summary: The PHID for logged out users is NULL, but so is the PHID for un-owned objects.

Test Plan: Browse a non-owned object (i.e. unassigned task) while logged out, notice "Automatically subscribed" before this commit.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Differential Revision: https://secure.phabricator.com/D12788
This commit is contained in:
Alex Monk 2015-05-10 10:53:14 -07:00 committed by epriestley
parent e074be0d3f
commit a03a488ba6

View file

@ -21,6 +21,7 @@ final class PhabricatorSubscriptionsUIEventListener
private function handleActionEvent($event) {
$user = $event->getUser();
$user_phid = $user->getPHID();
$object = $event->getValue('object');
if (!$object || !$object->getPHID()) {
@ -33,12 +34,12 @@ final class PhabricatorSubscriptionsUIEventListener
return;
}
if (!$object->shouldAllowSubscription($user->getPHID())) {
if (!$object->shouldAllowSubscription($user_phid)) {
// This object doesn't allow the viewer to subscribe.
return;
}
if ($object->isAutomaticallySubscribed($user->getPHID())) {
if ($user_phid && $object->isAutomaticallySubscribed($user_phid)) {
$sub_action = id(new PhabricatorActionView())
->setWorkflow(true)
->setDisabled(true)
@ -50,15 +51,14 @@ final class PhabricatorSubscriptionsUIEventListener
$subscribed = false;
if ($user->isLoggedIn()) {
$src_phid = $object->getPHID();
$dst_phid = $user->getPHID();
$edge_type = PhabricatorObjectHasSubscriberEdgeType::EDGECONST;
$edges = id(new PhabricatorEdgeQuery())
->withSourcePHIDs(array($src_phid))
->withEdgeTypes(array($edge_type))
->withDestinationPHIDs(array($user->getPHID()))
->withDestinationPHIDs(array($user_phid))
->execute();
$subscribed = isset($edges[$src_phid][$edge_type][$dst_phid]);
$subscribed = isset($edges[$src_phid][$edge_type][$user_phid]);
}
if ($subscribed) {