Index: src/__phutil_library_map__.php =================================================================== --- src/__phutil_library_map__.php +++ src/__phutil_library_map__.php @@ -1050,6 +1050,7 @@ 'PasteEmbedView' => 'applications/paste/view/PasteEmbedView.php', 'PasteMockMailReceiver' => 'applications/paste/mail/PasteMockMailReceiver.php', 'PasteReplyHandler' => 'applications/paste/mail/PasteReplyHandler.php', + 'PeopleCapabilityBrowseUserDirectory' => 'applications/people/capability/PeopleCapabilityBrowseUserDirectory.php', 'Phabricator404Controller' => 'applications/base/controller/Phabricator404Controller.php', 'PhabricatorAWSConfigOptions' => 'applications/config/option/PhabricatorAWSConfigOptions.php', 'PhabricatorAccessControlTestCase' => 'applications/base/controller/__tests__/PhabricatorAccessControlTestCase.php', @@ -3654,6 +3655,7 @@ 'PasteEmbedView' => 'AphrontView', 'PasteMockMailReceiver' => 'PhabricatorObjectMailReceiver', 'PasteReplyHandler' => 'PhabricatorMailReplyHandler', + 'PeopleCapabilityBrowseUserDirectory' => 'PhabricatorPolicyCapability', 'Phabricator404Controller' => 'PhabricatorController', 'PhabricatorAWSConfigOptions' => 'PhabricatorApplicationConfigOptions', 'PhabricatorAccessControlTestCase' => 'PhabricatorTestCase', Index: src/applications/people/application/PhabricatorApplicationPeople.php =================================================================== --- src/applications/people/application/PhabricatorApplicationPeople.php +++ src/applications/people/application/PhabricatorApplicationPeople.php @@ -62,6 +62,14 @@ ); } + + protected function getCustomCapabilities() { + return array( + PeopleCapabilityBrowseUserDirectory::CAPABILITY => array( + ), + ); + } + public function loadStatus(PhabricatorUser $user) { if (!$user->getIsAdmin()) { return array(); Index: src/applications/people/capability/PeopleCapabilityBrowseUserDirectory.php =================================================================== --- /dev/null +++ src/applications/people/capability/PeopleCapabilityBrowseUserDirectory.php @@ -0,0 +1,25 @@ +getRequest(); + $viewer = $request->getUser(); + + $this->requireApplicationCapability( + PeopleCapabilityBrowseUserDirectory::CAPABILITY); + $controller = id(new PhabricatorApplicationSearchController($request)) ->setQueryKey($this->key) ->setSearchEngine(new PhabricatorPeopleSearchEngine())