La PC servidor tendrá el CentOS como SO (Apache y MySQL, como les mencioné). Es una web pequeña (casi un piloto) así que usaré plantillas de bootstrap para el diseño.
El tema es al definir los usuarios y sus permisos. En principio sólo habrá dos niveles:
- Usuario (común)
- Administrador (todos los permisos).
Éstos se corresponden con un campo Nivel (bit) en la tabla Usuario.
Lo que no sé es cuál es la manera idónea para restringir el acceso de los usuarios a las páginas del sistema.
Pienso en el principio de obtener el Nivel del usuario al momento del login, y a partir de ahí redireccionarlo a otra página según su nivel, que muestre acceso sólo a lás páginas PHP que "le corresponde" usar... Cada archivo PHP debería verificar en la cabecera el nivel de quien se logueó, para que nadie con nivel "usuario" acceda a formularios de un "Admin" por ejemplo.
Quería preguntarles qué esquema o principio me conviene seguir, porque ése que tengo en mente no me convence para nada...
— ¿Podría trabajar lo de los usuarios a nivel de administración de base de datos? O sea que según el login, el user utilice la BD como root o como algún otro usuario creado a este efecto... Ya los privilegios los trabajaría en MySQL con permisos sobre cada tabla.
— ¿Y trabajándolo a nivel de tablas? He visto por ahí que crean los permisos en tablas de la BD, y en éstas guardan los nombres de las páginas que cada usuario podrá ver según su nivel.
Espero que me puedan indicar una forma general de trabajo, la más acostumbrada o ideal en estos casos. El hecho es que posteriormente trabajaré una Intranet mucho más grande, con decenas de usuarios y tablas con millones de registros, así que me gustaría saber por su experiencia cuál es la solución más idónea para éste y futuros problemas.
Muchas gracias a todos.