如何在CakePhp中创建仅用于某些操作的用户登录


How to create a User Login just for some action in CakePhp

我有一个使用CakePHP的网站,我只想为每个模型的添加、编辑和删除创建一个用户登录,即任何人都可以进入网站的任何部分,但对于这三个视图,需要一个登录。

为我将免费访问的每个视图执行beforeFilter将需要太多时间,并且最终很难维护。

有一个简单的方法可以做到这一点吗?

在appController beforeFilter回调默认情况下允许所有操作:

// Allow all actions. CakePHP 2.0
$this->Auth->allow('*');
// Allow all actions. CakePHP 2.1
$this->Auth->allow();

然后在控制器(或appController?)中拒绝其中一些:

parent::beforeFilter(); // Must be before deny method, in other way you first deny add and then allow it
$this->Auth->deny('add', 'edit');