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:
{{cleanupbox
+
[[Categoría:Tutoriales KumbiaPHP]]
|texto ='''Este ejemplo es funcional para la [[KumbiaPHP_Framework_Versión_1.0_Beta2| Versión Beta2]]'''
 
}}
 
  
 
=== Descripción ===
 
=== Descripción ===
Línea 11: Línea 9:
 
=== Librería para manejar las listas de control de acceso ===
 
=== Librería para manejar las listas de control de acceso ===
  
Esta clase nos permitirá llevar un control de los distintos tipos de usuario a traves de un archivo .ini, la clase se llamará '''MyAcl''' y estará ubicada en el directorio: '''proyecto/app/libs/my_acl.php'''
+
Esta clase nos permitirá llevar un control de los distintos tipos de usuario a traves 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 148: Línea 146:
 
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 indica 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 ).
+
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 ).
  
El rol '''[administrador]''' no tiene ningun recurso establecido en el archivo .ini, con lo cual estamos diciendo que administrador tiene privilegios para entrar a todos los modulos, controladores y acciones del sistema ( en el ejemplo no era necesario que administrador heredará de alumno ya que le estamos dando todos los privilegios, solo lo hacemos heredar para que se vea que existe dicha posibilidad).
 
  
 
==== 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 '''alumno''' se le ha asignado el template "alumno" y al rol '''administrador''' se le ha asignado el template "admin"
+
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 '''AppController''' para controlar los accesos en toda la aplicación, ya que todos los controladores heredan de dicha 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 189:
 
             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 al contenido de la url si no tiene permisos
+
             //no dejamos que entre a la direccion
 
             View::select(NULL,'no_permiso');
 
             View::select(NULL,'no_permiso');
            return false;
 
 
         }
 
         }
 
     }
 
     }
Línea 201: Línea 197:
  
 
</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 202:
  
  
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 en PHP :-)
+
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)
 
[[Categoría:Tutoriales KumbiaPHP]]
 
[[Categoría:Tutoriales KumbiaPHP Beta2]]
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: