Definición de operadores bit a bitNota: Recomiendo que lean este enlace, ya que no brindaré información al respecto en este aporte y es importante tener claro qué es lo que hacen los operadores bit a bit (especialmente el de AND => &) para poder entender cómo funciona este sistema de gestión de usuarios con operadores bit a bit.
Código PHP:
Esta forma de hacerlo es buena si deseas que el usuario que crees entre a una parte específica de la aplicación. Ver original
<?php /** * Definir los permisos en constantes */ /** * Para dar permisos solo tienes que sumar los bits * En la siguiente variable tiene permiso para ver y crear * va a tener un valor de 9 (1 => ACCESS_VIEW + 8 => ACCESS_CREATE) * Para un usuario que quieras que vea todo, debes sumar todos los * valores. En este caso sería un total de 31 */ //$access = 31; //Puede acceder a todo $access = 9; /** * Función para verificar si tiene los permisos */ function getAccess($bit1, $bit2){ return (((int)$bit1 & (int)$bit2) == 0) ? false : true; } if(getAccess($access, ACCESS_VIEW)) echo 'Tiene permisos de ver <br />'; else echo 'No tiene permisos de ver <br />'; if(getAccess($access, ACCESS_ADD)) echo 'Tiene permisos de añadir <br />'; else echo 'No tiene permisos de añadir <br />'; if(getAccess($access, ACCESS_EDIT)) echo 'Tiene permisos de editar <br />'; else echo 'No tiene permisos de editar <br />'; if(getAccess($access, ACCESS_CREATE)) echo 'Tiene permisos de crear <br />'; else echo 'No tiene permisos de crear <br />'; if(getAccess($access, ACCESS_ADMIN)) echo 'Tiene permisos de administrar <br />'; else echo 'No tiene permisos de administrar <br />';
Otra forma de usar este tipo de gestión de usuarios (no recomendado) es otorgando el permiso de acuerdo al rol. Es decir si el usuario tiene permiso de administrar, puede ver todo. La forma como lo puedes lograr es usando el símbolo de >=.
Código PHP:
El usarlo de esta forma se pierde el sentido de usar la gestión de usuarios con los operadores bit a bit. Ya que también esta forma se puede usar con tan solo indicar números corridos como 1, 2, 3, 4 y 5.Ver original
<?php /** * Definir los permisos en constantes */ /** * Para dar permisos solo tienes que indicar el bit que le corresponde * En la siguiente variable tiene permiso para ver, añadir y editar * va a tener un valor de 4 (4 => ACCESS_EDIT) * Para un usuario que quieras que vea todo, debe tener el valor mayor, * en este caso es 16 que es el de administrar */ //$access = 16; //Puede acceder a todo $access = 4; if($access >= ACCESS_ADMIN) echo 'Tiene permisos de administrar <br />'; else echo 'No tiene permisos de administrar <br />'; if($access >= ACCESS_CREATE) echo 'Tiene permisos de crear <br />'; else echo 'No tiene permisos de crear <br />'; if($access >= ACCESS_EDIT) echo 'Tiene permisos de editar <br />'; else echo 'No tiene permisos de editar <br />'; if($access >= ACCESS_ADD) echo 'Tiene permisos de añadir <br />'; else echo 'No tiene permisos de añadir <br />'; if($access >= ACCESS_VIEW) echo 'Tiene permisos de ver <br />'; else echo 'No tiene permisos de ver <br />';
Edito:
Si tienen otro método, no duden en colocarlo, será de beneficio para muchos