Foros del Web » Programando para Internet » PHP »

Permisos Usuarios.

Estas en el tema de Permisos Usuarios. en el foro de PHP en Foros del Web. Estoy diagramando una aplicacion web Acabo de entrar en el tema de los permisos de grupos y usuarios por modulo y acciones. Ejemplo usuario x ...
  #1 (permalink)  
Antiguo 22/06/2009, 07:16
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Permisos Usuarios.

Estoy diagramando una aplicacion web
Acabo de entrar en el tema de los permisos de grupos y usuarios por modulo y acciones.

Ejemplo usuario x del grupo x puede ver y editar en el modulo x pero no puede insertar en dicho modulo, etc.


Ya he visto algunos ejemplo de hacerlo con una especie de calculos binarios.
Otro es crear una tabla con todo los modulos y sus acciones.

Si has disenado algo parecido , me podrias decir una pista de que metodo utilizar
O alguna webs que hablen al respecto .

Gracias.
  #2 (permalink)  
Antiguo 22/06/2009, 07:35
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Permisos Usuarios.

He encontrado una pagina que habla al respecto
Por si alguien mas le interesa.

http://www.maestrosdelweb.com/editorial/gestusr/

Ademas de esa web que otra web conocen ustedes?
  #3 (permalink)  
Antiguo 22/06/2009, 07:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 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
  #4 (permalink)  
Antiguo 22/06/2009, 08:07
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Permisos Usuarios.

Gracias Triby Por tu aportacion.

Otra opcion que ya he analizado es

Código:
Tabla de modulos y permisos
Id	Modulo 		| insert 	| update |	 Delete  |	 Select | 
1	Noticias           1                0           0             1                    






Tablas de relacion Modulo y Grupos 

Id	Id_grupo	   Modulos
1	1			1
La administracion por grupo no es tan complicada , por que en todo caso trabajas con permisos puesto por el operador o administrador general de la aplicacion.

El problema o la dificulta se presenta cuando deseas que sea el mismo usuario que asigne esos permisos.

Ejemplo en este caso no existiera grupos como administrador , operador de finidos.

Si no que creas un usuario , que pueda poder decir , cuales usuarios el desea que tenga acceso a que modulo y a que acciones .

Ya he pensado en hacer algo parecido a lo de arriba , pero he analizado que tengo que crear un perfil por usuario y por modulos

Usuarios X Modulos

Código:
Id    |   Id_User | Id_Modulo  | Permisos
1           1         1            insert | update | delete | view | print

Y realmente esa opcion la veo como muy poco atractiva o quisas se la unica forma de hacerlo .
Que opinas ?
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 15:46.