Definición de sistema de gestión de usuarios 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:
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 />';
Esta forma de hacerlo es buena si deseas que el usuario que crees entre a una parte específica de la aplicación.
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:
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 />';
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.
Edito:
Si tienen otro método, no duden en colocarlo, será de beneficio para muchos