From ad1da6ec5ed325a742a9f01f91f221f0052a79a2 Mon Sep 17 00:00:00 2001 From: Bob Trahan Date: Mon, 5 Jan 2015 15:39:44 -0800 Subject: [PATCH] Projects - display "members" link in disabled style if user can't edit project Summary: Fixes T6862. Test Plan: viewed a project list and saw disabled-style "Members" links as appropos Reviewers: epriestley, chad Reviewed By: chad Subscribers: Korvin, epriestley Maniphest Tasks: T6862 Differential Revision: https://secure.phabricator.com/D11229 --- .../query/PhabricatorProjectSearchEngine.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/applications/project/query/PhabricatorProjectSearchEngine.php b/src/applications/project/query/PhabricatorProjectSearchEngine.php index d06d05a921..8a9a228d9b 100644 --- a/src/applications/project/query/PhabricatorProjectSearchEngine.php +++ b/src/applications/project/query/PhabricatorProjectSearchEngine.php @@ -212,7 +212,12 @@ final class PhabricatorProjectSearchEngine $list = new PHUIObjectItemListView(); $list->setUser($viewer); - foreach ($projects as $project) { + $can_edit_projects = id(new PhabricatorPolicyFilter()) + ->setViewer($viewer) + ->requireCapabilities(array(PhabricatorPolicyCapability::CAN_EDIT)) + ->apply($projects); + + foreach ($projects as $key => $project) { $id = $project->getID(); $workboards_uri = $this->getApplicationURI("board/{$id}/"); $members_uri = $this->getApplicationURI("members/{$id}/"); @@ -223,10 +228,18 @@ final class PhabricatorProjectSearchEngine ), pht('Workboard')); - $members_url = phutil_tag( + $members_class = null; + $members_sigil = null; + if (!isset($can_edit_projects[$key])) { + $members_class = 'disabled'; + $members_sigil = 'workflow'; + } + $members_url = javelin_tag( 'a', array( 'href' => $members_uri, + 'class' => $members_class, + 'sigil' => $members_sigil, ), pht('Members'));