J'ai un "post" et un contrôleur "utilisateur". J'utilise le composant authentifiant et je souhaite que tous les utilisateurs puissent visiter "post.index", mais seulement les utilisateurs connectés ne peuvent visiter "user.index".
dans mon app_controller.php j'ai ce p> Mais avec ce que tous les utilisateurs peuvent visiter post.index et user.index. Comment puis-je spécifier un contrôleur dans la méthode Autory? P> Cela n'a pas fonctionné pour moi: P> function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('index');
}
8 Réponses :
La période ne fonctionnera pas. Vous pouvez essayer '/' à la place. Si cela échoue aussi, vous devez définir $ ceci-> auth-> autoriser ('index') code> dans POSTCONTROLLER'S
:: AvantFeilter () code> individuellement. N'oubliez pas d'appeler le parent :: avantfilter (). P>
Réponse parfaite! Il n'a pas fonctionné avec '/' donc j'ai supprimé "index" de l'app_controller et l'a autorisé dans la post-contrôleur: fonction avantfilter () {parent :: avantfilter (); $ ceci-> auth-> autoriser ('index'); }
J'utilise CakePHP 2.x. Le truc de Slash ne fonctionne pas.
Si vous souhaitez autoriser l'accès à l'utilisateur "myController.myaction" sans connexion, vous devez ajouter avantfilter () dans myController.php au lieu de appcontroller.php p>
ici est Le code pour ajouter dans mycontroller.php: p>
dépend de la version sur laquelle vous travaillez. Si c'est CakePHP 2.x, mettez ce code dans le contrôleur qui a l'action que vous souhaitez donner accès sans connexion. Comme votre question, vous devez mettre ce code au contrôleur de poste:
function beforeFilter(){ $this->Auth->allow(array('index','another action'));}
Ceci-> nom retourne le contrôleur actuel demandé.
Essayez ceci dans AppController :: avantfilter () p>
public function beforeFilter() { // ... Basic configs switch ($this->name) { case 'Posts': $this->Auth->allow('add'); break; case 'Test': $this->Auth->allow('test'); break; } }
pour CakePHP 2.x, il existe plusieurs méthodes (en fonction de la version CakePHP).
de la DOCS ( http://book.cakephp.org/2.0/fr/core-libries/comPonents/authentication.html ): P>
// Allow all actions. CakePHP 2.0 $this->Auth->allow('*'); // Allow all actions. CakePHP 2.1 $this->Auth->allow(); // Allow only the view and index actions. $this->Auth->allow('view', 'index'); // Allow only the view and index actions. $this->Auth->allow(array('view', 'index'));
C'est un problème courant au développeur CakePHP à authentifier autoriser à des actions spécifiques d'un contrôleur spécifique p>
https://blog.sohelrana.me/ CakePHP-Auth-Auth-Autoriser des contrôleurs spécifiques-spécifiques / P>
dans Cake 3.x Vous pouvez utiliser ci-dessous des lignes de code pour permettre toutes les actions.
public function beforeFilter(Event $event) { parent::beforeFilter($event); $this->Auth->allow(); }
pour