Registro con separación de permisos en PHP
Al agregar permisos de usuario, necesitamos hacer
cambios en nuestro registro. Ahora, al registrar
un usuario, debemos especificar
su estado en la consulta INSERT.
Generalmente, durante el registro inicial, todos los usuarios
de nuestro sitio reciben el estado más bajo,
es decir, en nuestro caso 'user':
<?php
$query = "INSERT INTO users
SET login='$login', password='$password', 'status'='user'";
?>
Los estados más altos usualmente los asigna un administrador. Él ve la lista de usuarios en el panel de administración y puede hacer a cualquiera, por ejemplo, administrador.
¿Cómo aparecerá entonces el primer administrador en el sitio? Lo más simple: registrar un usuario normal y a través de PhpMyAdmin hacerlo administrador.
Una opción más compleja: durante el primer lanzamiento en el hosting, ejecutar la instalación del sitio, preguntar mediante un formulario el login y la contraseña y registrar al primer usuario del sitio, asignándole el estado de administrador.
Modifique el código de registro para que todos los usuarios agregados
reciban el estado 'user'.
Cambie manualmente el estado de algún usuario
a 'admin'. Inicie sesión
con este usuario.
Cree una página admin.php a la que
solo tengan acceso los usuarios con
estado 'admin'.
Muestre en la página admin.php la lista
de todos los usuarios registrados en su
sitio en forma de tabla. Que la tabla tenga
dos columnas: login y estado.
Modifique la tarea anterior para que aparezca una tercera columna, con un enlace mediante el cual el administrador pueda eliminar cualquier usuario.
Modifique la tarea anterior para que las filas de la tabla con administradores se coloreen en rojo, y las de usuarios normales - en verde.
Modifique la tarea anterior para que aparezca una columna más. En esta columna el administrador podrá cambiar los permisos de los usuarios. Hágalo de modo que para todos los usuarios normales aparezca un enlace hacerlo administrador, y para el administrador - un enlace hacerlo usuario.
Haga que en todas las páginas del sitio, en el encabezado, el usuario registrado vea su login y estado.
Modifique la tarea anterior para que para los administradores en el encabezado del sitio también se muestre un enlace al panel de administración.