Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/06/2009, 07:41
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 7 meses
Puntos: 2237
Respuesta: Permisos Usuarios.

Yo tengo una tabla de permisos:

idpermiso varchar(30)
grppermiso text
descpermiso text (Descripcion del permiso, solo para identificarlos en el panel de control)

idpermiso - modulo-seccion-accion, ejemplos: noticias-categoria-agregar, noticias-noticia-editar, noticias-comentario-agregar
grppermiso - Almaceno los grupos, encerrados entre corchetes, ejemplo: [1][3][4]

Para saber los permisos de cada modulo:
SELECT idpermiso WHERE idpermiso LIKE 'noticias-%' AND grppermiso LIKE '%[$grupo]%'

Cargo los resultados en $permisos y, para saber si el usuario puede realizar o no una accion: if(in_array('noticias-noticia-agregar', $permisos))

Si el usuario es el #1 (Super admin) pongo todos los permisos activados, sin consultar la base de datos.

Para administrarlos, verifico si la cadena cargada de la base de datos no esta vacia, de ser asi, elimino el primer y ultimo caracter y despues creo una matriz:
$grupos_con_permiso = explode('][', $permisos[$indice]);

Para actualizar solo hago el proceso anterior, pero a la inversa.
__________________
- León, Guanajuato
- GV-Foto