diff options
Diffstat (limited to 'modules/edit.inc.php')
-rw-r--r-- | modules/edit.inc.php | 41 |
1 files changed, 41 insertions, 0 deletions
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 @@ +<?php + +class Page_Edit extends Page +{ + + public function doPreprocess() + { + if (!User::load()) { + Message::addError('Sie sind nicht angemeldet'); + Util::redirect('?do=Main'); + } + // See which attributes we are allowed to edit + $shib = User::isShibbolethAuth(); + $pw1 = Request::post('pass1'); + $pw2 = Request::post('pass2'); + $mail = Request::post('email'); + if ((!empty($pw1) || !empty($pw2)) && !$shib) { + if ($pw1 !== $pw2) { + Message::addError('Ihr Passwort wurde nicht verändert, da die Passwortwiederholung nicht mit dem Passwort übereinstimmt'); + } else if (mb_strlen($pw1) < 3) { + Message::addError('Ihr Passwort ist zu kurz'); + } else if (!User::updatePassword($pw1)) { + Message::addError('Datenbankfehler beim Aktualisieren des Passworts'); + } else { + Message::addSuccess('Ihr Passwort wurde aktualisiert und ist ab sofort gültig'); + } + } + if ($mail !== false && $mail !== User::getMail()) { + $mail = trim($mail); + if (!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}/i', $mail)) { + Message::addError('Ihre e-Mail-Adresse wurde nicht aktualisiert, da Sie ein ungültiges Format hat'); + } else { + User::updateMail($mail); + Message::addSuccess('Ihr e-Mail-Adresse wurde aktualisiert'); + } + } + Util::redirect('?do=Main'); + } + +} + |