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