2013-10-02 55 views
0

我正在實現CakePHP ACL。我希望我的模型同時爲請求者和控制的,所以我將它設置這樣的:類型爲'both'的CakePHP 2.x中的ACL

public $actsAs = array(
    'Acl' => array(
     'type' => 'both' 
    ) 
); 

我遇到的問題是,是,我的模型有不同的父依賴於節點的類型(ACO或ARO)。

我想通過做這樣的事情與parentNode()函數來解決這個問題:

public function parentNode() { 

    if('ARO' == $this->type) { 
     return 'ARO parent'; 
    } else { 
     return 'ACO parent'; 
    } 

} 

所以基本上讓它迴歸合適的父爲每一個案件。

這是可能的,如果是這樣,如何?

=====更新 - 2013年10月4日=====

我已經提交了正在看:-)

https://cakephp.lighthouseapp.com/projects/42648/tickets/4122-add-type-as-argument-to-the-parentnode-function#ticket-4122-2

+0

感謝您的幫助。這樣做:) –

回答

0

我的官方票我們一直在Cake邏輯中進行挖掘。我想我爲這個問題想出了一個非常簡單而有用的解決方案。

使用CakePHP 2.4.1,我編輯的文件 /lib/Cake/Model/Behavior/AclBehavior.php

上線109記載:

$parent = $model->parentNode(); 

我已經簡單地添加的類型作爲參數:

$parent = $model->parentNode($type); 

這樣一來,我的parentNode()函數可以是這樣的:

public function parentNode($sType) { 

    if('ARO' == $sType) { 
     return 'ARO parent'; 
    } else { 
     return 'ACO parent'; 
    } 

} 

我高興:-)