From b71ce90b9cc13140cf0a924808612c032040ec96 Mon Sep 17 00:00:00 2001 From: epriestley Date: Thu, 24 Sep 2015 09:56:35 -0700 Subject: [PATCH] Straighten out Drydock policies for Resources Summary: Ref T9252. Resources always have a corresponding blueprint, and it makes sense to use the same policies for both. Test Plan: Viewed resources in web UI. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9252 Differential Revision: https://secure.phabricator.com/D14154 --- .../controller/DrydockResourceViewController.php | 6 ++++-- .../drydock/storage/DrydockResource.php | 13 +++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/applications/drydock/controller/DrydockResourceViewController.php b/src/applications/drydock/controller/DrydockResourceViewController.php index 659f7b4fc1..be1db24a0c 100644 --- a/src/applications/drydock/controller/DrydockResourceViewController.php +++ b/src/applications/drydock/controller/DrydockResourceViewController.php @@ -17,6 +17,8 @@ final class DrydockResourceViewController extends DrydockResourceController { $title = pht('Resource %s %s', $resource->getID(), $resource->getName()); $header = id(new PHUIHeaderView()) + ->setUser($viewer) + ->setPolicyObject($resource) ->setHeader($title); $actions = $this->buildActionListView($resource); @@ -117,8 +119,8 @@ final class DrydockResourceViewController extends DrydockResourceController { PhabricatorActionListView $actions) { $viewer = $this->getViewer(); - $view = new PHUIPropertyListView(); - $view->setActionList($actions); + $view = id(new PHUIPropertyListView()) + ->setActionList($actions); $status = $resource->getStatus(); $status = DrydockResourceStatus::getNameForStatus($status); diff --git a/src/applications/drydock/storage/DrydockResource.php b/src/applications/drydock/storage/DrydockResource.php index a2962ee293..f2be89a6f2 100644 --- a/src/applications/drydock/storage/DrydockResource.php +++ b/src/applications/drydock/storage/DrydockResource.php @@ -223,19 +223,16 @@ final class DrydockResource extends DrydockDAO } public function getPolicy($capability) { - switch ($capability) { - case PhabricatorPolicyCapability::CAN_VIEW: - case PhabricatorPolicyCapability::CAN_EDIT: - // TODO: Implement reasonable policies. - return PhabricatorPolicies::getMostOpenPolicy(); - } + return $this->getBlueprint()->getPolicy($capability); } public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { - return false; + return $this->getBlueprint()->hasAutomaticCapability( + $capability, + $viewer); } public function describeAutomaticCapability($capability) { - return null; + return pht('Resources inherit the policies of their blueprints.'); } }