2013-10-04 99 views
0

我使用ACL所有管理行爲現在我希望能夠以拒絕任何admin_actionCakePHP的ACL拒絕

一組特定的訪問是有這樣做的一個快速的方法嗎?

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

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

上面的兩個例子似乎沒有工作。

例如URL我希望我的用戶避免:

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

我想要做的是限制進入名爲admin什麼/

回答

0

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

+0

覆蓋isAuthorized功能良好的管理是不是模特,也不控制器,它就像管理部分又名:www.yourdomain.com/cake/index.php/admin/控制器/動作 上述代碼是否適用於此? – Marc

+0

剛剛測試了上述悲傷,這沒有效果。 – Marc

+0

根據你的結構,第二個參數應該是像'管理員/控制器/行動'或'控制器/行動' –

0

我不認爲你可以使用ACL執行此操作。您每次都設置了一次權限。

但是你可以在AppController中

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); 
}