Path: blob/master/src/applications/console/controller/DarkConsoleController.php
13402 views
<?php12final class DarkConsoleController extends PhabricatorController {34protected $op;5protected $data;67public function shouldRequireLogin() {8return !PhabricatorEnv::getEnvConfig('darkconsole.always-on');9}1011public function shouldRequireEnabledUser() {12return !PhabricatorEnv::getEnvConfig('darkconsole.always-on');13}1415public function shouldAllowPartialSessions() {16return true;17}1819public function handleRequest(AphrontRequest $request) {20$viewer = $this->getViewer();21$response = id(new AphrontAjaxResponse())->setDisableConsole(true);2223if (!$viewer->isLoggedIn()) {24return $response;25}2627$visible = $request->getStr('visible');28if (phutil_nonempty_string($visible)) {29$this->writeDarkConsoleSetting(30PhabricatorDarkConsoleVisibleSetting::SETTINGKEY,31(int)$visible);32return $response;33}3435$tab = $request->getStr('tab');36if (phutil_nonempty_string($tab)) {37$this->writeDarkConsoleSetting(38PhabricatorDarkConsoleTabSetting::SETTINGKEY,39$tab);40return $response;41}4243return new Aphront404Response();44}4546private function writeDarkConsoleSetting($key, $value) {47$viewer = $this->getViewer();48$request = $this->getRequest();4950$preferences = PhabricatorUserPreferences::loadUserPreferences($viewer);5152$editor = id(new PhabricatorUserPreferencesEditor())53->setActor($viewer)54->setContentSourceFromRequest($request)55->setContinueOnNoEffect(true)56->setContinueOnMissingFields(true);5758$xactions = array();59$xactions[] = $preferences->newTransaction($key, $value);60$editor->applyTransactions($preferences, $xactions);6162// Reload the user to regenerate their preferences cache. If we don't63// do this, the "Services" tab gets misleadingly spammed up with cache64// fills that are only filling because you toggled the console or switched65// tabs. This makes it harder to see what's really going on, so just force66// a cache regeneration here.67id(new PhabricatorPeopleQuery())68->setViewer($viewer)69->withPHIDs(array($viewer->getPHID()))70->needUserSettings(true)71->execute();72}7374}757677