Разработка многоуровневой системы разрешений для пользователей - PullRequest
7 голосов
/ 20 мая 2011

Я работаю на сайте, который имеет схему базы данных, например дерево. Сверху вниз у меня есть:

  • Одна компания может иметь много
  • Места, которые могут иметь много
  • флотов, которые могут иметь много
  • Транспортные средства

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

Каким будет правильный способ разработки схемы для такой системы разрешений, как эта? Будет ли реалистичным хранить каждый узел, к которому у пользователя есть доступ, даже если он будет отчасти избыточным? Цель состоит в том, чтобы я мог легко выполнять запросы, например, чтобы получить все местоположения, к которым у пользователя есть доступ.

1 Ответ

4 голосов
/ 20 мая 2011

Вы можете найти несколько тем на ТАК интересным. Среди них:

Реализация разрешений на основе репутации

Схема базы данных для ACL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...