Bonjour,

J'ai mis en place le système des ACL qui fonctionne bien, seul problème quand un membre s'inscrit je souhaite qu’après la redirection il soit connecté j'ai donc fait :

$this->User->save($d);
                $this->Auth->login($d);
                $this->redirect(array('controller' => 'orders'));

Le membre parait connecter mais les acl ne fonctionnent plus ... j'ai un message d'erreur

AclNode::node() - Couldn't find Aro node identified by "Array ( [Aro0.model] => User [Aro0.foreign_key] => ) "

Pourtant si je connecte un membre par le formulaire de connexion la les acl fonctionnent.

Avez vous une idée du problème ?

4 réponses


Tu peux sortir un debug de $d ? Vérifie que les index de ton tableau soient bon 'User' => array()

ido
Auteur

Salut merci de ta reponse,

Les index sont ok, j'ai aussi fait un echo $this->Auth('username'); et le nom de l'utilisateur s'affiche.

Apparement l'utilisateur est connecté mais il y a un beug puisque une erreur acl s'affiche. Par contre si je le connecte manuellement par le formulaire la pas de soucis. Et si un utilisateur non connecté esseyer d'acceder a la page il n'y a pas d'erreur il est simplement rediriger comme prévu ...

Ok et si tu refais un find après ton save pour qu'il récupère l'id de l'utilisateur ?

ido
Auteur

Bon après plusieurs tests sur mes controllers, je peux maintenant dire que l'utilisateur n'est pas connecter puisque après un

$foo = $this->Auth->user'username'];
debug($foo);

Le résultat est null.
Donc ma connexion automatique ne fonctionnent pas je pense, cependant il y a une erreur ACL sur les pages protégé mais si je fais une déconnexion il n'y a pu d'erreur ACL et je suis bien redirigé .