CakePHP Auth, wie Sie es ermöglichen, spezifische controller und Aktionen
Habe ich einen "Posten" und ein "Benutzer" - controller. Ich benutze die Auth Komponente und ich möchte, dass alle Benutzer besuchen können "Post.index" aber nur angemeldete user können besuchen Sie "Benutzer.index".
In meinem app_controller.php ich habe diese
$this->Auth->allow('signup', 'confirm', 'index');
aber mit, dass alle Benutzer können besuchen Sie post.index und Benutzer.index. Wie kann ich festlegen, einen Controller in der allow-Methode?
Diese hat bei mir nicht funktioniert:
$this->Auth->allow('signup', 'confirm', 'Post.index');
update
Ich entfernte 'index' aus dem app_controller.php und statt es in die beforeFilter hinzu-Methode im post-controller:
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('index');
}
Ich auch eine variable "loggedIn" in app_controller, ohne Aufruf "parent::beforeFilter hinzu();" habe ich eine "undefined variable" beachten.
thx sibidiba
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zeitraum wird nicht funktionieren. Sie könnten versuchen, ' /' statt. Wenn das fehlschlägt, sollten Sie
$this->Auth->allow('index')
im PostController und UserController ' s::beforeFilter()
individuell. Vergessen Sie nicht aufrufen parent::beforeFilter hinzu().Hängt von der version, die Sie gerade arbeiten. Wenn es cakephp 2.x fügen Sie diesen code in den controller, der die Aktion, die Sie wollen Zugriff ohne login. Ihre Frage, sollten Sie diesen code, um Pfosten-controller:
allow(array('acction you want to allow'))
stattallow('acction you want to allow')
Bin ich mit CakePHP 2.x. Die slash-trick nicht funktioniert.
Wenn Sie zulassen möchten, dass Benutzer Zugriff auf "myController.myAction" ohne login, sollten Sie beforeFilter hinzu() in myController.php statt AppController.php
Hier ist der code zum hinzufügen in myController.php:
Für Cakephp 2.x, gibt es mehrere Methoden (abhängig von der cakephp-version).
Aus der docs (http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html):
Es ist ein gemeinsames problem zu CakePHP Entwickler-auth erlauben bestimmte Aktionen, die von einem bestimmten controller
https://blog.sohelrana.me/cakephp-auth-allow-specific-actions-specific-controllers/
In Kuchen 3.x, die Sie verwenden können, folgenden Zeilen von code, um die Aktionen.
$this->name gibt den aktuellen Controller angefordert.
versuchen, diese in AppController::beforeFilter hinzu()
Sorry, mein Englisch ist nicht gut
Für CakePHP 3.* zu es ermöglichen, spezifische Methoden in der bestimmten controller