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
+13 -48
View File
@@ -1,55 +1,20 @@
<?php <?php
/** @var string $title */
/** @var string $message */
/** @var string $link */
/** @var bool $isSuccess */
require_once "php/model/UserManager.php"; $title = $title ?? "Passwort zurücksetzen";
$message = $message ?? "Der Bestätigungslink konnte nicht verarbeitet werden.";
$token = basename($_GET["token"] ?? ""); $link = $link ?? "";
$file = "data/pending-password/" . $token . ".json"; $isSuccess = $isSuccess ?? false;
$title = "Passwort zurücksetzen";
$message = "";
$link = "";
$isSuccess = false;
if (!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"]
);
unlink($file);
$title = "Passwort geändert";
$message = "Ihr Passwort wurde erfolgreich geändert. Sie können sich jetzt anmelden.";
$link = '<a class="button confirm-button" href="index.php?pfad=login">Zum Login</a>';
$isSuccess = true;
} else {
unlink($file);
$message = "Der Benutzer konnte nicht gefunden werden.";
}
} catch (Exception $e) {
$message = "Das Passwort konnte nicht geändert werden.";
}
}
}
?> ?>
<!--
Ansicht: Passwortbestätigung
Funktion: Zeigt das Ergebnis der Passwortänderung an.
-->
<main class="login-page"> <main class="login-page">
<div class="login-container"> <div class="login-container">
+12 -51
View File
@@ -1,58 +1,19 @@
<?php <?php
/** @var string $title */
/** @var string $message */
/** @var string $link */
/** @var bool $isSuccess */
require_once "php/model/UserManager.php"; $title = $title ?? "Registrierung";
$message = $message ?? "Der Registrierungslink konnte nicht verarbeitet werden.";
$token = basename($_GET["token"] ?? ""); $link = $link ?? "";
$file = "data/pending/" . $token . ".json"; $isSuccess = $isSuccess ?? false;
$title = "Registrierung";
$message = "";
$link = "";
$isSuccess = false;
if (!file_exists($file)) {
$message = "Der Registrierungslink ist ungültig oder bereits abgelaufen.";
} else {
$data = json_decode(file_get_contents($file), true);
if ($data === null) {
$message = "Die Registrierungsdaten konnten nicht gelesen werden.";
} elseif (
empty($data["email"]) ||
empty($data["vorname"]) ||
empty($data["nachname"]) ||
empty($data["password"])
) {
$message = "Die Registrierungsdaten sind unvollständig.";
} else {
try {
$dao = UserManager::getInstance();
if ($dao->findUser($data["email"]) === null) {
$dao->addUser(
$data["email"],
$data["vorname"],
$data["nachname"],
$data["password"]
);
}
unlink($file);
$title = "Registrierung erfolgreich";
$message = "Ihre Registrierung wurde erfolgreich abgeschlossen. Sie können sich jetzt anmelden.";
$link = '<a class="button confirm-button" href="index.php?pfad=login">Zum Login</a>';
$isSuccess = true;
} catch (Exception $e) {
$message = "Die Registrierung konnte nicht abgeschlossen werden.";
}
}
}
?> ?>
<!--
Ansicht: Registrierungsbestätigung
Funktion: Zeigt das Ergebnis der Registrierungsbestätigung an.
-->
<main class="login-page"> <main class="login-page">
<div class="login-container"> <div class="login-container">
+2
View File
@@ -11,6 +11,8 @@ $error = $error ?? null;
<h1>Bitte anmelden</h1> <h1>Bitte anmelden</h1>
<?php include_once "includes/alertMessages.php"; ?>
<?php if (!empty($error)): ?> <?php if (!empty($error)): ?>
<p class="alert-message is-error"> <p class="alert-message is-error">
<?php echo htmlspecialchars($error); ?> <?php echo htmlspecialchars($error); ?>
-1
View File
@@ -1 +0,0 @@
<?php
-1
View File
@@ -1 +0,0 @@
<?php
-1
View File
@@ -1 +0,0 @@
<?php
+11
View File
@@ -78,6 +78,17 @@
Das Bild konnte nicht hochgeladen werden. Bitte versuche es erneut oder verwende ein anderes Bildformat. Das Bild konnte nicht hochgeladen werden. Bitte versuche es erneut oder verwende ein anderes Bildformat.
</p> </p>
<?php endif; ?> <?php endif; ?>
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "registration_confirmed"): ?>
<p class="alert-message is-success">
Ihre Registrierung wurde erfolgreich abgeschlossen. Sie können sich jetzt anmelden.
</p>
<?php endif; ?>
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "password_changed"): ?>
<p class="alert-message is-success">
Ihr Passwort wurde erfolgreich geändert. Sie können sich jetzt anmelden.
</p>
<?php endif; ?>
<?php <?php
unset($_SESSION["message"]); unset($_SESSION["message"]);
?> ?>
+8
View File
@@ -21,6 +21,14 @@ if ($pfad === "password-forgotten") {
include_once "php/controller/password-forgotten-controller.php"; include_once "php/controller/password-forgotten-controller.php";
} }
if ($pfad === "confirm-register") {
include_once "php/controller/confirm-register-controller.php";
}
if ($pfad === "confirm-password") {
include_once "php/controller/confirm-password-controller.php";
}
if ($pfad === "logout") { if ($pfad === "logout") {
include_once "php/controller/logout-controller.php"; include_once "php/controller/logout-controller.php";
exit(); exit();
@@ -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.";
}
}
}