News-Admin-Workflow aufgebohrt:

- News können jetzt als Admin  erstellt und gelöscht werden, mit Zwischenseite zur Bestätigung.
- Fehler bei den Feldnamen im Model gefixt.
- Nach dem Anlegen/Löschen gibt’s jetzt wie beim Login/Registrieren eine kurze Erfolgsmeldung und automatischen Redirect.
- Includes und Redirects aufgeräumt, damit keine Warnungen mehr kommen.
This commit is contained in:
2025-07-08 10:12:07 +02:00
parent 4f0f1e5f6d
commit 775b752d59
9 changed files with 227 additions and 40 deletions

View File

@@ -11,7 +11,7 @@ class AuthModel extends Database
public function login(string $email, string $password)
{
$pdo = $this->linkDB();
$sql = "SELECT email, password, valid_until FROM user WHERE email = :email";
$sql = "SELECT email, password, valid_until, is_admin FROM user WHERE email = :email";
$params = [":email" => $email];
try {
@@ -20,15 +20,15 @@ class AuthModel extends Database
$user = $sth->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
new \Blog\Library\ErrorMsg("Fehler beim Abrufen der Benutzerdaten.", $e);
return "Interner Datenbankfehler."; // Nur für Debug sichtbar machen, sonst besser allgemein halten
return ['success' => false, 'error' => "Interner Datenbankfehler."];
}
if (!$user) {
return "Benutzer mit dieser E-Mail wurde nicht gefunden.";
return ['success' => false, 'error' => "Benutzer mit dieser E-Mail wurde nicht gefunden."];
}
if (!password_verify($password, $user['password'])) {
return "Das eingegebene Passwort ist falsch.";
return ['success' => false, 'error' => "Das eingegebene Passwort ist falsch."];
}
try {
@@ -36,14 +36,14 @@ class AuthModel extends Database
$validUntil = new DateTime($user['valid_until']);
if ($now > $validUntil) {
return "Ihr Passwort ist abgelaufen. Bitte setzen Sie ein neues über \"Passwort vergessen\".";
return ['success' => false, 'error' => "Ihr Passwort ist abgelaufen. Bitte setzen Sie ein neues über \"Passwort vergessen\"."];
}
} catch (\Exception $e) {
new \Blog\Library\ErrorMsg("Fehler beim Verarbeiten des Gültigkeitsdatums.", $e);
return "Fehler bei der Passwortprüfung.";
return ['success' => false, 'error' => "Fehler bei der Passwortprüfung."];
}
return true;
return ['success' => true, 'user' => $user];
}
public function register($data) {

View File

@@ -56,9 +56,9 @@ class NewsModel extends Database {
$pdo = $this->linkDB();
$sql = "INSERT INTO news (name, description, date) VALUES (:name, :description, :date);";
$params = [
":name" => $news['titel'],
":description" => $news['inhalt'],
":date" => $news['datum']
":name" => $news['name'],
":description" => $news['description'],
":date" => $news['date']
];
try {
$sth = $pdo->prepare($sql);