Про распределение прав

akxxiv

Новичок
Про распределение прав

Есть CMS-ка, в которой можно создавать страницы любой вложенности, этим страницам придавать разные функции, ну, допустим, для страницы (раздела) site.ru/forum/ прописывается что это форум и соодветственно задействуется нужный модуль.

До сих пор администраторская чать паролировалась с помощью .htaccess, и имела только одного администратора. Если какой нибудь модуль требовал авторизации и распределения прав сия функция реализовывалась конкретно для данного модуля.

Но вот теперь хочется реализовать единую систему авторизации. Т.е. чтобы система определяла пользователя и определяла его права как на самом сайте, который администрируется данной CMS, так в пределах административной части.
Сначала была идея сделать несколько ролей и для каждой страницы проставлять права для каждой из ролей.
Роли:
  • администратор
  • пользователь (зарегистриованный посетитель)
  • Посетитель
Права
  • Просмотр
  • Добавление
  • Изменение
  • Удаление
Но тут проблема в наличии модулей, которые имеют свою систему прав
например форум, в котором есть права для просмотра сообщений, управления своими сообщениями и чужими, бан или наделение модераторскими функциями отдельных пользователей.

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

akxxiv

Новичок
Автор оригинала: Popoff
akxxiv

А можешь дать ссылки на те материалы, которые ты прочитал?
Собственно основные - это те, которые есть на Вашем сайте.
Правда это было уже давно. Читаю второй раз, начинается просветление. Единственное что пока не понимаю как у Вас это реализовано. Пытаюсь разобрать скрипт, но пока что-то плохо получается.

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

-~{}~ 10.05.06 22:21:

А что, при загрузке страницы система выбират всех пользователей и все возможные привилегии? Т.е. все все?

-~{}~ 10.05.06 22:27:

А если в системе десятки тысяч пользователей, ну мало ли, система будет загружать их всех при каждой загрузке? Или я что-то не допонимаю? ...
 

Valdisss

Guest
Ты что-то не допонимаешь :)

-~{}~ 10.05.06 22:43:

Обрисовывай реальную задачу, а не абстрактны мысли, тогда тебе помогут
 

Toshka

Новичок
у меня лично у каждого пользователя есть некая маска возможностей - и при определенном действии по этой маске проверяет наличие прав - если нет, то гуляй:) ну и ссответственно, для гостя тоже есть такая маска(с меньшими правами) и дефолтовая маска, которая дается зарегестрированным пользователям. ну а дальше эту маску можно редактировать у каждого конкретного пользователя
 

uliss

Новичок
А UNIX модель не подойдет?
Есть пользователи и группы пользователей.
Есть права - на чтение, выполнение и запись и т.д.
И есть модули - и для каждого модуля указывается что могут с ним делать:
владелец (например админ), группа(напр. модераторы) и все остальные.
 

ybilevych

Новичок
akxxiv
Можно сделать так:
Создать таблицы:
- Пользователи
- Модули
- Матрица прав
В матрице прав поля:
user_id | module_id | rights
Установить уникальный ключ на user_id & module_id

Тогда каждый пользователь будет иметь свои персональные права на каждый модуль.
 
Сверху