Аутентификация и роли

Опять же всем привет.

Удалось мне реализовать аутентификацию используя данные хранящиеся в базе (MySQL)

Я уж было обрадовался, но увидел, что система не понимает кто админ, а кто не админ.

Точнее, он всех кто залогинился воспринимает как админов. дает редактировать и удалять записи.

Уже несколько часов читаю разные маны, но никак не могу понять, что не так. Пожалуйста, если у кого есть точечный совет, дайте пожалуйста.

Где смотреть? Что искать? Куда ковырять?

Спасибо.

Елки палки…

Порой так трудно даются несложные вещи. Но, хоть убейте, перечитал разные доки про RBAC и по русски и по английски. Ясности не прибавилось.

Логика то не сложная. Вот например вывод меню.

Хочется, чтобы у юзера было свое меню, у админа свое, а у супер админа совсем свое.

(про гостя все понятно, ибо проверка user->isGuest дает положенный результат.

Но, как быть с остальным? Так и хочется определить user->isAdmin, user->isSuperAdmin ну и так далее…

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

Но с другой стороны, прямое обращение (даже если кнопка скрыта) на action позволит и удалять и редактировать.

Отсюда вопрос… Точнее даже не вопрос, а просьба. Если у кого-то есть время и возможность, объясните пожалуйста на пальцах, как лучше, а главное правильно сделать такое распределение ролей.

Создается впечатление, что все индивидуально перекраивают под себя.

Я, конечно, понимаю, что вы прочитали доки по RBAC, но всё-таки там довольно ясно изложено: http://www.yiiframework.com/doc/guide/1.1/ru/topics.auth#sec-9

В каждом контроллере/экшене нужно выполнять проверку:




if (Yii::app()->user->checkAccess('editSomething', $params))

    // ...



В расширениях есть удобная штука для редактирования ролей, поищите.

А вообще можно было, наверное, обойтись и простыми “отметками” в таблице юзеров (супер админ, админ и т.д.), но не знаю, насколько это будет “тру” при наличии такого мощного инструмента как RBAC :)

andy_s, спасибо за ответ. он заставляет задуматься, что если кто-то понимает как должно работать, то и ты (т.е. я) могу понять.

Вы мне скинули ссылку… я начинающий. У меня получается все (или почти все) с моим приложением, но именно распределение прав - стена.

Там по ссылке я прочитал до места "Приведём пример построения иерархии авторизации с использованием данного API:"

и все… я не понимаю где… в каком файле… в каком месте… и что именно мне нужно сделать.

Я понимаю, что то что там написано - это уже для тех, кто понимает больше чем я. Но что делать мне?

Если бы меня спросили, чем мне можно помочь. Я бы попросил объяснить как для идиота.

… открываем файл, тут написано то-то… надо дописать то-то, потому что так то и так то…

нигде так не разложено.

Ах как жалко, я всегда завидовал тем, у кого хватает силы воли вникать… у меня всегда была проблема с этим. Почему я очень хорошо понимаю все что связано (например) с MySQL… но не могу понять что-то про Yii?

Это моя проблема?

Вот вам:

http://www.yiiframework.com/search/?q=rbac&type=wiki&lang=

Ну и самый обширный набор тем :lol:

http://www.yiiframework.com/search/?q=rbac&lang=&type=forum

Ничего страшного, однажды поняв, уже трудно будет отказаться ;)