Порой так трудно даются несложные вещи. Но, хоть убейте, перечитал разные доки про RBAC и по русски и по английски. Ясности не прибавилось.
Логика то не сложная. Вот например вывод меню.
Хочется, чтобы у юзера было свое меню, у админа свое, а у супер админа совсем свое.
(про гостя все понятно, ибо проверка user->isGuest дает положенный результат.
Но, как быть с остальным? Так и хочется определить user->isAdmin, user->isSuperAdmin ну и так далее…
И к примеру вывод кнопок удаления, редактирования тоже можно было бы сделать через эти проверки.
Но с другой стороны, прямое обращение (даже если кнопка скрыта) на action позволит и удалять и редактировать.
Отсюда вопрос… Точнее даже не вопрос, а просьба. Если у кого-то есть время и возможность, объясните пожалуйста на пальцах, как лучше, а главное правильно сделать такое распределение ролей.
Создается впечатление, что все индивидуально перекраивают под себя.
В каждом контроллере/экшене нужно выполнять проверку:
if (Yii::app()->user->checkAccess('editSomething', $params))
// ...
В расширениях есть удобная штука для редактирования ролей, поищите.
А вообще можно было, наверное, обойтись и простыми “отметками” в таблице юзеров (супер админ, админ и т.д.), но не знаю, насколько это будет “тру” при наличии такого мощного инструмента как RBAC
andy_s, спасибо за ответ. он заставляет задуматься, что если кто-то понимает как должно работать, то и ты (т.е. я) могу понять.
Вы мне скинули ссылку… я начинающий. У меня получается все (или почти все) с моим приложением, но именно распределение прав - стена.
Там по ссылке я прочитал до места "Приведём пример построения иерархии авторизации с использованием данного API:"
и все… я не понимаю где… в каком файле… в каком месте… и что именно мне нужно сделать.
Я понимаю, что то что там написано - это уже для тех, кто понимает больше чем я. Но что делать мне?
Если бы меня спросили, чем мне можно помочь. Я бы попросил объяснить как для идиота.
… открываем файл, тут написано то-то… надо дописать то-то, потому что так то и так то…
нигде так не разложено.
Ах как жалко, я всегда завидовал тем, у кого хватает силы воли вникать… у меня всегда была проблема с этим. Почему я очень хорошо понимаю все что связано (например) с MySQL… но не могу понять что-то про Yii?