Нужны предложения по настройке Zend_Acl
Предположим, у меня есть классы / модели
- Проекты (имеет много списков)
- Списки
Я хочу, чтобы только пользователи, которые являются соавторами проекта, могли добавлять списки. Как я это сделал. Я знаю, что я должен использовать Zend_Acl_Assert
но что я передаю как ресурс. Для редактирования / удаления я передам сам список. Для добавления это больше похоже на проект. Что кажется более правильным, если я переместить ListsController#addAction()
в ProjectsController#addListAction()
? Это 1 возможность
Но если я хочу сделать что-то вроде ListsController#addAction()
Как я могу настроить мой ACL?
$acl->allow('user', 'list', 'add', new assertClass());
Передаст 'список' в качестве ресурса. Могу ли я как-то передать объект проекта вместо этого? Это не имеет смысла, хотя
2 ответа
Могу ли я как-то передать объект проекта вместо этого?
Пока объект реализует Zend_Acl_Resource_Interface
и был зарегистрирован в ACL, вы можете использовать все, что вы хотите.
Почему вы передаете список для редактирования и удаления, кажется ненужным? Делать это без передачи списка будет работать нормально.
Если вам требуются дополнительные проверки, я сделал добавление проверки surePermission в моей модели preSave, которая, помимо прочего, проверяет ACL, чтобы определить, все ли это хорошо.