Я пишу приложение на основе Zend Framework, используя стандартную парадигму mvc с добавленным сервисным уровнем, чтобы заботиться о прикладной / бизнес-логике. Кажется довольно популярным использование контроля доступа в ваших службах, а не в ваших модулях / контроллерах / действиях, однако я видел только простые примеры со статическими ролями и разрешениями для этих ролей.
Мое приложение будет использовать динамический acl, позволяющий администратору добавлять роли и устанавливать разрешения для этих ролей. У меня два вопроса:
- Как вы сопоставляете разрешения в пользовательской земле с услугами и методами в службах? Я не верю, что это должно быть соотношение 1: 1. Если ваше приложение достаточно велико, у вас будет много служб с множеством методов, и структура разрешений быстро станет запутанной для конечных пользователей, устанавливающих разрешения для роли.
- У меня есть сервисы, которые являются глобальными для приложения и не относятся к конкретному модулю. Как бы вы установили разрешения для этих служб на основе модуля, к которому осуществляется доступ?
Любая помощь будет принята с благодарностью.