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'));