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.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
