Derechos de acceso en PHP

Frecuentemente en un sitio web no hay un solo tipo de usuarios, sino varios y todos tienen derechos diferentes. Por ejemplo, puedes tener usuarios regulares y administradores. Los administradores tendrán más derechos que los usuarios comunes.

De qué manera se implementa esto: crearemos en la tabla de usuarios un campo más, lo llamaremos status y para cada usuario almacenaremos su estado: sea para los administradores la palabra 'admin', y para los usuarios regulares - la palabra 'user'.

Ahora durante la autorización del usuario en $_SESSION['status'] escribiremos el estado del usuario desde la base de datos:

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

Supongamos ahora que en nuestro sitio hay alguna página a la que solo tienen acceso los administradores. Asegurémonos de que solo los administradores vean el contenido de esta página:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // mostramos el contenido de la página solo a los administradores
  }
?>