From 7b17223904214024018f626715926fa729941d3c Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 4 Mar 2015 18:43:06 +0100 Subject: Fourth Commit --- modules/edit.inc.php | 41 +++++++++++++++++++++++++++ modules/login.inc.php | 7 +++++ modules/main.inc.php | 74 ++++++++++++++++++++++++++++++++++-------------- modules/register.inc.php | 2 +- 4 files changed, 102 insertions(+), 22 deletions(-) create mode 100644 modules/edit.inc.php (limited to 'modules') diff --git a/modules/edit.inc.php b/modules/edit.inc.php new file mode 100644 index 0000000..e3770ce --- /dev/null +++ b/modules/edit.inc.php @@ -0,0 +1,41 @@ +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); } } diff --git a/modules/register.inc.php b/modules/register.inc.php index ca5f4bf..3dd3b89 100644 --- a/modules/register.inc.php +++ b/modules/register.inc.php @@ -11,7 +11,7 @@ class Page_Register extends Page Util::redirect('?do=Main'); } if (!User::isShibbolethAuth()) - Util::redirect('/secure-all/?do=Main'); + Util::redirect(CONFIG_PREFIX . 'shib/?do=Main'); if (Request::post('agb') === 'on') { // Put stuff in DB User::deploy(Request::post('share') !== 'on'); -- cgit v1.2.3-55-g7522