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:
<?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:
<?php
if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
// az oldal tartalmát csak az adminisztrátoroknak mutatjuk
}
?>