Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2012, 14:58
webAp
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cordoba
Mensajes: 42
Antigüedad: 12 años, 5 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