public function runSwitchUser(framework\Request $request) { if (!$this->getUser()->canAccessConfigurationPage(framework\Settings::CONFIGURATION_SECTION_USERS) && !$request->hasCookie('tbg3_original_username')) { return $this->forward403(); } $response = $this->getResponse(); if ($request['user_id']) { $user = new entities\User($request['user_id']); $response->setCookie('tbg3_original_username', $request->getCookie('tbg3_username')); $response->setCookie('tbg3_original_password', $request->getCookie('tbg3_password')); framework\Context::getResponse()->setCookie('tbg3_password', $user->getPassword()); framework\Context::getResponse()->setCookie('tbg3_username', $user->getUsername()); } else { $response->setCookie('tbg3_username', $request->getCookie('tbg3_original_username')); $response->setCookie('tbg3_password', $request->getCookie('tbg3_original_password')); framework\Context::getResponse()->deleteCookie('tbg3_original_password'); framework\Context::getResponse()->deleteCookie('tbg3_original_username'); } $this->forward($this->getRouting()->generate('home')); }