Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Acumulación de permisos

Estas en el tema de Acumulación de permisos en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/04/2013, 08:15
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
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
  #2 (permalink)  
Antiguo 25/04/2013, 08:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acumulación de permisos

Pues si hay operadores para trabajar con bits, es curioso que no lo hayas consultado en el manual.

http://php.net/manual/es/language.operators.bitwise.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/04/2013, 08:35
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Acumulación de permisos

gracias por responder, me he puesto a probar los que no conocía hasta que dí con el indicado :)
__________________
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

Etiquetas: permisos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:40.