public function processRequest() { $request = $this->getRequest(); $this->pages = array('account' => 'Account', 'profile' => 'Profile', 'email' => 'Email', 'password' => 'Password', 'preferences' => 'Preferences', 'conduit' => 'Conduit Certificate'); if (!PhabricatorEnv::getEnvConfig('account.editable') || !PhabricatorEnv::getEnvConfig('auth.password-auth-enabled')) { unset($this->pages['password']); } if (PhabricatorUserSSHKeysSettingsPanelController::isEnabled()) { $this->pages['sshkeys'] = 'SSH Public Keys'; } $oauth_providers = PhabricatorOAuthProvider::getAllProviders(); foreach ($oauth_providers as $provider) { if (!$provider->isProviderEnabled()) { continue; } $key = $provider->getProviderKey(); $name = $provider->getProviderName(); $this->pages[$key] = $name . ' Account'; } if (empty($this->pages[$this->page])) { $this->page = key($this->pages); } switch ($this->page) { case 'account': $delegate = new PhabricatorUserAccountSettingsPanelController($request); break; case 'profile': $delegate = new PhabricatorUserProfileSettingsPanelController($request); break; case 'email': $delegate = new PhabricatorUserEmailSettingsPanelController($request); break; case 'password': $delegate = new PhabricatorUserPasswordSettingsPanelController($request); break; case 'conduit': $delegate = new PhabricatorUserConduitSettingsPanelController($request); break; case 'sshkeys': $delegate = new PhabricatorUserSSHKeysSettingsPanelController($request); break; case 'preferences': $delegate = new PhabricatorUserPreferenceSettingsPanelController($request); break; default: if (empty($this->pages[$this->page])) { return new Aphront404Response(); } $delegate = new PhabricatorUserOAuthSettingsPanelController($request); $delegate->setOAuthProvider($oauth_providers[$this->page]); } $response = $this->delegateToController($delegate); if ($response instanceof AphrontView) { $sidenav = $this->renderSideNav(); $sidenav->appendChild($response); return $this->buildStandardPageResponse($sidenav, array('title' => 'Account Settings')); } else { return $response; } }
public function processRequest() { $request = $this->getRequest(); $oauth_providers = PhabricatorOAuthProvider::getAllProviders(); $sidenav = $this->renderSideNav($oauth_providers); $this->page = $sidenav->selectFilter($this->page, 'account'); switch ($this->page) { case 'account': $delegate = new PhabricatorUserAccountSettingsPanelController($request); break; case 'profile': $delegate = new PhabricatorUserProfileSettingsPanelController($request); break; case 'email': $delegate = new PhabricatorUserEmailSettingsPanelController($request); break; case 'emailpref': $delegate = new PhabricatorUserEmailPreferenceSettingsPanelController($request); break; case 'password': $delegate = new PhabricatorUserPasswordSettingsPanelController($request); break; case 'conduit': $delegate = new PhabricatorUserConduitSettingsPanelController($request); break; case 'sshkeys': $delegate = new PhabricatorUserSSHKeysSettingsPanelController($request); break; case 'preferences': $delegate = new PhabricatorUserPreferenceSettingsPanelController($request); break; case 'search': $delegate = new PhabricatorUserSearchSettingsPanelController($request); break; case 'ldap': $delegate = new PhabricatorUserLDAPSettingsPanelController($request); break; default: $delegate = new PhabricatorUserOAuthSettingsPanelController($request); $delegate->setOAuthProvider($oauth_providers[$this->page]); break; } $response = $this->delegateToController($delegate); if ($response instanceof AphrontView) { $sidenav->appendChild($response); return $this->buildStandardPageResponse($sidenav, array('title' => 'Account Settings')); } else { return $response; } }