Cakephp 2.3 $this->Auth->allow() funktioniert nicht wie erwartet
Ich versuche, die AuthComponent in CakePHP 2.3 aber es ist nicht das benehmen, die Art, wie ich es erwarten würden.
Im Grunde, wenn ich
$this->Auth->allow('view');
Der Benutzer soll nur Zugriff auf die view-Methode, die ist, was passiert, so toll.
Das problem ist, wenn der Benutzer sich anmeldet, er hat plötzlich Zugriff auf die 'add' Methode als auch (meine einzige andere Methode in der controller im moment. Wenn er sich abmeldet, hat er nicht Zugriff auf die add nicht mehr.
Hier ist mein code:
//AppController
<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'authenticate' => array(
'Blowfish' => array(
'fields' => array('username' => 'email', 'password' => 'password')
)
)
)
);
public function beforeFilter() {
$this->Auth->deny('add');
$this->Auth->allow('view');
}
}
Meine PagesController, ist einfach dies:
<?php
App::uses('AppController', 'Controller');
class PagesController extends AppController {
public $uses = array('Pages');
public function view($id = null) {
echo 'In view';
}
public function add($id = null) {
echo 'In add';
}
}
InformationsquelleAutor | 2013-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sind Missverständnis, was ermöglichen()/deny() machen. Sie sind dazu gedacht, anzugeben, ob eine Aktion zugegriffen werden kann mit oder ohne Authentifizierung (aka login). Es ist nicht gedacht, um die Autorisierung Steuern, d.h. Steuern den Zugriff auf die Aktion, nachdem ein Benutzer angemeldet ist. Für diesen Zweck ist Sie auf Autorisierung konfigurieren. Lesen diese sollte Ihnen helfen, besser zu verstehen.
Ja
isAuthorized
ist für die Autorisierung verwendet und kommt in nur spielen, nachdem sich ein Benutzer anmeldet.InformationsquelleAutor ADmad
wenn Sie arbeiten auf cakephp 2.x Sie muss dies so tun :
---diesen code in controller-action, die Sie wollen, erlauben den Zugriff ohne login
wenn Sie mit $this->Auth->allow() müssen Sie aufrufen parent::beforeFilter hinzu(); function beforeFilter hinzu() wie folgt :
InformationsquelleAutor hoai pham thanh