CakePHP: Bake y ACL

Siguiendo con CakePHP me encontré con una serie de tutorials muy interesantes que se pueden seguir acá registrándote o bien por acá si no querés registrarte en otro sitio más. El último link es a un sitio llamado scribd que merece de por sí solo un post. De entrada podemos decir que se propone ser la biblioteca abierta de documentos más grande del mundo.

Habiendo corregido el tema de scaffold, pude seguir haciendo pruebas y cada vez me gusta más. Pero como bien indica la documentación, el scaffold (andamios) no son más que eso, andamios. Son una base para ir haciendo algo y después ir extendiendo uno y dándole a la aplicación el uso original para el que estaba diseñada. Sin embargo es un buen andamiaje para la obra.

Es posible “exportar” el código del sacffold mediante una herramienta de línea de comandos llamada Bake. Esta se encuentra en cake/scripts/bake.php. Se pueden exportar los modelos, las vistas y el controlador. De esta manera ya tenemos el esqueleto de la aplicación con su index (listado) y un abm. Ahí podemos modificar las views al estilo y funcionalidad que queramos. Hay que tener cuidado de no sobreescribir el trabajo que hayamos hecho en los controladores, por eso es recomenrable hacer primero esta exportación y después trabajar sobre los controladores particulares de nuestra aplicación.

Contento ya con esto, vi otra funcionalidad: las Access Control Lists (ACL o listas de control de acceso) que nos ofrecen un modelo de control de acceso a objetos. La idea es sencilla: por un lado tenemos objetos (usuarios y grupos de acceso) que quieren acceder a otros objetos(artículos, productos, cualquier cosa que queremos regular su acceso). A estos que quieren acceder se los llama ARO u Access Request Objects. Es posible también definir una estructura de arbol que nos permite crear grupos de acceso. A los objetos a los que se quiere acceder se los llama ACO u Access Control Objects. Con estas dos entidades podemos definir un sistema de control de acceso asociando los ARO con los ACO. Esta es una relación muchos a muchos y permite hasta agregar niveles de acceso a determinadas funciones (read, update, create y delete) .

Para el que siga el tutorial de IBM, con la versión 1.1.15.5144 tuve los siguientes problemas:

  • En el código del form de registro de usuarios el tutorial usa para verificar que se haya envíado el form un if y la condición es : (!empty($this->params[‘form’])) y también intenta grabar el objeto con $this->params[‘form’]. Eso no me anduvo. Reemplazando en todos los casos eso por $this->data la cosa sale como trompada de loco.
  • Cuando quise dar de alta los ARO con la herramienta de línea de comandophp acl.php create aro 1 null Users

    sale un error. Esto se corrige reemplazando el null por 0. No es lo más elegante pero funciona. Ya que no debería haber referencia a un item 0.

    php acl.php create aro 1 0 Users

Bueno, con esas dos salvedades, el tutorial es muy recomendable. Hasta la próxima.

Etiquetas: , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: