25/04/2013, 08:15
|
| | | Fecha de Ingreso: marzo-2008 Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 10 meses Puntos: 336 | |
Acumulación de permisos Hola a todos.
Estoy haciendo un sistema de permisos que permite definir distintos niveles de acceso mediante operadores bit a bit donde:
1: Tiene permiso de lectura
2: Tiene permiso de escritura
4: Tiene permiso de eliminación
Un ejemplo de acceso sería:
$SectorA = 3 (En el sector A puede leer y escribir, pero no eliminar)
$SectorB = 7 (Tiene permiso total en el sector B)
$SectorC = 0 (No tiene permisos en el sector C)
recientemente salió el tema de tener más de un perfil de acceso los cuales serían acumulativos, por ejemplo, un usuario que tiene 2 perfiles, uno con acceso 1 y el otro con acceso 3 debería darme un acceso de 3, me explico: Ejemplo 1
Perfil usuario = 1 (solo lectura)
Perfil moderador = 3 (lectura y escritura)
Perfil usuario + Perfil moderador = 3 (Lectura y escritura) Ya que 001 + 010 = 011 Ejemplo 2
Perfil usuario = 1 (solo lectura)
Perfil ejecutor = 4 (solo eliminación)
Perfil usuario + Perfil ejecutor = 5 (Lectura y eliminación) Ya que 001 + 101 = 101 Ejemplo 3
Perfil usuario = 1 (solo lectura)
Perfil moderador = 3 (lectura y escritura)
Perfil ejecutor = 4 (solo eliminación)
Perfil usuario + Perfil moderador + Perfil ejecutor = 7 (Acceso total) Ya que 001 + 010 + 101 = 111
Espero que se entienda, ahora la pregunta, cual sería la forma más optima de hacer esta acumulación de perfiles? existe en PHP algún operador bit a bit que permita acumular bits?
o sea algo que diga que:
1+1=1
1+2=3
2+3=3
1+2+3+4+5+6+7=7
Saludos!
__________________ El objetivo de este foro es orientar al usuario como un favor y no como una obligación.
Yo soy de los que dan puntos por aporte :D |