PlatesPHP: Sistema de plantillas para Codeigniter 3
PlatesPHP: Sistema de plantillas para Codeigniter 3
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Vamos a ver como crear una sencilla Acl en codeigniter, lista de control de acceso. Ésto será muy útil si queremos que nuestro sistema sea escalable, sencillo de mantener a la par que limpio, no queremos que nuestro código sea complicado de leer por otros programadores, todo lo contrario.

Ya que nuestro ejemplo trata sobre controles de acceso, que mejor momento que detectar este evento qué con hooks, en nuestro caso, creo que un buen evento es el que sucede con post_controller_constructor, el cuál es llamado inmediatamente después que el controlador se haya instanciado, pero antes que haya ocurrido cualquier llamada a un método, así ya habremos cargado, por si es necesario, todas las librerías que puedan tener dependencias, de otra forma, podemos tener errores en nuestro código.

Crear nuestra propia Acl en codeigniter

Lo primero que debemos hacer es crear una clave de encriptación para nuestras sesiones en el archivo config.php y modificar la clave enabled_hooks del array config a TRUE.

Ahora debemos seguir los siguientes pasos para crear nuestro hook, abre el archivo config/hooks.php y añade el siguiente código.

De esta forma le decimos a codeigniter que en el evento post_controller_constructor tenga en cuenta, del archivo Acl.php alojado en la carpeta hooks, el método llamado auth que está dentro de la clase Acl, así de sencillo.

Ahora abre el directorio application/hooks y crea un archivo llamado Acl.php y añade el siguiente código, el cuál llevará a cabo el control de acceso dentro de nuestra aplicación.

Si quieres probar si funciona correctamente, crea los controladores administration, control_panel, register, login, dashboard y home y añade a cada uno el siguiente código(hazle a cada uno las modificaciones dependiendo de cuál sea), este puede valer para el home.

Eso es todo, si intentas acceder a zonas donde no tienes permisos, serás enviado al primer elemento del array que corresponde a tu perfil con un mensaje.

En nuestro caso lo hemos hecho tomando simplemente el primer segmento de la url y con arrays estáticos, haz tu propio código dependiendo de la url completa y guarda toda esta información en la base de datos, eso ya es cosa tuya.