Přístupová práva v PHP

Na webu bývá často více typů uživatelů, kteří mají různá práva. Například můžete mít běžné uživatele a administrátory. Administrátoři budou mít více práv než obyčejní uživatelé.

Jak se to implementuje: vytvoříme v tabulce s uživateli další pole, nazveme jej status a pro každého uživatele budeme ukládat jeho status: pro administrátory nechť je to 'admin', a pro běžné uživatele - 'user'.

Nyní při autorizaci uživatele zapíšeme do $_SESSION['status'] status uživatele z databáze:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
    $_SESSION['status'] = $user['status']; // zapíšeme status
  }
?>

Předpokládejme, že na našem webu je stránka, ke které mají přístup pouze administrátoři. Zařídíme, aby obsah této stránky viděli pouze administrátoři:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // zobrazíme obsah stránky pouze administrátorům
  }
?>