0

我现在正在使用 ACL 我希望能够拒绝某个组访问任何admin_action

有没有一种快速的方法来做到这一点?

$group->id = 2;
$this->Acl->deny($group, 'admin');

$group->id = 2;
$this->Acl->deny($group, 'controller/admin');

上面两个例子似乎不起作用。

我希望我的用户避免的示例网址:

http://mydomain.com/cake/index.php/admin/clients/pending

我想要做的是限制访问任何名为 admin/

4

2 回答 2

0

尝试$this->Acl->deny( array('model' => 'Group', 'foreign_key' => '2' ), 'controller/admin' );

于 2013-10-04T14:01:53.583 回答
0

我不认为你可以使用 ACL 来做到这一点。您已将权限设置为每次一项操作。

但是您可以覆盖 AppController 中的 isAuthorized 函数

public function isAuthorized($user) {
    if (isset($user['group']) && $user['group'] === 1) {
        ... check if action param is set and in case return true otherwise return false....

    }
    return parent::isAuthrized($user);
}
于 2013-10-04T19:38:00.660 回答