Permissões de acesso em PHP

Na maioria das vezes, um site não tem apenas um tipo de usuário, mas vários, e todos eles possuem permissões diferentes. Por exemplo, você pode ter usuários comuns e administradores. Os administradores terão mais permissões do que os usuários comuns.

A maneira como isso é implementado: criaremos na tabela de usuários mais um campo, vamos chamá-lo de status e para cada usuário armazenaremos seu status: vamos supor que para administradores a palavra 'admin', e para usuários comuns - a palavra 'user'.

Agora, durante a autorização do usuário, em $_SESSION['status'] registraremos o status do usuário vindo do banco de dados:

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

Suponha agora que temos alguma página no nosso site à qual apenas administradores têm acesso. Vamos fazer com que apenas administradores vejam o conteúdo desta página:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // mostra o conteúdo da página apenas para administradores
  }
?>