summaryrefslogtreecommitdiffstats
path: root/modules/register.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/register.inc.php')
-rw-r--r--modules/register.inc.php29
1 files changed, 19 insertions, 10 deletions
diff --git a/modules/register.inc.php b/modules/register.inc.php
index 19ccfcf..f55e900 100644
--- a/modules/register.inc.php
+++ b/modules/register.inc.php
@@ -23,26 +23,35 @@ class Page_Register extends Page
Util::redirect('?do=Main');
}
- if (Request::post('testlogin')) {
+ $anonymous = (Request::post('share') !== 'on');
+ $testLogin = Request::post('testlogin');
+ if (empty($testLogin)) {
+ $testLogin = false;
+ }
+ if ($testLogin !== false) {
// Check if one of firstname, lastname or email matches
- $user = Database::queryFirst('SELECT firstname, lastname, email, organizationid FROM user WHERE userid = :login LIMIT 1',
- array('login' => Request::post('testlogin')));
+ $user = Database::queryFirst('SELECT firstname, lastname, email, password, organizationid FROM user WHERE userid = :login LIMIT 1',
+ array('login' => $testLogin));
if ($user === false || User::getOrganizationId() !== $user['organizationid']) {
// Invalid Login
Message::addError('Test-Account {{0}} unbekannt. '
- . ' Bitte wenden Sie sich an den {{1}}-Support, wenn dieser Test-Account Ihnen gehört.', Request::post('testlogin'), CONFIG_SUITE);
+ . ' Bitte wenden Sie sich an den {{1}}-Support, wenn dieser Test-Account Ihnen gehört.', $testLogin, CONFIG_SUITE);
+ Util::redirect('?do=Main');
+ }
+ if (empty($user['password']) && !CONFIG_ALLOW_SHIB_MERGE) {
+ Message::addError('Verknüpfung mit altem Shibboleth-basiertem Account nicht erlaubt');
Util::redirect('?do=Main');
}
- if (User::getLastName() !== $user['lastname']
- && User::getFirstName() !== $user['firstname']
- && User::getMail() !== $user['email']) {
+ if (strcasecmp(User::getLastName(), $user['lastname']) !== 0
+ || strcasecmp(User::getFirstName(), $user['firstname']) !== 0
+ || strcasecmp(User::getMail(), $user['email']) !== 0) {
// No match by personal information
Message::addError('Ihre Metadaten stimmen nicht mit dem Test-Account {{0}} überein. '
- . ' Bitte wenden Sie sich an den {{1}}-Support, wenn dieser Test-Account Ihnen gehört.', Request::post('testlogin'), CONFIG_SUITE);
+ . ' Bitte wenden Sie sich an den {{1}}-Support, wenn dieser Test-Account Ihnen gehört.', $testLogin, CONFIG_SUITE);
Util::redirect('?do=Main');
}
// Check if anonymous is requested, but user shared VMs with his testacc
- if (Image::getImageCount(Request::post('testlogin')) > 0) {
+ if ($anonymous && Image::getImageCount($testLogin) > 0) {
Message::addError('Sie haben mit Ihrem Test-Account Virtuelle Maschinen auf den Zentral-Server hochgeladen und können"
. " sich daher nicht ohne Teilnahme am landesweiten VM-Austausch registrieren.');
Util::redirect('?do=Main');
@@ -59,7 +68,7 @@ class Page_Register extends Page
} elseif (!User::hasFullName()) {
Message::addError('Ihr Identity Provider hat keinen Namen zu Ihrem Account geliefert. Registrierung nicht möglich.');
// Put stuff in DB
- } elseif (User::deploy(Request::post('share') !== 'on', Request::post('testlogin'))) {
+ } elseif (User::deploy($anonymous, $testLogin)) {
Message::addSuccess('Ihr Konto wurde freigeschaltet');
} else {
Message::addError('Fehler beim Zusammenführen mit Ihrem Test-Account. Bitte wenden Sie sich an den Support.');