abschluss
This commit is contained in:
@ -1,16 +1,36 @@
|
||||
<?php
|
||||
namespace Blog\Utils;
|
||||
|
||||
use Blog\Model\userModel;
|
||||
use Blog\Model\UserModel;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Hilfsklasse für Authentifizierung und Session-Management.
|
||||
*/
|
||||
class AuthHelper {
|
||||
/**
|
||||
* @var UserModel|null
|
||||
*/
|
||||
private static ?UserModel $userModel = null;
|
||||
|
||||
/**
|
||||
* Initialisiert den AuthHelper mit einem UserModel.
|
||||
*
|
||||
* @param UserModel $userModel
|
||||
* @return void
|
||||
*/
|
||||
public static function initialize(UserModel $userModel): void {
|
||||
self::$userModel = $userModel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Versucht, einen Benutzer mit Benutzername und Passwort einzuloggen.
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @return bool True bei Erfolg, sonst false.
|
||||
* @throws Exception Wenn das UserModel nicht initialisiert wurde.
|
||||
*/
|
||||
public static function login(string $username, string $password): bool {
|
||||
if(!self::$userModel)
|
||||
throw new Exception("AuthHelper was not initialized. Please pass UserModel.");
|
||||
@ -28,15 +48,30 @@ class AuthHelper {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loggt den aktuellen Benutzer aus und zerstört die Session.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function logout(): void {
|
||||
session_unset();
|
||||
session_destroy();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob ein Benutzer eingeloggt ist.
|
||||
*
|
||||
* @return bool True, wenn ein Benutzer eingeloggt ist, sonst false.
|
||||
*/
|
||||
public static function isLoggedIn(): bool {
|
||||
return isset($_SESSION['user']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die aktuellen Benutzerdaten aus der Session zurück.
|
||||
*
|
||||
* @return array|null Benutzerdaten oder null, falls nicht eingeloggt.
|
||||
*/
|
||||
public static function getCurrentUser(): ?array {
|
||||
return $_SESSION['user'] ?? null;
|
||||
}
|
Reference in New Issue
Block a user