Problema con los formularios y variables de sesion

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

  • 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) )

    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...
    public function before_filter($controller, $action, $id){
    			
    			if($Session::get_data('usuario') == null){
    		 $this->redirect("acciones/verLogin?msg=Registrese para esta Operacion", 2); 
    			   return false;
    			}
    		}
    

    Esta es la idea de este metodo solo necesitas implementarlo...
Sign In or Register to comment.