Reviewänderungen

This commit is contained in:
2026-06-30 20:25:36 +02:00
parent 1b2ab1cccb
commit cc5f46c00e
10 changed files with 177 additions and 104 deletions
@@ -0,0 +1,65 @@
<?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.";
}
}
}
@@ -0,0 +1,64 @@
<?php
require_once "php/model/UserManager.php";
/*
Verarbeitung der Registrierungsbestätigung
Funktion: Liest die zwischengespeicherten Registrierungsdaten aus,
legt den Benutzer an und gibt das Ergebnis für die View zurück.
*/
$title = "Registrierung";
$message = "";
$link = "";
$isSuccess = false;
$token = basename($_GET["token"] ?? "");
$file = "data/pending/" . $token . ".json";
if (empty($token) || !file_exists($file)) {
$message = "Der Registrierungslink ist ungültig oder bereits abgelaufen.";
} else {
$data = json_decode(file_get_contents($file), true);
if (
$data === null ||
empty($data["email"]) ||
empty($data["vorname"]) ||
empty($data["nachname"]) ||
empty($data["password"])
) {
$message = "Die Registrierungsdaten konnten nicht gelesen werden.";
} else {
try {
$dao = UserManager::getInstance();
if ($dao->findUser($data["email"]) === null) {
$dao->addUser(
$data["email"],
$data["vorname"],
$data["nachname"],
$data["password"]
);
}
unlink($file);
$_SESSION["message"] = "registration_confirmed";
header("Location: index.php?pfad=login");
exit();
} catch (Exception $e) {
$message = "Die Registrierung konnte nicht abgeschlossen werden.";
}
}
}