Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php b/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php
index 4519a1c902..3723a755be 100644
--- a/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php
+++ b/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php
@@ -1,140 +1,131 @@
<?php
final class PhabricatorSubscriptionsEditController
extends PhabricatorController {
- private $phid;
- private $action;
-
- public function willProcessRequest(array $data) {
- $this->phid = idx($data, 'phid');
- $this->action = idx($data, 'action');
- }
-
- public function processRequest() {
- $request = $this->getRequest();
+ public function handleRequest(AphrontRequest $request) {
+ $viewer = $request->getViewer();
+ $phid = $request->getURIData('phid');
+ $action = $request->getURIData('action');
if (!$request->isFormPost()) {
return new Aphront400Response();
}
- switch ($this->action) {
+ switch ($action) {
case 'add':
$is_add = true;
break;
case 'delete':
$is_add = false;
break;
default:
return new Aphront400Response();
}
- $user = $request->getUser();
- $phid = $this->phid;
-
$handle = id(new PhabricatorHandleQuery())
- ->setViewer($user)
+ ->setViewer($viewer)
->withPHIDs(array($phid))
->executeOne();
if (phid_get_type($phid) == PhabricatorProjectProjectPHIDType::TYPECONST) {
// TODO: This is a big hack, but a weak argument for adding some kind
// of "load for role" feature to ObjectQuery, and also not a really great
// argument for adding some kind of "load extra stuff" feature to
// SubscriberInterface. Do this for now and wait for the best way forward
// to become more clear?
$object = id(new PhabricatorProjectQuery())
- ->setViewer($user)
+ ->setViewer($viewer)
->withPHIDs(array($phid))
->needWatchers(true)
->executeOne();
} else {
$object = id(new PhabricatorObjectQuery())
- ->setViewer($user)
+ ->setViewer($viewer)
->withPHIDs(array($phid))
->executeOne();
}
if (!($object instanceof PhabricatorSubscribableInterface)) {
return $this->buildErrorResponse(
pht('Bad Object'),
pht('This object is not subscribable.'),
$handle->getURI());
}
- if ($object->isAutomaticallySubscribed($user->getPHID())) {
+ if ($object->isAutomaticallySubscribed($viewer->getPHID())) {
return $this->buildErrorResponse(
pht('Automatically Subscribed'),
pht('You are automatically subscribed to this object.'),
$handle->getURI());
}
- if (!$object->shouldAllowSubscription($user->getPHID())) {
+ if (!$object->shouldAllowSubscription($viewer->getPHID())) {
return $this->buildErrorResponse(
pht('You Can Not Subscribe'),
pht('You can not subscribe to this object.'),
$handle->getURI());
}
if ($object instanceof PhabricatorApplicationTransactionInterface) {
if ($is_add) {
$xaction_value = array(
- '+' => array($user->getPHID()),
+ '+' => array($viewer->getPHID()),
);
} else {
$xaction_value = array(
- '-' => array($user->getPHID()),
+ '-' => array($viewer->getPHID()),
);
}
$xaction = id($object->getApplicationTransactionTemplate())
->setTransactionType(PhabricatorTransactions::TYPE_SUBSCRIBERS)
->setNewValue($xaction_value);
$editor = id($object->getApplicationTransactionEditor())
- ->setActor($user)
+ ->setActor($viewer)
->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true)
->setContentSourceFromRequest($request);
$editor->applyTransactions(
$object->getApplicationTransactionObject(),
array($xaction));
} else {
// TODO: Eventually, get rid of this once everything implements
// PhabriatorApplicationTransactionInterface.
$editor = id(new PhabricatorSubscriptionsEditor())
- ->setActor($user)
+ ->setActor($viewer)
->setObject($object);
if ($is_add) {
- $editor->subscribeExplicit(array($user->getPHID()), $explicit = true);
+ $editor->subscribeExplicit(array($viewer->getPHID()), $explicit = true);
} else {
- $editor->unsubscribe(array($user->getPHID()));
+ $editor->unsubscribe(array($viewer->getPHID()));
}
$editor->save();
}
// TODO: We should just render the "Unsubscribe" action and swap it out
// in the document for Ajax requests.
return id(new AphrontReloadResponse())->setURI($handle->getURI());
}
private function buildErrorResponse($title, $message, $uri) {
$request = $this->getRequest();
- $user = $request->getUser();
+ $viewer = $request->getUser();
$dialog = id(new AphrontDialogView())
- ->setUser($user)
+ ->setUser($viewer)
->setTitle($title)
->appendChild($message)
->addCancelButton($uri);
return id(new AphrontDialogResponse())->setDialog($dialog);
}
}
diff --git a/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php b/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php
index 2497a7ed24..0b4e962e64 100644
--- a/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php
+++ b/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php
@@ -1,45 +1,46 @@
<?php
final class PhabricatorSubscriptionsListController
extends PhabricatorController {
public function shouldAllowPublic() {
return true;
}
public function handleRequest(AphrontRequest $request) {
- $viewer = $request->getUser();
+ $viewer = $request->getViewer();
+
$object = id(new PhabricatorObjectQuery())
->setViewer($viewer)
->withPHIDs(array($request->getURIData('phid')))
->executeOne();
if (!$object) {
return new Aphront404Response();
}
if (!($object instanceof PhabricatorSubscribableInterface)) {
return new Aphront404Response();
}
$phid = $object->getPHID();
$handle_phids = PhabricatorSubscribersQuery::loadSubscribersForPHID($phid);
$handle_phids[] = $phid;
$handles = id(new PhabricatorHandleQuery())
->setViewer($viewer)
->withPHIDs($handle_phids)
->execute();
$object_handle = $handles[$phid];
$dialog = id(new SubscriptionListDialogBuilder())
->setViewer($viewer)
->setTitle(pht('Subscribers'))
->setObjectPHID($phid)
->setHandles($handles)
->buildDialog();
return id(new AphrontDialogResponse())->setDialog($dialog);
}
}
diff --git a/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php b/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php
index 70760f3e1e..777a834830 100644
--- a/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php
+++ b/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php
@@ -1,81 +1,72 @@
<?php
final class PhabricatorSubscriptionsTransactionController
extends PhabricatorController {
- private $phid;
- private $changeType;
-
- public function willProcessRequest(array $data) {
- $this->phid = idx($data, 'phid');
- $this->changeType = idx($data, 'type');
- }
-
- public function processRequest() {
- $request = $this->getRequest();
-
- $viewer = $request->getUser();
- $xaction_phid = $this->phid;
+ public function handleRequest(AphrontRequest $request) {
+ $viewer = $request->getViewer();
+ $phid = $request->getURIData('phid');
+ $type = $request->getURIData('type');
$xaction = id(new PhabricatorObjectQuery())
- ->withPHIDs(array($xaction_phid))
+ ->withPHIDs(array($phid))
->setViewer($viewer)
->executeOne();
if (!$xaction) {
return new Aphront404Response();
}
$old = $xaction->getOldValue();
$new = $xaction->getNewValue();
- switch ($this->changeType) {
+ switch ($type) {
case 'add':
$subscriber_phids = array_diff($new, $old);
break;
case 'rem':
$subscriber_phids = array_diff($old, $new);
break;
default:
return id(new Aphront404Response());
}
$object_phid = $xaction->getObjectPHID();
$author_phid = $xaction->getAuthorPHID();
$handle_phids = $subscriber_phids;
$handle_phids[] = $object_phid;
$handle_phids[] = $author_phid;
$handles = id(new PhabricatorHandleQuery())
->setViewer($viewer)
->withPHIDs($handle_phids)
->execute();
$author_handle = $handles[$author_phid];
if (!in_array($author_phid, $subscriber_phids)) {
unset($handles[$author_phid]);
}
- switch ($this->changeType) {
+ switch ($type) {
case 'add':
$title = pht(
'All %d subscribers added by %s',
count($subscriber_phids),
$author_handle->renderLink());
break;
case 'rem':
$title = pht(
'All %d subscribers removed by %s',
count($subscriber_phids),
$author_handle->renderLink());
break;
}
$dialog = id(new SubscriptionListDialogBuilder())
->setViewer($viewer)
->setTitle($title)
->setObjectPHID($object_phid)
->setHandles($handles)
->buildDialog();
return id(new AphrontDialogResponse())->setDialog($dialog);
}
}

File Metadata

Mime Type
text/x-diff
Expires
Wed, Apr 30, 11:12 AM (1 d, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
108685
Default Alt Text
(9 KB)

Event Timeline