Попытка разделить права пользователей.

CHEM_Eugene

Новичок
Попытка разделить права пользователей.

Долго копал google, но почти ничего о способах разделения прав пользователей не нашел...
Имеем cms с реализацией FrontController. На уровне соответствующего модуля организован слой служб в виде PageController.
Необходимо придумать систему разделения прав по ролям: root, admin, editor, manager, user, guest, advertice client и т.д.

Меня интересует как это вообще должно быть устроено. Для начала как хранить и что хранить в базе.
На ум приходит простая схема: 3 таблицы в mysql:
roles(id, role, description),
rules(id, service, description),
rulesByRoles (id, id_role, id_rule)

В rules прописать весь API слоя служб и при каждом запросе обращаться ко всем этим таблицам и для данного юзера по его роли проверять доступен ли вызов данного метода.

Понимаю, что это реализация "в лоб". Может быть есть более элегантные решения? Какие у кого идеи на этот счет.
 

fixxxer

К.О.
Партнер клуба
нормальное решение
если интересуют вариации, погугли access control list
 

iSlayter

Новичок
CHEM_Eugene, http://php.russofile.ru/ru/translate/rights/phpgacl/ советую ознакомиться.
 

iSlayter

Новичок
CHEM_Eugene, так вас интересует как это устроено и по какому принципу работает или вы ищете готовое решение, которое легко интегрировать с вашим готовым продуктом?

в любом случае phpgacl очень удобная вещь. подходит и для первого и для второго случаев...
 

CHEM_Eugene

Новичок
iSlayter, больше интересовал принцип. Разобрал эту штуку, понятно в каком направлении двигаться. Спасибо
 
Сверху