public function isAuthenticated($request) { if (Security::isAuthenticated()) { return true; } // Token kann im Header oder in einem Parameter stehen $token = 'XYZ'; if (isset($_SERVER['HTTP_X_TOKEN'])) { $token = $_SERVER['HTTP_X_TOKEN']; } elseif (isset($request->token)) { $token = $request->token; } $user = User::loadByToken($token); if ($user !== null) { Security::loginUser($user); return true; } else { return false; } }
/** * Wechselt die Identität des angemeldeten Benutzers * ACHTUNG! Besondere Sorgfalt bei der Berechtigungsprüfung von Nöten! */ public function doAnmeldenAls() { // TODO: Berechtigung prüfen // TODO: DTV! $darfWechsel = Application::isAdmin() || Security::hatRolle('DTV-GS'); if (!$darfWechsel) { FlashMessage::danger('Für diese Aktion haben Sie keine Berechtigung'); Application::getCurrentResponse()->redirectToFrontpage(); } $this->user = User::loadByBenutzername($this->request->benutzer); if ($this->user != null) { Security::loginUser($this->user); FlashMessage::success('Sie sind jetzt angemeldet als ' . $this->user); } else { FlashMessage::danger('Benutzername nicht bekannt'); } Application::getCurrentResponse()->redirectToFrontpage(); }