Yo utilizo un sistema como este ( en cierto modo es similar a como el phpbb maneja los grupos de usuarios).
Una tabla llamada
grupos entonces los registros serian
1|0|Administradores
2|1|Staff
3|2|Moderadores Generales
4|3|Moderadores Sec A
5|4|Moderadores Sec B
6|5|Usuario Registrado
7|6|Usuario Anonimo
Entonces en la tabla de
usuarios , debe existir un campo llamada nivel con un numero asociado a la tabla grupo.
Entonces tengo una funcion, que analiza el nivel grupo de un usuario (el nivel de grupo lo alojo en una variable de session), si el usuario tiene acceso la funcion da true, sino false.
Entonces tengo ciertos secciones que solo la pueden acceder usuarios con nivel 4 o menor (en el caso los Moderadores Sec B y A , el Mod General , Staff y el Administrador) ...
Esta mas que decir, que las secciones deben tener en una tabla, los niveles de acceso posibles
Asi me plantie una logica y estructura para un usuarios con distintos nivel.Es seguro, si tus funciones son seguras
(la variable de nivel de un usuario, no la guardes en una cookie, por q la pueden a llegar a manipular, si es una variable de session, es segura ya que qeda al lado del servidor, o tambien cada vez consultar la variable de nivel de cada usuario sino qeres user sessiones)
Saludos
__________________________________
Tambien puedes utilizar algo ya echo :P , en un momento utilize
SZUserMgnt el cual tiene todo lo que quieres
Código:
* Create user
* Remove user
* Edit user
* Password reminder
* Activation/inactivation
* Custom unlimited security Levels
* SZUserMgnt also comes with authentification functions and different security levels.
Aqui tengo un mirror del script