summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorSimon Rettberg2023-10-06 18:26:22 +0200
committerSimon Rettberg2023-10-06 18:26:22 +0200
commite5be4e97ffc41ca3b0386651a626b781a3637a85 (patch)
tree20152d35607de272edae44725efba13f21da85a1 /modules
parentapi: Hard-code bogus name/mail for read only (STUDENT) login (diff)
downloadbwlp-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.php2
-rw-r--r--modules/main.inc.php4
-rw-r--r--modules/suitelogin.inc.php31
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');
+ }
+ }
+
+}