PHP - Intranet PHP+MySQL. Duda con los permisos de usuarios

 
Vista:
sin imagen de perfil

Intranet PHP+MySQL. Duda con los permisos de usuarios

Publicado por Antonio (1 intervención) el 01/05/2015 22:04:58
Hola con todos. Estoy empezando a crear una Intranet en PHP y MySQL, pero tengo una duda que no me deja seguir adelante: se trata de la creación de usuarios y los permisos que éstos tengan en la Web.

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Intranet PHP+MySQL. Duda con los permisos de usuarios

Publicado por xve (6935 intervenciones) el 02/05/2015 10:07:11
Hola Antonio, dependiendo de la complejidad, puedes utilizar varias maneras... por ejemplo:

1.- Un modo sencillo, es que los usuarios tengan un nivel (como dices), y cada nivel equivale a unas paginas en concreto las cuales no se modifican nunca, o muy poco.

Para este caso, yo utilizo un array de valores, el cual es muy rapado y no carga nada la base de datos.

2.- El modo mas complejo, es que cada usuario tiene diferentes privilegios para diferentes paginas, por lo que no es posible agruparlos en niveles.

En este caso, sin ninguna duda, tienes que utilizar base de datos.


Nunca he trabajado como comentas en la administración de la base de datos... imagínate que en ese servidor tienes 100 dominios,y todos trabajaran como comentas... seria un verdadero lío de usuarios... además, si algún día lo tienes que poner en algún hosting de internet, solo podrás hacerlo si el servidor es dedicado, ya que normalmente en los compartidos únicamente dan un usuario para la base de datos.

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 34
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Intranet PHP+MySQL. Duda con los permisos de usuarios

Publicado por Vainas (262 intervenciones) el 02/05/2015 18:55:18
Buenas:

Lo que estas intentando buscar creo que se llama ACL. El tema es un poco complejo pero hay cosas ya creadas por alli, se trata de pensar que los usuarios pueden pertenecer a un grupo y ese grupo tiene un conjunto de permisos. He conseguido un tutorial aqui http://code.tutsplus.com/tutorials/a-better-login-system--net-3461 que me ha parecido bastate bueno. Una vez implementado el sistema fijate que en tus paginas solo tienes que restringir el acceso al usuario preguntando si tiene determinado rol o determinado permiso.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de graciela
Val: 145
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Intranet PHP+MySQL. Duda con los permisos de usuarios

Publicado por graciela (51 intervenciones) el 02/08/2020 02:37:37
Hola quizás sea tonto pero yo lo solucione así
Cree grupos y luego a cada usuario le asigne un grupo
Luego en las cabeceras de las páginas pregunto, a que grupo pertenece el usuario que está ingresando
Y con un if le doy acceso o exit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar