2010-06-28 23 views
0

我有插件cakePHP:ACL如何在插件中執行操作?

plugin: tree 
    -----controller: tree 
    -------------action : admin_index 

數據庫表aros_acos已經更新_CRUD 1 1 1 1此ACO。我的代碼$ this-> Acl-> check(array('model'=>'User','foreign_key'=> 2),'Tree/Tree/admin_index');

錯誤:

DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references: 
Aro: Array 
(
    [model] => User 
    [foreign_key] => 2 
) 

Aco: Tree/Tree/admin_index [CORE\cake\libs\controller\components\acl.php, line 273] 

所有其他行動是許可有效的,但插件的作用,我找不到原因。任何人都幫助我。

+0

「cake acl view aco」的控制檯輸出是什麼? – bancer 2010-06-29 23:02:26

回答

0

我不明白你爲什麼把Tree作爲一個插件 - 這是一個核心行爲。

請從aros_acos表中發佈合適的行。

您傳遞給Acl->check的數組看起來並不合適。我通過在$這個 - > Auth->用戶(輸出),它看起來像:

Array 
(
    [User] => Array 
     (
      [id] => 12 
      [username] => somebody 
      [group_id] => 1 
     ) 
) 

看一看馬克故事的教程 - 它確實是優秀的: http://mark-story.com/posts/view/auth-and-acl-an-end-to-end-tutorial-pt-1

+0

他使用正確的語法 - http://book.cakephp.org/view/1249/Checking-Permissions-The-ACL-Component – bancer 2010-06-29 23:55:06

0
  1. 有是Cakephp 1.3中的一個變化。對於名稱與插件相同的控制器,只有index路由爲supported。所以,如果你使用1.3版本,你將需要首先處理。

  2. 檢查控制檯中的ARO和ACO樹:cake acl view aco,cake acl view aro。嘗試檢查控制檯的權限cake acl check YOURARO YOURACO all