if ($_SESSION['semi_logged_in'] == Request::option('uid')) { reenter_mail(); } else { printf(_('Sie können sich %seinloggen%s und sich den Bestätigungscode neu oder an eine andere E-Mail-Adresse schicken lassen.'), '<a href="' . URLHelper::getLink('index.php?again=yes') . '">', '</a>'); } footer(); } } // checking semi_logged_in is important to avoid abuse } else { if (Request::get('email1') && Request::get('email2') && $_SESSION['semi_logged_in'] == Request::option('uid')) { if (Request::get('email1') == Request::get('email2')) { // change mail require_once 'lib/edit_about.inc.php'; $tmp_user = User::find(Request::option('uid')); $send = edit_email($tmp_user, Request::quoted('email1'), True); if ($send[0]) { $_SESSION['semi_logged_in'] = False; head(PageLayout::getTitle()); printf(_('An %s wurde ein Aktivierungslink geschickt.'), Request::quoted('email1')); footer(); } else { head(_('Fehler'), True); echo parse_msg($send[1]); footer(); head(PageLayout::getTitle()); reenter_mail(); footer(); } } else { head(PageLayout::getTitle());
/** * Stores the account informations of a user */ public function store_action() { $this->check_ticket(); $errors = $info = $success = array(); $logout = false; //erstmal die "unwichtigen" Daten $geschlecht = Request::int('geschlecht'); if ($this->shallChange('user_info.geschlecht', 'gender', $geschlecht)) { $this->user->geschlecht = $geschlecht; } $title_front = Request::get('title_front') ?: Request::get('title_front_chooser'); if ($this->shallChange('user_info.title_front', 'title', $title_front)) { $this->user->title_front = $title_front; } $title_rear = Request::get('title_rear') ?: Request::get('title_rear_chooser'); if ($this->shallChange('user_info.title_rear', 'title', $title_rear)) { $this->user->title_rear = $title_rear; } if ($this->user->store()) { $success[] = _('Ihre persönlichen Daten wurden geändert.'); // Inform the user about this change setTempLanguage($this->user->user_id); $this->postPrivateMessage(_("Ihre persönlichen Daten wurden geändert.\n")); restoreLanguage(); } //nur nötig wenn der user selbst seine daten ändert if (!$this->restricted) { // Vorname verändert ? $vorname = trim(Request::get('vorname')); if ($this->shallChange('auth_user_md5.Vorname', 'name', $vorname)) { // Vorname nicht korrekt oder fehlend if (!$this->validator->ValidateName($vorname)) { $errors[] = _('Der Vorname fehlt oder ist unsinnig!'); } else { $this->user->Vorname = $vorname; $success[] = _('Ihr Vorname wurde geändert!'); } } // Nachname verändert ? $nachname = trim(Request::get('nachname')); if ($this->shallChange('auth_user_md5.Nachname', 'name', $nachname)) { // Nachname nicht korrekt oder fehlend if (!$this->validator->ValidateName($nachname)) { $errors[] = _('Der Nachname fehlt oder ist unsinnig!'); } else { $this->user->Nachname = $nachname; $success[] = _('Ihr Nachname wurde geändert!'); } } // Username $new_username = trim(Request::get('new_username')); if ($this->shallChange('auth_user_md5.username', 'username', $new_username)) { if (!$this->validator->ValidateUsername($new_username)) { $errors[] = _('Der gewählte Benutzername ist nicht lang genug!'); } else { if ($check_uname = StudipAuthAbstract::CheckUsername($new_username) && $check_uname['found']) { $errors[] = _('Der Benutzername wird bereits von einem anderen Benutzer verwendet. Bitte wählen Sie einen anderen Usernamen!'); } else { $this->user->username = $new_username; $success[] = _('Ihr Benutzername wurde geändert!'); URLHelper::addLinkParam('username', $this->user->username); $logout = true; } } } // Email $email1 = trim(Request::get('email1')); $email2 = trim(Request::get('email2')); if ($this->shallChange('auth_user_md5.Email', 'email', $email1)) { $auth = StudipAuthAbstract::GetInstance($this->user->auth_plugin ?: 'standard'); $is_sso = $auth instanceof StudipAuthSSO; if (!$is_sso && !$auth->isAuthenticated($this->user->username, Request::get('password'))) { $errors[] = _('Das aktuelle Passwort wurde nicht korrekt eingegeben.'); } else { if ($email1 !== $email2) { $errors[] = _('Die Wiederholung der E-Mail-Adresse stimmt nicht mit Ihrer Eingabe überein.'); } else { $result = edit_email($this->user, $email1); $messages = explode('§', $result[1]); if ($result[0]) { $this->user->Email = $email1; if (count($messages) < 2) { $success[] = _('Ihre E-Mail-Adresse wurde geändert!'); } } for ($i = 0; $i < count($messages); $i += 2) { $type = $messages[$i]; if ($type === 'msg') { $type = 'success'; } else { if ($type === 'error') { $type = 'errors'; } } ${$type}[] = $messages[$i + 1]; } } } } } if (count($errors) > 0) { $this->reportErrorWithDetails(_('Bitte überprüfen Sie Ihre Eingaben:'), $errors); } else { if ($this->user->store()) { $this->reportSuccessWithDetails(_('Ihre Nutzerdaten wurden geändert.'), $success); if (count($info) > 0) { $this->reportInfoWithDetails(_('Bitte beachten Sie:'), $info); } } } if ($logout) { $token = uniqid('logout', true); $this->flash['logout-token'] = $token; $this->redirect('settings/account/logout?token=' . $token); } else { $this->redirect('settings/account'); } }