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 usuarios en una aplicacion. |
− | Nos basaremos en el uso de la | + | Nos basaremos en el uso de la libreria '''Acl2''' de KumbiaPHP. |
− | === | + | === 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, todo ellos segun los criterios establecidos en el archivo ini. | ||
− | |||
=== 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 básico, ('''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 | ||
Línea 142: | Línea 147: | ||
==== Definiendo los Roles ==== | ==== Definiendo los Roles ==== | ||
− | En el ejemplo se han definido dos roles, uno llamado '''alumno''' y otro llamado '''administrador''', el rol "alumno" tiene un valor "null" lo que significa que no hereda privilegios de ningun otro rol, mientras que el rol '''administrador''' tiene como valor "alumno" con lo cual estamos indicando que administrador va a heredad todos los privilegios de alumno | + | En el ejemplo se han definido dos roles, uno llamado '''alumno''' y otro llamado '''administrador''', el rol "alumno" tiene un valor "null" lo que significa que no hereda privilegios de ningun otro rol, mientras que el rol '''administrador''' tiene como valor "alumno" con lo cual estamos indicando que administrador va a heredad todos los privilegios de alumno. |
Línea 148: | Línea 153: | ||
Las siguientes secciones variaran de acuerdo a los roles existentes en la aplicación, es decir, si existen tres roles, deberán haber tres secciones cada una con el nombre de un rol, en el ejemplo existen dos secciones para los roles, una sección llamada '''[alumno]''' y otra llamada '''[administrador]''', y en cada una de ellas se han definido los recursos a los cuales pueden acceder. | Las siguientes secciones variaran de acuerdo a los roles existentes en la aplicación, es decir, si existen tres roles, deberán haber tres secciones cada una con el nombre de un rol, en el ejemplo existen dos secciones para los roles, una sección llamada '''[alumno]''' y otra llamada '''[administrador]''', y en cada una de ellas se han definido los recursos a los cuales pueden acceder. | ||
− | En el caso del rol '''[alumno]''' se han definidon definido tres recursos, '''index = *''' (significa que alumno puede acceder al controlador index, y el asterisco | + | En el caso del rol '''[alumno]''' se han definidon definido tres recursos, '''index = *''' (significa que alumno puede acceder al controlador index, y el asterisco indiaca que puede acceder a todas las vistas de dicho controlador) , '''menu = *''' (puede entrar al controlador menu, siempre y cuando se acceda a alguna de las vistas indicadas [index,consultas,reportes]) , y por ultimo '''admin/usuarios''' ( puede entrar al modulo admin, controlador usuarios, acciones index y agregar ). |
− | |||
==== Definiendo los Templates ==== | ==== Definiendo los Templates ==== | ||
− | Ademas se puede definir una sección llamada '''[templates]''' en la que se establecen las plantillas a utilizar por cada rol (muy util cuando la vista cambia dependiendo del usuario), en el ejemplo al rol | + | Ademas se puede definir una sección llamada '''[templates]''' en la que se establecen las plantillas a utilizar por cada rol (muy util cuando la vista cambia dependiendo del usuario), en el ejemplo al rol alumno se le ha asignado el template "alumno" y al rol administrador se le ha asignado el template "admin" |
+ | |||
+ | |||
=== Usando la Librería === | === Usando la Librería === | ||
− | Usaremos el metodo '''initialize''' de la clase | + | Usaremos el metodo '''initialize''' de la clase AppController para controlar los accesos en todas los controladores de la aplicación, ya que todos los controladores heredan de dicha clase. |
<source lang=php> | <source lang=php> | ||
Línea 192: | Línea 198: | ||
Flash::error("No posees suficientes PRIVILEGIOS para acceder a: {$modulo}/{$controlador}/{$accion}"); | Flash::error("No posees suficientes PRIVILEGIOS para acceder a: {$modulo}/{$controlador}/{$accion}"); | ||
− | //no dejamos que entre | + | //no dejamos que entre a la direccion |
View::select(NULL,'no_permiso'); | View::select(NULL,'no_permiso'); | ||
− | |||
} | } | ||
} | } | ||
Línea 201: | Línea 206: | ||
</source> | </source> | ||
− | |||
Aquí un ejemplo de una denegación de acceso | Aquí un ejemplo de una denegación de acceso | ||
Línea 207: | Línea 211: | ||
− | Esta es una manera sencilla de trabajar con lista de acceso, manteniendo la configuración de los roles a traves de un archivo .ini sin necesidad de realizar ningun tipo de programación | + | Esta es una manera sencilla de trabajar con lista de acceso, manteniendo la configuración de los roles a traves de un archivo .ini sin necesidad de realizar ningun tipo de programación :-) |
− | |||
---- | ---- | ||
Realizado por: Manuel Aguirre (manuel_j555) | Realizado por: Manuel Aguirre (manuel_j555) | ||
− | |||
− | |||
− |