Давайте откроем эту тему, это хорошо, чтобы закончить, и это довольно сложно в реализации.
Давайте разберемся с вопросом, который у нас есть:
Бен: я не знаю, что происходит в вашем проекте, но давайте создадим похожий сценарий,
У нас есть сайт для гостей, клиентов, администраторов:
Нам нужна таблица в нашей базе данных для сохранения имен ролей, и для каждой роли у нее есть свои разрешения
Roles (idRole, nameRole)
Permissions (We will speak about it later)
Скажем, может быть позже, нам нужно будет установить больше ролей для нашего приложения, поэтому мы установим страницу для администратора, чтобы назначить разрешения для каждой роли (например, Drupal и Joomla), одно из решений состоит в том, чтобы найдите все модули, которые есть в вашем приложении, затем получите контроллеры для каждого модуля и действия для каждого контроллера.
и затем мы должны сказать Zend_Acl установить наши роли из таблицы ролей в базе данных, а ресурсы - это модули Zend-> Actions для каждого контроллера.
Поэтому нам понадобится таблица для хранения всех модулей, а для каждого модуля нам понадобятся контроллеры и действия
Modules (idModule, nameModule)
Controllers (idController, nameController, idModule_FK)
Actions (idAction, nameAction, descriptionAction, idController_FK)
Поле описания получит его из примера описания действия
/**
* @description := Action to edit Roles
**/
public function editAction {}
Итак, давайте завершим структуру нашей базы данных
Roles (idRole, nameRole)
Permission (idRole, allowedPermission, idAction, dateTimeAssigned)
Modules (idModule, nameModule)
Controllers (idController, nameController, idModule_FK)
Actions (idAction, nameAction, descriptionAction, idController_FK)
Вот общая структура, которую я мог найти до сих пор, я пытаюсь вернуть все модули / контроллеры / действия, когда это будет сделано, я опубликую это здесь (класс плагина), тогда мы попробуем объединить все (вклад для других), чтобы решить эту проблему с Zend_Acl Dynamic.
Следующие шаги: Чтобы создать плагин в Library/App/Action/Helper
, если он сделан кем-то, пожалуйста, напишите, чтобы получить общий вклад по этому поводу,
Затем мы сосредоточимся на сохранении данных с помощью Doctrine ORM с нашим Zend Project,
3-й шаг - создать контроллер, который динамически создает Zend_Acl из информации базы данных (роль, разрешения, действия).
Любые советы / идеи / предложения, здесь, где следует продолжать до конца.
С уважением,