renderLocalAccount(); return; } if (!User::isShibbolethAuth()) { // Should not be possible Message::addError('Sie sind nicht korrekt authentifiziert. Bitte melden Sie sich erneut an.'); Session::delete(); return; } // --- Below here we know the user via shibboleth if (User::isInDatabase()) { // User is also in DB, so he signed up for the service $this->renderShibbolethRegistered(); return; } // User is not in DB, so he might want so sign up for the service - see if conditions are met if (User::getOrganization() !== false) { // Organization is known, show signup form $this->renderShibbolethUnregistered(); return; } // Nothing we can do here, show error message :-( if (User::getRemoteOrganizationId() !== false) { // Organization is not known, see if we at least have an idea Message::addWarning('Ihre Hochschule/Einrichtung {{0}} ist leider nicht bekannt. Bitte kontaktieren Sie den Support.', User::getRemoteOrganizationId()); } else { // No idea where the user is coming from Message::addError('Ihr IdP sendet leider keine Informationen über Ihre Hochschul-/Einrichtungszugehörigkeit'); } } private function renderShibbolethRegistered() { Render::addTemplate('main/logged-in'); } private function renderShibbolethUnregistered() { $data = User::getData(); $data['organization'] = User::getOrganizationName(); Render::addTemplate('main/deploy', $data); } private function renderLocalAccount() { $data = User::getData(); $data['organization'] = User::getOrganizationName(); Render::addTemplate('main/logged-in-testacc', $data); } }