[alert type=”info”]Lectura obligada antes de leer este post: Permisos de usuario usando bitwise PHP[/alert] Me acaban de preguntar como pudieran hacer para seleccionar individualmente permisos para cada usuario ( basándonos en este post ) ( o al menos fue lo que entendí ), voy a proponer una forma de hacerlo, pero recuerden que no es única, es solo para que se puedan dar una idea de como pudieran hacerlo. Pensemos en las siguientes tablas de una base de datos: Permisos de usuario Tenemos nuestra tabla de usuarios de toda la vida, una tabla de permisos y una tabla para relacionar permisos con usuarios, bien, lo primero que tenemos que tener en cuenta es llenar nuestra tabla de permisos con nuestros valores, algo similar a esto ( Recuerden basarse en el post de permisos en bitwise ):
id descripción valor
1 Leer 1
2 Escribir 2
3 Borrar 4
Cada permiso tiene su propio ID asociado.

¿Qué nos queda por hacer?

Guardar registros 🙂 , si queremos que el usuario con id 1 tenga permiso para leer solo ingresamos a la BD Tomando en cuenta que el permiso con id 1 = leer, así podemos asignarle permisos individuales a cada usuario.

¿Qué permisos tiene cada usuario?

De nuevo solo una consulta a la BD Nos devolverá todos los permisos que tiene el usuario, simulemos en PHP el ciclo para definir el valor final de los permisos del usuario ( supongamos que ya tenemos en un array los permisos regresados por la BD, 1 en cada ciclo ): Al final tendremos los permisos para ese usuario justo en $permisos_finales listo para poder comparar con los permisos que necesitemos de nuestra aplicación, para lo que de nuevo recomiendo hacer una clase con nuestros permisos ( si, los mismos que definimos en la BD con todo y sus valores los tenemos que tener en nuestra clase PHP ), para este ejemplo pongo una clase de ejemplo ( valga la redundancia XD ):

¿Y para usarla?

Un ejemplo rápido ya “funcionando” ( tomen en cuenta que estamos pasando por alto muchas cosas que deben implementar según sea su aplicación ): Recuerden que damos muchas cosas por sentado, pero es solo para dar una idea de como aplicar lo que un amigo nos pregunto, el como definir permisos independientes para cada usuario y no usar “perfiles” de permisos y recuerden que meramente es una idea de como se podría hacer. Y si se me ha pasado algo o estoy me equivoqué con algo, genial si me lo dicen para que entre todos podamos corregirlo. Un saludo a todos.

Quizá también te interese

Laravel DB Options
Utilizando ES6 en tus aplicaciones Node
Creando dialogos personalizados en Java con JDIalog
Creando dialogos personalizados en Java con JDIalog
ECMAScript 6, lo nuevo.
  • Pingback: Crear un sistema de permisos de usuarios usando bitwise en PHP | Ser Programador.es()

  • Adrian Ayala

    Excelente post, estoy aprendiendo a programar y creo que visitaré a menudo esta página
    Saludos..

    • Mxrck

      Buen día, muchas gracias por tu comentario.

      A pesar de que los permisos por bitwise están bastante bien, debido a la limitación en el número máximo de permisos que se pueden crear, últimamente me he decantado por permisos basados en JSON.

      Quizá más adelante hago un post al respecto.

      Saludos.