Documentation

Controller_Security extends Controller
in package

Kontroler zajišťující bezpečnostní mechanismy aplikace.

  • Zpracovává:
  1. Dvoufázové ověření uživatele (odesílání a verifikace kódů).
  2. Změnu hesel přihlášených uživatelů.
  3. Kompletní proces zapomenutého hesla (Reset Password Workflow).
  4. Bezpečné odstranění uživatelského účtu.

Table of Contents

Properties

$model  : Model
$code  : int
$codeVerif  : bool
$email  : string
$error  : string
$resetHeslaStage  : int

Methods

__construct()  : mixed
Konstruktor bezpečnostního kontroleru.
buildPagination()  : array<string|int, mixed>
Logika pro výpočet a vygenerování pole stránek pro stránkování (pagination).
codeVerify()  : mixed
Ověřuje kód zadaný uživatelem z e-mailu.
deleteUser()  : mixed
Zpracuje smazání uživatelského účtu.
deleteUser_page()  : mixed
Zobrazí stránku pro smazání účtu.
emailCode()  : mixed
Generuje a odesílá 6místný ověřovací kód na e-mail 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.
showResetPage()  : mixed
Hlavní metoda pro proces resetování zapomenutého hesla.
updatePassw()  : mixed
Zpracuje požadavek na změnu hesla uživatele.
updatePassw_page()  : mixed
Zobrazí stránku pro změnu hesla.
preventCache()  : void
Nastaví HTTP hlavičky pro zabránění ukládání obsahu stránky do mezipaměti prohlížeče (cache).
sendResetCode()  : mixed
Soukromá metoda pro odeslání e-mailu specificky pro reset hesla.

Properties

$model

protected Model $model

Instance databázového modelu pro přístup k datům

$code

private int $code

Proměnné pro řízení fází resetu hesla a uložení kódu

$email

private string $email

Pomocné proměnné pro chybové hlášky a e-mailovou adresu

$error

private string $error

Pomocné proměnné pro chybové hlášky a e-mailovou adresu

$resetHeslaStage

private int $resetHeslaStage

Proměnné pro řízení fází resetu hesla a uložení kódu

Methods

__construct()

Konstruktor bezpečnostního kontroleru.

public __construct(mixed $model) : mixed

Inicializuje výchozí stavy pro bezpečnostní operace.

  • @param Model $model Instance databázového modelu
Parameters
$model : mixed

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

codeVerify()

Ověřuje kód zadaný uživatelem z e-mailu.

public codeVerify() : mixed

Kontroluje shodu kódu a časovou platnost expirace.

deleteUser()

Zpracuje smazání uživatelského účtu.

public deleteUser() : mixed

Po ověření aktuálního hesla smaže data a zruší celou session včetně cookies.

deleteUser_page()

Zobrazí stránku pro smazání účtu.

public deleteUser_page() : mixed

Podmínkou je přihlášení a úspěšné předchozí ověření kódem (2FA).

emailCode()

Generuje a odesílá 6místný ověřovací kód na e-mail uživatele.

public emailCode() : mixed

Využívá knihovnu PHPMailer a SMTP konfiguraci z .env souboru. Kód má omezenou platnost (5 minut).

  • @return void

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

showResetPage()

Hlavní metoda pro proces resetování zapomenutého hesla.

public showResetPage() : mixed

Implementuje třífázový stavový automat (fáze 1-3):

  1. Zadání e-mailu.
  2. Ověření kódu z e-mailu.
  3. Nastavení nového hesla.

updatePassw()

Zpracuje požadavek na změnu hesla uživatele.

public updatePassw() : mixed

Provádí hashování nového hesla a kontroluje shodu s potvrzením.

updatePassw_page()

Zobrazí stránku pro změnu hesla.

public updatePassw_page() : mixed

Podmínkou je přihlášení a úspěšné předchozí ověření kódem (2FA).

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

sendResetCode()

Soukromá metoda pro odeslání e-mailu specificky pro reset hesla.

private sendResetCode(mixed $email) : mixed

Podobná logice emailCode(), ale určená pro nepřihlášené uživatele.

  • @param string $email E-mail adresáta
Parameters
$email : mixed

        
On this page

Search results