如何从CakePHP中的页面控制器中删除auth?

时间:2009-12-18 08:29:37

标签: authentication cakephp

我正在使用CakePHP的Auth组件,它位于app_controller.php

现在我想允许来自页面控制器的特定视图。我该怎么做?

3 个答案:

答案 0 :(得分:13)

将cake / libs / controllers中的pages_controller.php文件复制到app / controllers / dir。然后你可以修改它来做你想做的任何事情。使用auth组件,允许特定访问的典型方法如下:

class PagesController extends AppController {
 ...
 function beforeFilter() {
  $this->Auth->allow( 'action1', 'allowedAction2' );
 }
 ...

我建议将文件高度复制到控制器目录,而不是将其编辑到位,因为这样可以更轻松地升级蛋糕,并且不太可能意外覆盖某些内容。

答案 1 :(得分:11)

您可以将以下内容添加到app_controller。

function beforeFilter() {
  if ($this->params['controller'] == 'pages') {
    $this->Auth->allow('*'); // or ('page1', 'page2', ..., 'pageN')
  }
}

然后你不必复制页面控制器。

答案 2 :(得分:5)

我没有尝试过其他方法,但这也是允许访问所有静态页面的正确方法,因为显示是常见操作。 在app_controller中:

//for all actions    
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display'));

//for particular actions
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'home'));
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'aboutus'));