66 lines
1.6 KiB
PHP
66 lines
1.6 KiB
PHP
<?php
|
|
|
|
require_once "php/model/UserManager.php";
|
|
|
|
/*
|
|
Verarbeitung der Passwortbestätigung
|
|
Funktion: Liest die zwischengespeicherten Passwortdaten aus,
|
|
aktualisiert das Passwort des Benutzers und gibt das Ergebnis
|
|
für die View zurück.
|
|
*/
|
|
|
|
$title = "Passwort zurücksetzen";
|
|
$message = "";
|
|
$link = "";
|
|
$isSuccess = false;
|
|
|
|
$token = basename($_GET["token"] ?? "");
|
|
$file = "data/pending-password/" . $token . ".json";
|
|
|
|
if (empty($token) || !file_exists($file)) {
|
|
|
|
$message = "Der Bestätigungslink ist ungültig oder bereits abgelaufen.";
|
|
|
|
} else {
|
|
|
|
$data = json_decode(file_get_contents($file), true);
|
|
|
|
if ($data === null || empty($data["email"]) || empty($data["password"])) {
|
|
|
|
$message = "Die Daten zur Passwortänderung konnten nicht gelesen werden.";
|
|
|
|
} else {
|
|
|
|
try {
|
|
|
|
$dao = UserManager::getInstance();
|
|
$user = $dao->findUser($data["email"]);
|
|
|
|
if ($user !== null) {
|
|
|
|
$dao->updateUser(
|
|
$user["email"],
|
|
$user["email"],
|
|
$user["vorname"],
|
|
$user["nachname"],
|
|
$data["password"]
|
|
);
|
|
|
|
$_SESSION["message"] = "password_changed";
|
|
header("Location: index.php?pfad=login");
|
|
exit();
|
|
|
|
} else {
|
|
|
|
$message = "Der Benutzer konnte nicht gefunden werden.";
|
|
}
|
|
|
|
unlink($file);
|
|
|
|
} catch (Exception $e) {
|
|
|
|
$message = "Das Passwort konnte nicht geändert werden.";
|
|
}
|
|
}
|
|
}
|