Гриша К.
Новичок
Структура таблиц при разграничение прав доступа: пользователи, группы, права, объекты
Здравствуйте.
Есть задача сделать возможность управления разграничением прав доступа пользователей на сайте:
пользователям назначаются права (просмотр, добавление, редактирование, удаление)
на объекты (каталог товаров -> добавление, редактирование),
пользователи группируются в группы (администраторы, партнеры, пользователи).
Перед этим попробовал phpGACL http://php.russofile.ru/ru/translate/rights/phpgacl/, очень большой модуль, много возможностей, и решил попробовать сделать что-то по проще, потому что все что мне надо, это те права и группы, которые описаны выше. Я также думаю, что данный модуль добавит дополнительную нагрузку на сайт, и если его использовать, необходимо будет синхронизировать таблицу пользователей, либо добовлять пользователей в модуль в ручную, вот это мне не нравится.
В соответствии с этой статьей http://www.citforum.ru/programming/digest/access.shtml, решил сделать похожую структуру БД, но проблема в том, что нужно сделать так, чтобы пользователю можно было назначать или отменять персональные права доступа, возможно вы используете похожие схемы и могли бы подсказать какой-то вариант решения?
Вот пример запроса к БД, с указанием структуры:
Здравствуйте.
Есть задача сделать возможность управления разграничением прав доступа пользователей на сайте:
пользователям назначаются права (просмотр, добавление, редактирование, удаление)
на объекты (каталог товаров -> добавление, редактирование),
пользователи группируются в группы (администраторы, партнеры, пользователи).
Перед этим попробовал phpGACL http://php.russofile.ru/ru/translate/rights/phpgacl/, очень большой модуль, много возможностей, и решил попробовать сделать что-то по проще, потому что все что мне надо, это те права и группы, которые описаны выше. Я также думаю, что данный модуль добавит дополнительную нагрузку на сайт, и если его использовать, необходимо будет синхронизировать таблицу пользователей, либо добовлять пользователей в модуль в ручную, вот это мне не нравится.
В соответствии с этой статьей http://www.citforum.ru/programming/digest/access.shtml, решил сделать похожую структуру БД, но проблема в том, что нужно сделать так, чтобы пользователю можно было назначать или отменять персональные права доступа, возможно вы используете похожие схемы и могли бы подсказать какой-то вариант решения?
Вот пример запроса к БД, с указанием структуры:
PHP:
SELECT *
FROM
users, #user_id, user_name
groups, #group_id, group_name
rights, #right_id, right_name
objects, #object_id, object_name
user_group, #user_id, group_id
user_right, #user_id, right_id, object_id
group_right #group_id, right_id, object_id
WHERE
users.user_id = user_group.user_id AND
groups.group_id = user_group.group_id AND
users.user_id = user_right.user_id AND
rights.right_id = user_right.right_id AND
groups.group_id = group_right.group_id AND
rights.right_id = group_right.right_id AND
objects.object_id = user_right.object_id AND
objects.object_id = group_right.object_id