2013-10-02 2 views
0

мой компонент auth в торте его перенаправление неправильно. Правильный путь идти должен быть:auth component wrong redirect cakephp 2.3

localhost/tlfmovil/usuarios/index 

но Перенаправление

http://localhost/tlfmovil/tlfmovil/usuarios 

если отключить компонент аутентификации (без входа, весь доступ на мой сайт) мой сайт работает отлично

это мой AppController

<?php 
App::uses('Controller', 'Controller'); 

class AppController extends Controller { 
    public $components = array(
     'Session', 
     'Auth' => array(
      /*'authorize' => array(
       'Actions' => array('actionPath' => 'controllers') 
      ),*/ 
      'authenticate' => array(
       'Form' => array(
        'userModel' => 'Usuario', 
        'fields' => array(
         'username' => 'email', 
         'password' => 'password' 
        ) 
       ) 
      ), 
      'authorize' => array('Controller') 
     ), 

    ); 

    public function beforeFilter() { 
     $this->Auth->loginAction = array('controller' => 'usuarios', 'action' => 'login'); 
     //$this->Auth->logoutRedirect = array('controller' => 'usuarios', 'action' => 'login'); 
     $this->Auth->loginRedirect = array('controller' => 'usuarios', 'action' => 'add'); 
     $this->Auth->authError = 'No Posee Permisos para Acceder a esta Sección'; 
     $this->set('logueado',$this->Auth->loggedIn()); ####Verifica si el usuario esta logueado 
     $this->set('usuarioActual',$this->Auth->user()); #####Manda la informacion del usuario logueado 
     //$this->Auth->allow(); 
    } 

    public function isAuthorized($user) { 
     if ($user['grupo_id'] == '3'/* Administrador*/ || $user['grupo_id'] =='2' /*Usuario*/){ 
      return true; 
     } 

     return false; 
    } 
} 

usuariosController

<?php 
class UsuariosController extends AppController{ 
    var $name = 'Usuarios'; 
    var $helpers = array('Html','Form'); 
    //var $scaffold; 
... 
public function login() { 
     if ($this->request->is('post')){  
      if ($this->Auth->login()){ 
       //Configure::write('Session.timeout','30'); 
       return $this->redirect($this->Auth->redirect()); 
      } else { 
       $this->Session->setFlash(__('Usuario o Contraseña Incorrecto')); 
      } 
     } 
    } 

    public function logout() { 
     $this->redirect($this->Auth->logout()); 
    } 


}  

?> 

login.ctp

<?php 
    echo $this->Session->flash('auth'); 
    echo $this->Form->create('Usuario', array('action' => 'login')); 
    echo $this->Form->input('email',array('label' => 'Correo Electrónico')); 
    echo $this->Form->input('password',array('label' => 'Contraseña')); 
    echo $this->Form->end('Ingresar'); 

?> 

ответ

2

Прежде всего $ this-> Auth-> перенаправления() осуждается в CakePHP 2.3. Поскольку вы используете CakePHP 2.3, вы должны использовать $ this-> Auth-> redirectUrl().

Во-вторых, перенаправление()/redirectUrl() получит URL-адрес, с которого вы были перенаправлены на страницу входа. Если он аналогичен странице входа в систему, то он будет использовать loginRedirect.

Если вы всегда хотите перенаправить на страницу localhost/tlfmovil/usuarios/index, используйте вот так.

public function login() { 
     if ($this->request->is('post')){  
      if ($this->Auth->login()){ 
       $this->redirect(array('controller'=>'usuarios','action'=>'index')); 
      } else { 
       $this->Session->setFlash(__('Usuario o Contraseña Incorrecto')); 
      } 
     } 
    } 
+0

благодарит за вашу помощь bro, ее работы – Cocuba

Смежные вопросы