2010-03-25 56 views
0

首先對於woffle感到抱歉,因爲我不確定如何最好地描述這個。基本上我不知道如何在控制器加載之前在引導程序中獲得參數,但這裏是漫長的版本...zend_acl:動態添加額外資源並獲取參數predispatch

我有一個acl類,它存儲我所有的默認資源。我所有的頁面/發佈內容是一個數據庫,我希望管理員能夠選擇哪個角色可以使用該頁面。

我知道有可能只是循環訪問數據庫表並一次添加它們,但我擔心這會消耗資源。我有它的工作,據此我的訪問檢查插件可以調用動態權限功能,但我需要獲取當前頁面ID的參數,並有權在加載控制器之前設置它。

這樣做是否合理?還是我不擔心什麼,我應該一次獲得所有頁面的資源?

在此先感謝您閱讀我的博文!

回答

1

我實際上已經設法通過實際閱讀zend手冊來了解我需要什麼! DOH!

我只是需要使用到$請求 - > getParams()方法這將讓我從URL得到的文章ID

然後,我可以設置權限下面的方法

下面進去訪問檢查pluging

$params = $request->getParams();  
$this->_acl->setDynamicPermissions($params['post_id']); 

然後這個ACL中的類

public function setDynamicPermissions($id) { 

    $id    = (int)$id; 
    $page_id  = "page-" . $id; 

    $post   = new Model_DbTable_Post(); 
    $restriction = $post->getPostRestriction($id); 


    $this->add(new Zend_Acl_Resource($page_id)); 
    $this->allow($restriction, $page_id); 

}