Как стать автором
Обновить

Обновление компонента Zend_Acl ломает функционал приложения

Время на прочтение 1 мин
Количество просмотров 586
Только что обновившись с версии 1.10.6 до версии 1.11 я обнаружил печальный факт того, что учетная запись администратора утратила доступ к большей части функционала.

Добавление некоторых ресурсов у меня шло уже после задания привилегий роли admin.

$acl->add(new Zend_Acl_Resource('resource1'));
$acl->allow('admin');
$acl->add(new Zend_Acl_Resource('resource2'));


Как выяснилось после прогона двух версий файла Zend/Acl.php через diff, была изменена строка 636 файла.

Было:
$resources = array($resources);

Стало:
$resources = ($resources == null && count($this->_resources) > 0) ? array_keys($this->_resources) : array($resources);

Очевидно что если не задавать ресурсы при вызове метода allow, привилегии для роли установятся только для уже зарегистрированных ресурсов, хотя раньше подобный вызов добавлял привилегии на доступ ко всем ресурсам. Теперь же для нормальной работы необходимо выставлять разрешение до первого добавления ресурса в ACL.

Хотелось бы надеяться что это непродуманный фикс а не новая политика безопасности фреймворка.

Как выяснилось, таким образом пытались устранить ZF-9643, добавив тем самым ZF-10649
Теги:
Хабы:
+4
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн