Foros del Web » Programando para Internet » PHP »

sistema permisos-usuarios, accion sobre permisos, hacerlo dinamico

Estas en el tema de sistema permisos-usuarios, accion sobre permisos, hacerlo dinamico en el foro de PHP en Foros del Web. tengo el siguiente problema, tengo un codigo desde un index y una clase, en la que me permite dar permisos a usuarios deacuerdo a un ...
  #1 (permalink)  
Antiguo 05/01/2012, 14:58
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cordoba
Mensajes: 42
Antigüedad: 9 años, 6 meses
Puntos: 0
sistema permisos-usuarios, accion sobre permisos, hacerlo dinamico

tengo el siguiente problema, tengo un codigo desde un index y una clase, en la que me permite dar permisos a usuarios deacuerdo a un rol, a dif recursos.
Lo que yo quiero es crear estos permisos dinamicamente y no se como, osea que desde mi sistema pueda crear un nombre de permiso, a este permiso darle una accion(o varias, esto es tambien lo que me traba), como leer,editar,publicar,eliminar, y despues poder darle permisos a un rol, asi con esto seguir utilizando la clase pero mas dinamicamente, lo que me pone en duda tambien es como y que datos ingresar a la tabla, suponiendo que tengo una tabla permisos, con su id, nombre y valor_bit, (aca es donde me trabo) , y si fuera un valor bit como lo ingreso para que al salir este dato yo pueda saber que va a ser un leer, o editar, o pubilcar o borrar.
Lo que estoy intentando hacer es usar tres tablas, una permisos, como describi anteriormente y otra usuarios y una intermedia, usuarios - permisos para relacionar el usuario y su permiso,

el codigo que es fijo actualmente es el siguiente:

en el INDEX.PHP
Código PHP:
Ver original
  1. <?php
  2. require_once 'permisos.php';
  3. //We define roles
  4. $leer = permisos::LEER;
  5. $editar = $leer | permisos::EDITAR;
  6. $crear = $editar | permisos::PUBLICAR;
  7. $publicar = $crear & ~permisos::EDITAR;
  8. $todos = $crear | permisos::ELIMINAR;
  9.  
  10. function checkPermisos($roles, $permisos)
  11. {
  12.     foreach ($roles as $k => $v) {
  13.         echo '<b>', $k, '</b><br />';
  14.         foreach ($permisos as $pk => $pv) {
  15.             if ($v & $pv)
  16.                 echo '- puede ', $pk, '<br />';
  17.             else
  18.                 echo '- no puede ', $pk, '<br />';
  19.         }
  20.         echo '<br />';
  21.     }
  22. }
  23.  
  24. $roles = array(
  25.     'invitado'      => $leer,
  26.     'Editor'        => $editar,
  27.     'Moderador'     => $crear,
  28.     'Publicador'    => $publicar,
  29.     'Administrador' => $todos
  30. );
  31.  
  32. $permisos = array(
  33.     'leer'      => permisos::LEER,
  34.     'editar'      => permisos::EDITAR,
  35.     'publicar'   => permisos::PUBLICAR,
  36.     'eliminar'    => permisos::ELIMINAR
  37. );
  38.  
  39. checkPermisos($roles, $permisos);

y la clase, PERMISOS.PHP

Código PHP:
Ver original
  1. <?php
  2.  
  3. class permisos
  4. {
  5.    
  6.     const LEER              = 1;
  7.  
  8.  
  9.     const EDITAR              = 2;
  10.  
  11.    
  12.     const PUBLICAR           = 4;
  13.  
  14.  
  15.     const ELIMINAR            = 8;
  16. }


ATTE saludos
  #2 (permalink)  
Antiguo 05/01/2012, 15:03
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 11 años, 10 meses
Puntos: 641
Respuesta: sistema permisos-usuarios, accion sobre permisos, hacerlo dinamico

podrias usar un acl.

o podrias crear una tabla permisos y darles un valor

de ahi comprobar si el usuario contiene en sus permisos por ejemplo 1 => leer, 2 =>editar etc.

es pura imaginación :D
  #3 (permalink)  
Antiguo 06/01/2012, 06:26
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cordoba
Mensajes: 42
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: sistema permisos-usuarios, accion sobre permisos, hacerlo dinamico

Cita:
Iniciado por memoadian Ver Mensaje
podrias usar un acl.

o podrias crear una tabla permisos y darles un valor

de ahi comprobar si el usuario contiene en sus permisos por ejemplo 1 => leer, 2 =>editar etc.

es pura imaginación :D
Un acl?? estoy usando programacion estructurada, ... se implementara bien un acl en programacion estructurada?

lo de darles un valor como me ejemplificas es como pienso, pero asi es como lo pienso tambien, pero si lo pones a codificar no solo es asi, por que son valores bit, gracias igual
  #4 (permalink)  
Antiguo 06/01/2012, 09:13
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 11 años, 10 meses
Puntos: 641
Respuesta: sistema permisos-usuarios, accion sobre permisos, hacerlo dinamico

no necesariamente tendria que ser bit a bit.

1 => leer
2 => leer, publicar
3 => leer, publicar, editar
4 => leer, publicar, editar, eliminar
5 => leer, publicar, editar, eliminar, armaggedon

obviamente es un sistema burdo pero mucho más sencillo de implementar que un acl.

es solo una idea.

Etiquetas: dinamico, hacerlo, permisos, sistema, tabla, acciones, usuarios
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 11:02.