Edición de «ACL Configurado a Traves de un Archivo ini»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
+ | [[Categoría:Tutoriales KumbiaPHP]] | ||
+ | |||
{{cleanupbox | {{cleanupbox | ||
− | |texto ='''Este | + | |texto ='''Este Tutorial se encuentra actualmente en proceso de edición''' |
}} | }} | ||
+ | |||
+ | |||
=== Descripción === | === Descripción === | ||
− | A traves de este tutorial podemos ver como se puede trabajar una lista de control de | + | A traves de este tutorial podemos ver como se puede trabajar una lista de control de acceso por medio de un archivo .ini , haciendo asi mas facil configurar los roles y los privilegios de los mismos en una aplicacion. |
− | Nos basaremos en el uso de la | + | Nos basaremos en el uso de la libreria '''Acl2''' de KumbiaPHP. |
− | === | + | === Creando una libreria para manejar las listas de control de acceso === |
− | Esta clase nos | + | Esta clase nos permitira llevar un control de los distintos tipos de usuario a travez de un archivo.ini, la clase se llamará MyAcl y estará hubicada en el directorio: '''proyecto/app/libs/my_acl.php''' |
<source lang=php> | <source lang=php> | ||
Línea 105: | Línea 109: | ||
</source> | </source> | ||
− | ==== | + | ==== Descripcion y uso de la libreria MyAcl ==== |
+ | |||
+ | La libreria MyAcl se encarga de controlar los accesos de los usuarios en la aplicacion, verificando si cada usuario tiene los permisos necesarios para acceder ó no a ciertos modulos de la misma. | ||
− | |||
=== El Archivo .INI === | === El Archivo .INI === | ||
− | La clase MyAcl necesita de un archivo .ini para crear el control de los accesos en la | + | La clase MyAcl necesita de un archivo .ini para crear el control de los accesos en la aplicacion, aqui tenemos un ejemplo de un archivo ini basico, ('''proyecto/app/config/privilegios.ini''') : |
<source lang=ini> | <source lang=ini> | ||
Línea 117: | Línea 122: | ||
[roles] ; tipos de usuario que exisitirán en la aplicacion | [roles] ; tipos de usuario que exisitirán en la aplicacion | ||
alumno = null ;un rol alumno que no extiende de ningun otro rol | alumno = null ;un rol alumno que no extiende de ningun otro rol | ||
− | administrador = | + | administrador = usuario ; un rol usuario que extiende de alumno, con lo que obtiene sus privilegios |
; a partir de aca se definiran los privilegios por cada rol | ; a partir de aca se definiran los privilegios por cada rol | ||
[alumno] ;rol alumno | [alumno] ;rol alumno | ||
− | index = * ;puede entrar al controlador index y a todas sus | + | index = * ;puede entrar al controlador index y a todas sus acciones |
− | menu = | + | menu = * ;puede entrar al controlador menu y a todas sus acciones |
admin/usuarios = index,agregar ; puede entrar al modulo admin , controlador usuarios acciones index y agregar solamente | admin/usuarios = index,agregar ; puede entrar al modulo admin , controlador usuarios acciones index y agregar solamente | ||
+ | reportes = * ;puede entrar a todas las vistas del controlador reportes | ||
[administrador] ;rol administrador | [administrador] ;rol administrador | ||
Línea 136: | Línea 142: | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang=php> | <source lang=php> | ||
Línea 178: | Línea 161: | ||
final protected function initialize() { | final protected function initialize() { | ||
− | + | $this->validar_sesion(); | |
− | $acl = new MyAcl( | + | } |
− | $modulo = $this->module_name; | + | |
− | $controlador = $this->controller_name; | + | protected function validar_sesion() { |
− | $accion = $this->action_name; | + | $acl = new MyAcl(); |
− | + | $modulo = $this->module_name; | |
− | + | $controlador = $this->controller_name; | |
− | + | $accion = $this->action_name; | |
$privilegio = Auth::get('privilegio'); | $privilegio = Auth::get('privilegio'); | ||
− | if (!$acl->check($privilegio, $modulo, $controlador, $accion)) { | + | if (!$acl->check($privilegio, $modulo, $controlador, $accion)) { |
− | |||
− | |||
Flash::error("No posees suficientes PRIVILEGIOS para acceder a: {$modulo}/{$controlador}/{$accion}"); | Flash::error("No posees suficientes PRIVILEGIOS para acceder a: {$modulo}/{$controlador}/{$accion}"); | ||
− | + | $this->tiene_permiso = false; | |
− | |||
− | |||
− | |||
} | } | ||
} | } | ||
Línea 201: | Línea 179: | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Línea 213: | Línea 184: | ||
Realizado por: Manuel Aguirre (manuel_j555) | Realizado por: Manuel Aguirre (manuel_j555) | ||
− | |||
− | |||
− |