Права за достъп в PHP

Най-често на сайта няма един тип потребители, а няколко и всички те имат различни права. Например, може да имате обикновени потребители и администратори. Администраторите ще имат повече права, отколкото обикновените потребители.

Как се реализира това: ще създадем в таблицата с потребители още едно поле, ще го наречем status и за всеки потребител ще съхраняваме неговия статус: нека за администраторите думата 'admin', а за обикновените потребители - думата 'user'.

Сега при авторизация на потребителя в $_SESSION['status'] ще запишем статуса на потребителя от базата данни:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
    $_SESSION['status'] = $user['status']; // записваме статуса
  }
?>

Нека сега на нашия сайт има някаква страница, до която имат достъп само администраторите. Нека направим така, че само администраторите да виждат съдържанието на тази страница:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // ще покажем съдържанието на страницата само на администратори
  }
?>