Correct Aphlict websocket URI construction after PHP8 compatibility changes
[phabricator.git] / src / applications / settings / controller / PhabricatorSettingsListController.php
blob5e38a534f5722ed9873c4f9fb9cdf4be92cbe545
1 <?php
3 final class PhabricatorSettingsListController
4 extends PhabricatorController {
6 public function handleRequest(AphrontRequest $request) {
7 $viewer = $this->getViewer();
9 // If the viewer isn't an administrator, just redirect them to their own
10 // settings panel.
11 if (!$viewer->getIsAdmin()) {
12 $settings_uri = '/user/'.$viewer->getUsername().'/';
13 $settings_uri = $this->getApplicationURI($settings_uri);
14 return id(new AphrontRedirectResponse())
15 ->setURI($settings_uri);
18 return id(new PhabricatorUserPreferencesSearchEngine())
19 ->setController($this)
20 ->buildResponse();
23 protected function buildApplicationCrumbs() {
24 $crumbs = parent::buildApplicationCrumbs();
26 $viewer = $this->getViewer();
27 if ($viewer->getIsAdmin()) {
28 $builtin_global = PhabricatorUserPreferences::BUILTIN_GLOBAL_DEFAULT;
29 $global_settings = id(new PhabricatorUserPreferencesQuery())
30 ->setViewer($viewer)
31 ->withBuiltinKeys(
32 array(
33 $builtin_global,
35 ->execute();
36 if (!$global_settings) {
37 $action = id(new PHUIListItemView())
38 ->setName(pht('Create Global Defaults'))
39 ->setHref('/settings/builtin/'.$builtin_global.'/')
40 ->setIcon('fa-plus');
41 $crumbs->addAction($action);
45 return $crumbs;