Нужны предложения по настройке Zend_Acl - PullRequest
0 голосов
/ 21 декабря 2010

Предположим, у меня есть классы / модели

  • Проекты (есть много списков)
  • Списки

Я хочу, чтобы только пользователи, которые являются соавторами проекта, могли добавлять списки. Как я это сделал. Я знаю, что должен использовать Zend_Acl_Assert, но что я передаю в качестве ресурса. Для редактирования / удаления я передам сам список. Для добавления это больше похоже на проект. Что кажется более правильным, если я переместу ListsController#addAction() в ProjectsController#addListAction()? Это 1 возможность

Но если я хочу сделать что-то вроде ListsController#addAction() как я могу настроить свой acl?

$acl->allow('user', 'list', 'add', new assertClass());

Передаст 'список' в качестве ресурса. Могу ли я как-то передать объект проекта вместо этого? Это, кажется, не имеет смысла, хотя

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Могу ли я вместо этого передать объект проекта?

Пока объект реализует Zend_Acl_Resource_Interface и зарегистрирован в ACL, вы можете использовать все, что захотите.

0 голосов
/ 22 декабря 2010

Почему вы передаете список для редактирования и удаления, кажется ненужным? Выполнение без передачи списка будет работать нормально.

Если вам требуются дополнительные проверки, я сделал добавление проверки surePermission в моей модели preSave, которая, помимо прочего, проверяет ACL, чтобы определить, что все хорошо.

...