Jogosultságok PHP-ben

Leggyakrabban egy weboldalon nem egy, hanem több típusú felhasználó van, és mindegyikük különböző jogosultságokkal rendelkezik. Például lehetnek rendes felhasználók és adminisztrátorok. Az adminisztrátorok több jogosultsággal fognak rendelkezni, mint a közönséges felhasználók.

Hogyan valósítható ez meg: hozzunk létre a felhasználók táblájában egy további mezőt, nevezzük el status-nak, és minden felhasználó számára tároljuk a státuszát: legyen az adminisztrátoroknál a 'admin' szó, a közönséges felhasználóknál pedig a 'user' szó.

Most a felhasználó azonosítása során a $_SESSION['status'] munkamenet-változóba írjuk a felhasználó adatbázisból származó státuszát:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
    $_SESSION['status'] = $user['status']; // státusz rögzítése
  }
?>

Tegyük fel, hogy van most az oldalon egy olyan oldal, amelyhez csak az adminisztrátorok férhetnek hozzá. Állítsuk be úgy, hogy csak az adminisztrátorok lássák ennek az oldalnak a tartalmát:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // az oldal tartalmát csak az adminisztrátoroknak mutatjuk
  }
?>