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