Помогите c RBAC и правами пользователей

Всем привет.

С RBAC знаком не так хорошо…

Теперь нужна возможность создания пользователей с возможностью указания прав

доступа. Может быть назначено и один вариант, и комбинация, например из такого списка:

  • редактирование каталога

  • управление пользователями

  • управление настроками

  • обработка заказов.

Думаю тут стоит использовать CDbAuthManager.

Создать вот 4 таких task.

И потом при добавлении нового пользователя в админке, например чекбоксами выбирать какие таски ему будут присвоены. А затем в цикле вызывать assign($concreteTask, $userId).

Потом для детализации можно будет добавить операции к таскам. А вот получается ролей определенных здесь нет, а если есть то получается множество из 16 ролей…

Роли в этом случае например guest, user, admin… А вот таски надо назначать индивидуально в админке.

Как вариант можно ещё на основе выбора тасков, каждый раз создавать роль, которой будут принадлежать эти таски, и потом эту роль assign’уть на пользователя.

Что лучше ? и вообще правильно ли я мыслю ? ::)

Спасибо.

В базовом контроллере создай метод accessRules() и играйся…Или если используешь модуль, который объединяет вышеперечисленные контроллеры, то создай такую проверку в методе beforeControllerAction класса модуля.

И если создавать роли, то для 4 действий будет 24 варианта…4! = 1 * 2 * 3 * 4 ;D

С accessRules всё примерно понятно. У меня вопрос в хранении и назначении этих прав. Как работают проверки понимаю, ну кроме bizRule для тасков которые в йерархии посередине чего-нить :blink:

Вот имхо это не врите ::) тут ведь порядок значения не имеет, вроде всё же 16.