Uprawnienia dostępu w PHP

Najczęściej na stronie nie ma jednego typu użytkowników, a kilku i wszyscy mają różne uprawnienia. Na przykład, możesz mieć zwykłych użytkowników i administratorów. Administratorzy będą mieli więcej uprawnień, niż zwykli użytkownicy.

W jaki sposób to się implementuje: stworzymy w tabeli z użytkownikami jeszcze jedno pole, nazwiemy je status i dla każdego użytkownika będziemy przechowywać jego status: niech dla administratorów słowo 'admin', a dla zwykłych użytkowników - słowo 'user'.

Teraz przy autoryzacji użytkownika w $_SESSION['status'] zapisujemy status użytkownika z bazy danych:

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

Załóżmy teraz, że na naszej stronie jest jakaś strona, do której dostęp mają tylko administratorzy. Zróbmy tak, aby tylko administratorzy widzieli treść tej strony:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // pokażemy treść strony tylko administratorom
  }
?>