Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
class IndexController extends ApplicationController { public $template = "menu_admin"; function home(){ $this->render_partial('alertas/usuarios'); $this->render_partial('alertas/empresas'); } }
class ControllerBase { function init(){ Kumbia::route_to("controller: index", "action: home"); } public function before_filter(){ $controlador = $this->controller_name;; $accion = $this->action_name; if($controlador!='admin'){ if(!Session::isset_data('usuarios_id')){ $this->route_to('controller: admin', 'action: valida'); } } } }
class AdminController extends ApplicationController { /** * Aqui sale el formulario de Iniciar Sesión * */ public function index(){ } /** * Esta accion es ejecutada por application/before_filter en caso * de que el usuario trate de entrar a una accion a la cual * no tiene permiso * */ public function no_acceso(){ } /** * Validacion si el login y el password son correctos */ public function valida(){ if($this->Usuarios->find_first("login = '{$this->request('login')}' and password = md5('{$this->request('password')}')")){ /** * Almaceno en la variable de session el id del usuario * autenticado */ Session::set_data('usuarios_id', $this->Usuarios->id); /** * Lo redireccionos al formulario de clientes */ return $this->redirect('backend/index/home'); } else { Flash::error('Usuario/Clave incorrectos'); return $this->route_to('action: index'); } } public function salir(){ Session::unset_data('usuarios_id'); Flash::notice('La session se ha cerrado'); return $this->route_to('action: index'); } }
Comentarios
Saludos
$this->Usuarios->find_first("login = '{$this->request('login')}'
and password = md5('{$this->request('password')}')")
ahi en esa evaluacion veo el problema mi recomendacion seria que primero preguntes si ese usuario existe, es decir las mismas condicones pero utilizando el metodo exist()...
Porq veo que el entra en ambas condiciones y por ende te muestra los partial porq hace el redirect
Saludos
He probado a cambiar el metodo por exists(), pero el resultado sigue siendo igual.
No se si tendra algo que ver, pero para el resto de controladores me funciona bien y extienden de StandardForm y el controlador index/home, que es el que llama a los render_partial extiende de ApplicationController.
Saludos
Si escribo la URL: <!-- m --><a class="postlink" href="http://kumbia.topcargas/backend/">http://kumbia.topcargas/backend/</a><!-- m -->
Me muestra el formulario de login y me parsea los 2 partia, con lo cual falla.
Si escribo la URL: <!-- m --><a class="postlink" href="http://kumbia.topcargas/backend/aeropuertos">http://kumbia.topcargas/backend/aeropuertos</a><!-- m -->
Me muestra el siguiente error:
Fatal error: Class 'AdminController' not found in \library\kumbia\generator\generator.php(102) : eval()'d code on line 1
Pero si a aeropuertos le creo un metodo llamado index() ya no falla con lo cual he llegado a la conclusion de que necesita leer el metodo index. Para evitar tener que escribirlo en todos los controladores, lo he creado en el fichero application, del cual heredan todo los controladores.
Pues bien si lo creo en applicatio tambien falla, al igual que pasaba cuando no tenia el metodo index()
Saludos
Saludos
Esto es distinto ya que son clases, y los standform nunca hederan de /helpers/main.php
Me parece raro que a nadie antes le hay pasado algo parecido.
Sigo sin poder resolver el problema
Saludos
Saludos
AdminController -> Clase para administrar la seguridad
BaseController
IndexController
Si necesita algun otro codigo pidemelo.
Muchas gracias
Dando vueltas al asunto me he dado cuenta que si cambio
Por esto otro
Se soluciona el problema, ante esto creo que un route to ejecuta el nuevo controllador que le pasas, pero cuando termina con este sigue ejecutando el anterior, al contrario redirect no lo hace y por eso funciona bien.
Por favor algun entendido si me puede corregir
Saludos
Pero por lo que he visto el redirect llama a otro controller el cual se ejecuta y finaliza.
Pero el route_to me da la impresion que llama a otro controller este se ejecuta y cuando acaba sigue con su ejecucion normal.
Si no encuentro otra explicacion
Saludos