66 lines
1.8 KiB
PHP
66 lines
1.8 KiB
PHP
<?php
|
|
|
|
require_once "php/model/UserManager.php";
|
|
|
|
$token = basename($_GET["token"] ?? "");
|
|
$file = "data/pending-password/" . $token . ".json";
|
|
|
|
$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.";
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
|
|
<main class="login-page">
|
|
<div class="login-container">
|
|
|
|
<h1><?php echo htmlspecialchars($title); ?></h1>
|
|
|
|
<p class="alert-message <?php echo $isSuccess ? 'is-success' : 'is-error'; ?> confirm-message">
|
|
<?php echo htmlspecialchars($message); ?>
|
|
</p>
|
|
|
|
<?php echo $link; ?>
|
|
|
|
</div>
|
|
</main>
|