Una aclaración mas conceptual. Ahora el controlador de la operación acceso no tiene mas logica de login, la desacoplamos!
La operación de acceso (controlador) en principio no necesitan modificarla.
El controlador solamente recorre y le da control a los distintos mecanismos de login (autentication_provider) que tengan habilitados en instalacion/login.php como dijo Leo.
Ustedes se podrían agregar su propio provider con algo asi:
'fcen' => array(
'activo' => true,
'clase' => 'modelo\\autenticacion\\auth_fcen', //tienen que crear esta clase con su logica!
'parametros' => array(
//opcional, cosas que quieran cambiar por configuracion
)
),
Luego, esta clase auth_fcen la pueden extender de auth_form o de auth_con_sesion (miren de referencia auth_form).
El flujo de login va a llamar primero a su get_modelo() y lo que retornen ahi se los deja en el twig acceso/login/default.twig como ‘this.data.providers.fcen’ para que puedan configurar la vista. (esta si la tienen que personalizar)
Finalmente, la url a donde tienen que mandar los datos del form va a ser asi, y van a poder procesarlo en el metodo ‘autenticar’ de la misma clase.**
kernel::vinculador()->crear('acceso', 'index', array('auth' => 'fcen'));
o genericamente
kernel::vinculador()->crear('acceso', 'index', array('auth' => $this->get_id())),
** Si la autenticación no es correcta, pueden guardar los errores, y en el mismo pedido se va a volver a llamar get_modelo() para que puedan mostrar los mensajes de error. Se entiende el flujo?
Adicional. El helper de los providers: $this->get_clase_usuarios()->autenticar_… instancia la clase personalizable “modelo\autenticacion\fuente_usuarios_guarani”. Pueden agregar ahi un metodo autenticar_fcen para hacer las consultas y validaciones sobre el usuario logueado.
Saludos!