PHP:Gestión de usuarios bit a bit

De Foros del Web

Definiciones

Nota: 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
/**
 * Definir los permisos en constantes
 */
define('ACCESS_VIEW',1);
define('ACCESS_ADD',2);
define('ACCESS_EDIT',4);
define('ACCESS_CREATE',8);
define('ACCESS_ADMIN',16);
 
/**
 * 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 />';


Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales