Controller_User
extends Controller
in package
Kontroler pro správu uživatelských účtů.
Zajišťuje životní cyklus uživatele v aplikaci: od registrace, přes přihlášení, správu profilu až po bezpečné ukončení relace (odhlášení).
Table of Contents
Properties
- $model : Model
- $email : string
- $error : string
- $name : string
- $passw : string
- $resetHeslaStage : int
- $surname : string
Methods
- __construct() : mixed
- Konstruktor uživatelského kontroleru.
- buildPagination() : array<string|int, mixed>
- Logika pro výpočet a vygenerování pole stránek pro stránkování (pagination).
- logOut() : mixed
- Bezpečné odhlášení uživatele.
- sessionLoginStart() : void
- Nastaví klíčové údaje o uživateli do globální proměnné $_SESSION po úspěšném přihlášení.
- sessionStatus() : mixed
- Zkontroluje a v případě potřeby zahájí PHP session.
- showHomePage() : mixed
- Zobrazí úvodní stránku aplikace.
- showLoginPage() : mixed
- Zobrazí přihlašovací stránku.
- showProfilePage() : mixed
- Zobrazí osobní profil přihlášeného uživatele.
- showRegistrPage() : mixed
- Zobrazí registrační formulář.
- userLogin() : mixed
- Zpracovává pokus o přihlášení.
- userRegister() : mixed
- Zpracovává registraci nového uživatele.
- preventCache() : void
- Nastaví HTTP hlavičky pro zabránění ukládání obsahu stránky do mezipaměti prohlížeče (cache).
Properties
$model
protected
Model
$model
Instance databázového modelu pro přístup k datům
private
string
$email
Dočasné úložiště pro údaje z formulářů a chybové stavy
$error
private
string
$error
Dočasné úložiště pro údaje z formulářů a chybové stavy
$name
private
string
$name
Dočasné úložiště pro údaje z formulářů a chybové stavy
$passw
private
string
$passw
Dočasné úložiště pro údaje z formulářů a chybové stavy
$resetHeslaStage
private
int
$resetHeslaStage
Pomocná proměnná pro řízení stavu zapomenutého hesla
$surname
private
string
$surname
Dočasné úložiště pro údaje z formulářů a chybové stavy
Methods
__construct()
Konstruktor uživatelského kontroleru.
public
__construct(Model $model) : mixed
Inicializuje základní řetězce a nastavuje výchozí fázi resetu.
Parameters
- $model : Model
-
Databázový model aplikace
buildPagination()
Logika pro výpočet a vygenerování pole stránek pro stránkování (pagination).
public
buildPagination(int $current, int $total) : array<string|int, mixed>
Zajišťuje, aby se v navigaci zobrazoval správný rozsah stránek kolem aktuální pozice.
- @param int $current Aktuální číslo stránky, na které se uživatel nachází
Parameters
- $current : int
- $total : int
-
Celkový počet dostupných stránek
Return values
array<string|int, mixed> —Pole obsahující strukturu stránek pro vykreslení ve view
logOut()
Bezpečné odhlášení uživatele.
public
logOut() : mixed
Vymaže pole $_SESSION, zneplatní session cookie v prohlížeči, zničí session na straně serveru a odstraní pomocnou cookie s e-mailem.
sessionLoginStart()
Nastaví klíčové údaje o uživateli do globální proměnné $_SESSION po úspěšném přihlášení.
public
sessionLoginStart(mixed $id, string $email, string $name, string $surname, string $role) : void
Inicializuje také pomocné proměnné pro procesy ověřování a profilu.
- @param int $id Unikátní ID uživatele z databáze
Parameters
- $id : mixed
- $email : string
-
Přihlašovací e-mail
- $name : string
-
Jméno uživatele
- $surname : string
-
Příjmení uživatele
- $role : string
-
Role uživatele (admin / uživatel)
sessionStatus()
Zkontroluje a v případě potřeby zahájí PHP session.
public
sessionStatus() : mixed
Brání chybám typu "headers already sent" kontrolou stavu PHP_SESSION_NONE.
- @return void
showHomePage()
Zobrazí úvodní stránku aplikace.
public
showHomePage() : mixed
Pokud je uživatel již přihlášen, automaticky ho přesměruje na jeho profil. Zároveň čistí dočasné proměnné z procesu resetování hesla.
- @return void
showLoginPage()
Zobrazí přihlašovací stránku.
public
showLoginPage() : mixed
Zajišťuje resetování stavů pro obnovu hesla a čistí cache prohlížeče.
showProfilePage()
Zobrazí osobní profil přihlášeného uživatele.
public
showProfilePage() : mixed
Při každém vstupu resetuje příznak 2FA ověření kódem.
showRegistrPage()
Zobrazí registrační formulář.
public
showRegistrPage() : mixed
Pokud je uživatel již přihlášen, automaticky jej přesměruje na profil.
userLogin()
Zpracovává pokus o přihlášení.
public
userLogin() : mixed
Po ověření e-mailu a hesla (password_verify) nastartuje session a uloží e-mail do cookie "remember_email" pro pohodlí uživatele.
userRegister()
Zpracovává registraci nového uživatele.
public
userRegister() : mixed
Provádí několikastupňovou validaci:
- Validita e-mailového formátu.
- Síla hesla pomocí regulárního výrazu (Regex).
- Shoda hesla s jeho potvrzením.
- Unikátnost e-mailu v databázi.
preventCache()
Nastaví HTTP hlavičky pro zabránění ukládání obsahu stránky do mezipaměti prohlížeče (cache).
protected
preventCache() : void
Důležité pro stránky s citlivými údaji po odhlášení.
- @return void