diff options
author | Simon Rettberg | 2023-10-06 18:26:22 +0200 |
---|---|---|
committer | Simon Rettberg | 2023-10-06 18:26:22 +0200 |
commit | e5be4e97ffc41ca3b0386651a626b781a3637a85 (patch) | |
tree | 20152d35607de272edae44725efba13f21da85a1 /modules | |
parent | api: Hard-code bogus name/mail for read only (STUDENT) login (diff) | |
download | bwlp-webadmin-e5be4e97ffc41ca3b0386651a626b781a3637a85.tar.gz bwlp-webadmin-e5be4e97ffc41ca3b0386651a626b781a3637a85.tar.xz bwlp-webadmin-e5be4e97ffc41ca3b0386651a626b781a3637a85.zip |
Update for PHP 8.2
Diffstat (limited to 'modules')
-rw-r--r-- | modules/adduser.inc.php | 2 | ||||
-rw-r--r-- | modules/main.inc.php | 4 | ||||
-rw-r--r-- | modules/suitelogin.inc.php | 31 |
3 files changed, 34 insertions, 3 deletions
diff --git a/modules/adduser.inc.php b/modules/adduser.inc.php index 20bfe47..207858b 100644 --- a/modules/adduser.inc.php +++ b/modules/adduser.inc.php @@ -28,7 +28,7 @@ class Page_AddUser extends Page Message::addError('Ein Feld wurde nicht ausgefüllt.'); } else { // Validate login - if (preg_match('/^[a-z0-9_\.\-]+@([a-z0-9_\.\-]+)$/i', $login, $out)) { + if (preg_match('/^[a-z0-9_.\-]+@([a-z0-9_.\-]+)$/i', $login, $out)) { // Complete login $suffix = $out[1]; } else if (strpos($login, '@') !== false) { diff --git a/modules/main.inc.php b/modules/main.inc.php index 9a94374..3b605a3 100644 --- a/modules/main.inc.php +++ b/modules/main.inc.php @@ -40,13 +40,13 @@ class Page_Main extends Page 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) { + if (User::getOrganization() !== null) { // Organization is known, show signup form $this->renderShibbolethUnregistered(); return; } // Nothing we can do here, show error message :-( - if (User::getRemoteOrganizationId() !== false) { + if (User::getRemoteOrganizationId() !== null) { // 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 { diff --git a/modules/suitelogin.inc.php b/modules/suitelogin.inc.php new file mode 100644 index 0000000..df3b8f0 --- /dev/null +++ b/modules/suitelogin.inc.php @@ -0,0 +1,31 @@ +<?php + +class Page_SuiteLogin extends Page +{ + + protected function doPreprocess() + { + if (empty($_SERVER['persistent-id'])) + Util::redirect(CONFIG_PREFIX . 'shib/?do=SuiteLogin'); + + if (!Request::any('msg')) { + $at = Request::any('accessToken'); + if ($at === false || strlen($at) < 20) { + Message::addError('Missing access token'); + } else { + $response = ShibAuth::login($at); + + if ($response['status'] === 'ok') { + Message::addSuccess("Login erfolgreich, Sie können dieses Fenster jetzt schließen"); + } else { + Message::addError("Login fehlgeschlagen: {{0}}", $response['error']); + if ($response['status'] === 'unregistered') { + Util::redirect('?do=Register'); + } + } + } + Util::redirect('?do=SuiteLogin&msg=1'); + } + } + +} |