我创建了一个名为“IssueTracker”的插件,它位于app/Plugin/IssueTracker
. 我创建了一个名为的控制器Tickets
,它可以在www.example.com/issue_tracker/tickets/
. 但是,仅适用于具有“管理员”等级的登录用户。
这不是我所希望的,所以我添加Plugin/IssueTracker/Controller/TicketsController.php
了以下内容:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('index');
}
我希望通过这段代码(我在我的其他几个控制器中使用app/Controller/
它,它将从我AppController.php
的文件继承。TicketsController.php
文件扩展了IssueTrackerAppController
(像这样):
class TicketsController extends IssueTrackerAppController {
//functions goes in here
}
在我Plugin/Controller
的文件夹中,我创建了IssueTrackerAppController
扩展AppController
.
在我的AppController.php
文件中,我已经定义了它'index'
并且'view'
是公共行为。但是,由于某种原因,它在我的插件中不起作用。
有什么我正在监督的吗?当我www.example.com/issue_tracker/tickets
以未登录用户(访客)身份访问时,它告诉我需要登录。如果我以用户身份登录,但不是以管理员身份登录,该Auth
组件将不允许我登录并显示登录表单。
应该有办法Auth
在插件中工作,对吧?
编辑
下面是AppController.php
我配置 Auth 的片段:
public $components = array(
'Auth' => array(
'loginAction' => array('controller' => 'users', 'action' => 'login', 'plugin' => false),
'loginRedirect' => array('plugin' => false, 'controller' => 'ervaringen', 'action' => 'add'),
'logoutRedirect' => array('plugin' => false, 'controller' => 'ervaringen', 'action' => 'index'),
'authorize' => array('controller'),
'flash' => array(
'element' => 'error',
'key' => 'auth',
'params' => array(
'heading' => 'Waarschuwing!')
),
'authError' => 'Je moet inloggen om deze inhoud te bekijken.',
),
'Session',
'DebugKit.Toolbar'
);