/** * Gibt zurück ob der aktuell angemeldete Benutzer ein Administrator ist. * Als Kennzeichen wird die Rolle Rolle::ROLLE_ADMIN verwendet. * * @return boolean */ public static function isAdmin() { if (self::getInstance()->isAdministrator === null) { self::getInstance()->isAdministrator = Security::hatRolle(Rolle::ROLLE_ADMIN); } return self::getInstance()->isAdministrator; }
/** * 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(); }