LoginRedirect ne fonctionne pas ou bizarrement

Par nebjix, il y a 11 ans


Salut,
j'ai suivi +/- la formation CakePHP mais j'ai un souci avec les redirection login et logout,
déjà ma redirection n'est pas prises en compte, mais en plus la redirection par défault au login me redirige vers
/Dedicaces/get qui n'affiche rien puisque je m'en sert pour un élément d'une view.

Quelqu'un à t-il une idée à quoi cela est du ?

Voila mes code qui je pense peuvent être impliqués.

// Ma redirection dans le beforeFilter de l'AppController
$this->Auth->loginRedirect = array('controller'=>'dedicaces','action'=>'index','admin'=>true);
// le prefixe admin dans core.php
Configure::write('Routing.prefixes', array('admin'));
// mes routes pour redirigés les actions du controller Users
Router::connect('/admin', array('controller' => 'users', 'action' => 'login'));
Router::connect('/admin/logout', array('controller' => 'users', 'action' => 'logout'));

Merci d'avance pour les réponses, et merci à Grafikart pour tous ce qu'il fais.

(CakePHP 2.5.1 ; Component Auth avec DataSource Array et passwordHasher custom qui ne fais rien xD)

4 réponses

nebjix, il y a 11 ans

Pas entièrement, mais il ne me semble pas que Grafikart traite les redirection login et logout.
D'ailleurs mon logoutRedirect fonctionne.

Romano83, il y a 11 ans

Salut, pourquoi ne mets-tu pas la redirection directement dans le Controller, ce serait peut être plus simple ?
Comme par exemnple :

if($this->Auth->login()){   
    return $this->redirect($this->Auth->loginRedirect(array('controller' => 'dedicaces', 'action' => 'index', 'admin' => true)));
}

De plus, le loginRedirect est ignoré si l'utilisateur à ce paramètre dans la session... Vérifie aussi à ce niveau là, on sait jamais ;)

nebjix, il y a 11 ans

Salut Romano83, je pense que tu voulait dire

if($this->Auth->login()){ 
    return $this->redirect($this->Auth->redirectUrl(array('controller' => 'dedicaces', 'action' => 'index', 'admin' => true)));
    // et non loginRedirect(array(...)) qui n'existe pas
}

Mais cette solution marche très bien (avec la bonne méthod ;) ), un grand merci.
Et effectivement, le paramètre est modifié dans la session Auth>redirect à /Dedicaces/get. D'où cela peut-il venir ?

Romano83, il y a 11 ans

Effectivement nebjix, je me suis planté... C'est bien redirectUrl qu'il fallait utiliser.

Par contre, pour le paramètre modifié dans la session, je n'ai aucune idée d'où ça peux venir...