Comments 17
текст по компактнее сделайте - читать не удобно
0
Как я понимаю это перевод вот этого
http://devzone.zend.com/article/3509-Zen…
Вообще, в целом, это уже обмусоленно довольно сильно, и многие подобное решение юзют давно.
Однако, для навичков полезно. Так что за перевод вам +
http://devzone.zend.com/article/3509-Zen…
Вообще, в целом, это уже обмусоленно довольно сильно, и многие подобное решение юзют давно.
Однако, для навичков полезно. Так что за перевод вам +
+1
Статья крайне не применима в реальных приложениях, т.к. количество ресурсов, права на которые нужно разрешать в большинстве приложений гораздо больше, чем в статье. Обычно ресурсом является не "news", а "news №3", права для которой нужно разрешать. О параметризации ресурсов идентификаторами здесь ничего не сказано.
Проще говоря описанный подход применим для сайтов, где есть люди, доступ которых к ресурсам определяется по разделам сайта, а не по конкретным объектам. Реализовать "принадлежность" статьи кокретному автору тут нет возможности
Проще говоря описанный подход применим для сайтов, где есть люди, доступ которых к ресурсам определяется по разделам сайта, а не по конкретным объектам. Реализовать "принадлежность" статьи кокретному автору тут нет возможности
0
Ну, на сколько я понимаю, это первая часть из серии статей. Так сказать введение в тему. Вероятно в продолжении будет предложена более реальная реализация.
Но в целом согласен, прямолинейное применение ACL весьма требовательно к ресурсам.
Реализовать "принадлежность" статьи кокретному автору тут нет возможности
В исходниках есть реализация этого, но, правда, без ACL, простой проверкой равенства автора статьи текущему пользователю
Но в целом согласен, прямолинейное применение ACL весьма требовательно к ресурсам.
Реализовать "принадлежность" статьи кокретному автору тут нет возможности
В исходниках есть реализация этого, но, правда, без ACL, простой проверкой равенства автора статьи текущему пользователю
0
Там предлагается механизм assert'ов, для определения применимости правила, но способа доставить какой-то контекст к assert'у нету ... только Zend_Registry, а это слишком неправильно
0
Я имел в виду вот этот участок NewsController:
public function editAction()
{
$id = $this->_request->getParam('id');
/** Load news by id */
require_once 'News.php';
$news = new News($id);
/** Loading the user logged */
require_once 'Zend/Session/Namespace.php';
$myApp = new Zend_Session_Namespace('myApplication');
if ($news->author != $myApp->loggedUser) {
$this->_acl->denyAccess();
}
$this->view->id = $id;
}
public function editAction()
{
$id = $this->_request->getParam('id');
/** Load news by id */
require_once 'News.php';
$news = new News($id);
/** Loading the user logged */
require_once 'Zend/Session/Namespace.php';
$myApp = new Zend_Session_Namespace('myApplication');
if ($news->author != $myApp->loggedUser) {
$this->_acl->denyAccess();
}
$this->view->id = $id;
}
0
перевел вторую часть, в которой автор приближает свое предложение к реальности - http://habrahabr.ru/blog/webdev/46731.ht…
0
думаю, этот код требует пояснения:
насколько я понял, то здесь неувязка. должно быть либо:
либо:
поправьте, если я не прав.
$aclPlugin = new Zend_Controller_Plugin_Acl($myAcl);
$aclPlugin->setRoleName($currentUserRole);
$front->registerPlugin(new Zend_Controller_Plugin_Acl($acl, 'guest'));
насколько я понял, то здесь неувязка. должно быть либо:
// создаем плагин
$aclPlugin = new Zend_Controller_Plugin_Acl( $myAcl);
$aclPlugin->setRoleName( $currentUserRole);
// регистрируем его
$front->registerPlugin( $aclPlugin);
либо:
// создаем плагин при регистрации
$front->registerPlugin( new Zend_Controller_Plugin_Acl( $acl, 'guest')); // вместо 'guest' по логике должна быть $currentUserRole
поправьте, если я не прав.
0
Опечатка: Помощник действия (Action Helper): Этот компонент позволяет проверить, имеет ли текущий пользователь доступ внутрь контроллера.
Наскольк я понял, подразумевается «внутри контроллера».
Наскольк я понял, подразумевается «внутри контроллера».
0
Имеется в виду: «Имеет ли пользователь доступ к запрошенному действию (action) контроллера (controller)».
0
Посмотрите вот здесь: framework.zend.com/wiki/pages/viewpage.action? pageId=39025 (последняя вкладка 8. Use Cases) — helper используется внутри контроллера, в данном примере — для перенаправления на страницу «Недостаточно прав доступа».
0
Sign up to leave a comment.
Интеграция Zend_Acl и MVC. Часть 1 (простейшее использование)