zend_acl: динамическое добавление дополнительных ресурсов и получение предзапуска параметров - PullRequest
0 голосов
/ 25 марта 2010

Сначала извините за woffle, так как я не уверен, как лучше описать это.По сути, я не уверен, каким образом я могу получить param в начальной загрузке до загрузки контроллера, но вот длинная версия ...

У меня есть класс acl, в котором хранятся все мои ресурсы по умолчанию. Все моисодержимое страницы / поста - это база данных, и я хочу, чтобы администратор мог выбирать, для какой роли будет доступна страница.

Я знаю, что можно просто пройтись по таблице базы данных и сразу добавить их всеНо я обеспокоен тем, что это истощает ресурсы.У меня это работает, благодаря чему мой плагин проверки доступа может вызывать функцию динамического разрешения, но мне нужно получить параметр идентификатора текущей страницы и его разрешение установить его до загрузки контроллера.

Имеет ли это смыслили я ни о чем не беспокоюсь, и мне нужно просто получить ресурсы всех страниц одновременно?

заранее спасибо за чтение моего мусора !!

1 Ответ

1 голос
/ 25 марта 2010

Мне действительно удалось выяснить, что мне нужно, прочитав руководство по Zend! DOH!

Мне просто нужно было использовать функцию $ request-> getParams (), которая позволила бы мне получить идентификатор сообщения из URL

Тогда я мог бы установить разрешение следующим методом

Ниже идет проверка доступа к подключению

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

}
...