我创建了一个CakePHP应用程序,我创建了一个UsersController
,它处理所有用户。
当我尝试浏览www.mydomain.com
时,如果我已登录,则让我看到索引(app/View/Pages/home.ctp
)。否则,它会将我重定向到mydomain.com/users/login
并继续登录。
我曾尝试查看AppController.php
,PagesController.php
或app/Config/core.php
和app/Config/routes.php
,但未找到任何内容。我认为我的UsersController.php
也不对此负责。
我不记得了,我找不到如何禁用它。哪个文件应该对此负责?
编辑:我的CakePHP版本是2.3。
答案 0 :(得分:1)
通常,您可以使用auth components allow()
method公开具体操作。
公开网页可能需要更多工作,以防您只想公开特定网页,因为PagesController
处理单个操作中的所有网页(display()
)。如果是这种情况,那么您可以使用保留页面名称的request->params['pass'][0]
,针对允许的网页列表对其进行测试,然后使用display
允许Auth::allow
操作。
示例,在PagesController
:
public function beforeFilter()
{
parent::beforeFilter();
$allowedPages = array('home', 'foo', 'bar');
if(isset($this->request->params['pass'][0]) &&
in_array($this->request->params['pass'][0], $allowedPages))
{
$this->Auth->allow('display');
}
}
这样就可以在不登录的情况下查看网页home
,foo
和bar
。
如果您想公开所有页面,那么您可以在没有任何条件的情况下使用Auth::allow
,即:
public function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('display');
}