Xpoint
   [напомнить пароль]

Разграничение доступа в CMS на разных уровнях

Метки: [без меток]
2005-09-28 12:10:47 [обр] Михаил Евдокимов(0/1)[досье]

Приветствую!

Есть несколько вопросов по реализации разграничения доступа в CMS на разных уровнях.
Есть система, и надо ее расширить, но не пойму, как реализовать вышесказанное.

Существуют пользователи системы, относящиеся к разным группам, например SysAdmin (1 юзер), Admin (n), Reseller (n), User (n). Соответственно инфа о пользователях хранится в таблице users, а о группах — в usergroups.

Нужно, чтоб эти группы могли видеть только определенные, назначенные им SysAdmin, модули. Это уже реализовал с помощью таблицы usergroups_modules (usergroup_id,module_id).

Далее...

  1. Необходимо сделать так, чтоб при авторизации в системе, пользователи из группы Admin при открытии модуля User Management видели только своих Resellers и Users. Соответственно, Resellers видели бы только своих Users. Ну и SysAdmin видел бы пользователей из всех групп. Как это реализовать? Нужно ли в таблице users (user_id,usergroup_id,user_name,...) добавить поле user_parentId или есть более умные реализации всего этого?
  1. Необходимо, разграничить доступ к функциям самого модуля на уровне групп пользователей. Предположим, что SysAdmin и Admin имеют доступ к одному модулю. Однако SysAdmins могут все, а Admins могут только читать какую-то инфу из этого модуля, но не могут ее изменять. Я подумал про создание таблицы actions (action_id,action_name,...) и про связку ее с usergroups через usergroups_actions (usergroup_id,action_id). Дальше этого пока мысли не родились. Если кто имел дело с аналогичными конструкциями, буду благодарен, если поделитесь соображениями на этот счет, т.е. что еще нужно или как по-другому это реализовать?

Заранее большое спасибо!

С уважением,
Михаил

Powered by POEM™ Engine Copyright © 2002-2005