2010-01-16 3 views
0

J'utilise le composant Auth sur mes pages et je voudrais montrer une superposition de connexion lorsqu'une action Ajax est appelée pour laquelle l'utilisateur n'a pas la permission.Comment faire face à Ajax Auth erreurs dans CakePHP

Exemple:

utilisateur souhaite modifier un champ jeditable, puis lorsque les utilisateurs veut changer la valeur, il va d'abord obtenir un login/overlay registre.

Mon chemin actuel est de vérifier l'action pour $ _SESSION ['Auth'] ['User'], cependant cela semble être très sale et je veux le faire de manière propre.

Actuellement mon code est:

si {

$this->layout = 'ajax'; 
$this->render('loginpopup');  
return; 

}

J'aimerais l'entrée de plus ($ _ SESSION [ 'auth'] [ 'User']!) utilisateurs expérimentés, j'utilise Jquery comme ma bibliothèque javascript. Merci d'avance!

Répondre

1

Je ne connais pas le gâteau, mais en termes de meilleures pratiques, votre application devrait probablement avoir une méthode d'assistance universelle pour accéder à la session. La norme de rails est current_user (qui renvoie un objet utilisateur si quelqu'un est connecté, et nul si ce n'est pas le cas). Ensuite, vous devriez enrouler javascript pour lancer la popup de connexion dans un PHP conditionnel qui appelle cette méthode.

+0

Oui, CakePHP a $ this-> Auth (utilisateur) (je viens de le découvrir, merci :)) Donc je suppose que vous pensez lire ceci, et puis enveloppant le javascript serait le moyen le plus propre de le faire? Si j'utilise Auth pour refuser l'accès à l'action, alors il renvoie une belle erreur 403, je pensais que je pourrais faire quelque chose en fonction de cela? Déjà merci d'avoir pris le temps de me répondre! – JanWillem

Questions connexes