diff --git a/scripts/ssh/ssh-exec.php b/scripts/ssh/ssh-exec.php index 5d8ede2913..56b13ff142 100755 --- a/scripts/ssh/ssh-exec.php +++ b/scripts/ssh/ssh-exec.php @@ -103,6 +103,9 @@ try { 'Invalid username ("%s"). There is no user with this username.', $user_name)); } + + id(new PhabricatorAuthSessionEngine()) + ->willServeRequestForUser($user); } else if (strlen($device_name)) { if (!$remote_address) { throw new Exception( diff --git a/src/applications/auth/engine/PhabricatorAuthSessionEngine.php b/src/applications/auth/engine/PhabricatorAuthSessionEngine.php index a7f5513056..e7d5c94146 100644 --- a/src/applications/auth/engine/PhabricatorAuthSessionEngine.php +++ b/src/applications/auth/engine/PhabricatorAuthSessionEngine.php @@ -164,7 +164,6 @@ final class PhabricatorAuthSessionEngine extends Phobject { $cache_raw = $this->filterRawCacheData($user, $types_map, $cache_raw); $user->attachRawCacheData($cache_raw); - $user->setAllowInlineCacheGeneration(true); switch ($session_type) { case PhabricatorAuthSession::TYPE_WEB: @@ -832,4 +831,12 @@ final class PhabricatorAuthSessionEngine extends Phobject { return $cache_raw; } + public function willServeRequestForUser(PhabricatorUser $user) { + // We allow the login user to generate any missing cache data inline. + $user->setAllowInlineCacheGeneration(true); + + // Switch to the user's translation. + PhabricatorEnv::setLocaleCode($user->getTranslation()); + } + } diff --git a/src/applications/base/controller/PhabricatorController.php b/src/applications/base/controller/PhabricatorController.php index 83e223d195..08966f29a5 100644 --- a/src/applications/base/controller/PhabricatorController.php +++ b/src/applications/base/controller/PhabricatorController.php @@ -104,7 +104,8 @@ abstract class PhabricatorController extends AphrontController { $request->setUser($user); } - PhabricatorEnv::setLocaleCode($user->getTranslation()); + id(new PhabricatorAuthSessionEngine()) + ->willServeRequestForUser($user); if (PhabricatorEnv::getEnvConfig('darkconsole.enabled')) { $dark_console = PhabricatorDarkConsoleSetting::SETTINGKEY; diff --git a/src/applications/conduit/controller/PhabricatorConduitAPIController.php b/src/applications/conduit/controller/PhabricatorConduitAPIController.php index 690f6cc1da..b9e8b1b15e 100644 --- a/src/applications/conduit/controller/PhabricatorConduitAPIController.php +++ b/src/applications/conduit/controller/PhabricatorConduitAPIController.php @@ -487,6 +487,10 @@ final class PhabricatorConduitAPIController } $request->setUser($user); + + id(new PhabricatorAuthSessionEngine()) + ->willServeRequestForUser($user); + return null; }