2011-03-13 72 views
0

我有一個小問題,我拒絕訪問我的頁面,但用戶仍然可以訪問它。CakePHP acl lists

$this->Acl->allow('contributors','Users'); 
    $this->Acl->deny('contributors','Users/add'); 
    $this->Acl->deny('contributors','Users/edit'); 
    $this->Acl->deny('contributors','Users/delete'); 

這是我的代碼。我明確地允許用戶控制器,然後拒絕對其操作的訪問。但我仍然可以訪問它們。當我拒絕用戶顯式訪問受到限制。難道我做錯了什麼???

我使用 $this->Acl->deny('contributors','Users/add'); 檢查了權限,它返回false,因此它被拒絕。

回答

1

翔太Bakuradze,

,如果你只使用AUTH組件的系統上工作,你必須使用AUTH方法和屬性只。

如果您使用ACL設置了系統,那麼您通常會以其他方式定義它,因爲它更安全。例如:拒絕控制器級別的每個動作,而不允許一些動作。

這個程序的好處是,如果你忘記允許一個動作,那麼更少(不)損害就會完成,你會注意到它。

EDIT1: 此外,你叫什麼貢獻者必須是一個ARO,看到here

+0

你在恢復Auth方法和屬性下的確切含義是什麼? – Headshota

+0

你是否使用ACL作爲組件?如果不是,請查看AUTH組件的方法/屬性並刪除所有$ this-> Acl。如果你真的想要使用ACL,那麼請確保該調用是正確的,正如我在Edit1中所建議的那樣。你的 – benjamin

+0

我交換了造成麻煩的詞。 – benjamin