Necesitaria saber si a alguien se le ocurre que es lo que puede estar pasando en este caso.
Lo que quiero hacer es controlar al inicio de llamar a un controller que se haya iniciado la sesion de una usuario, para esto tengo una pantalla de login que termina asignando una variable de sesion 'usuario' (Session::set_data('usuario', $usuario->nombre) )
Me esta sucediendo que en el caso de el ApplicationController funciona bien pero cuando quiero hacer lo mismo en el StandardForm no me esta funcionando (cabe aclarar que agregue como prueba el metodo redirect a StandardForm)
La pregunta es si existe algun problema con la llamada a Session::get_data('usuario') ?? sucede que la primera vez que ingreso me redirige, luego si vuelvo a acceder al link sin haber realizado el login del usuario me permite acceder como si se hubiera logueado.
Les paso el ejemplo en codigo
Funcion cuando accedo la primera vez pero si inmediatamente accedo nuevamente el link me toma como si
estuviera logeado
class ProductoController extends StandardForm {
public $scaffold = true;
public $source = "producto";
public function __construct(){
if(Session::get_data('usuario') == null)
{
$this->set_form_caption("Productos null");
$this->redirect("acciones/verLogin?msg=Registrese para esta Operacion", 2);
}
else
{
$this->set_form_caption("Productos no null");
}
}
}
Funciona perfecto en cada acceso
class AccionesController extends ApplicationController {
function mostrarProcesos() {
if(Session::get_data('usuario') == null)
{
$this->redirect("acciones/verLogin?msg=Registrese para esta Operacion", 2);
}
}
Comentarios
Exiten dos métodos para manejar validaciones de este tipo en los controladores
before_filter Se ejecuta un filtro (el que tu quieras) antes de ejecutar la accion del controller
after_filter Se ejecuta despues de la accion del controller...
Esta es la idea de este metodo solo necesitas implementarlo...