Cakephp:设置ACL允许特定操作并拒绝来自控制器的其余操作

时间:2012-12-16 19:16:50

标签: php cakephp acl cakephp-2.1

我正在尝试设置cakephp ACL权限。

public function initDB() {
$group = $this->User->Group;
//root
$group->id = 1;
$this->Acl->allow($group, 'controllers');
//admin
$group->id = 2;
$this->Acl->allow($group, 'controllers/Users');

//cliente
$group->id = 3;
$this->Acl->deny($group, 'controllers');
$this->Acl->allow($group, 'controllers/Pages');
PROBLEM BELOW ----------------------------------------------
$this->Acl->allow($group, 'controllers/Users/trocar_senha/')
echo "all done";
exit;
}

这也是否认用户的行为“trocar_senha”。但我想允许这一点,并拒绝来自用户控制器的所有其他操作。

如何允许特定操作并拒绝控制器中的所有其他操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

解决! 问题是$this->Acl->allow($group, controllers/Users/trocar_senha/')上的斜线。

public function initDB() {
    $group = $this->User->Group;
    //root
    $group->id = 1;
    $this->Acl->allow($group, 'controllers');
    //admin
    $group->id = 2;
    $this->Acl->allow($group, 'controllers/Users');

    //cliente
    $group->id = 3;
    $this->Acl->deny($group, 'controllers');
    $this->Acl->allow($group, 'controllers/Pages');
    $this->Acl->allow($group, 'controllers/Users/trocar_senha'); // WHITHOUT SLASH
    echo "all done";
    exit;
}