Управление разрешениями пользователей с помощью иерархии

Я создаю систему, в которой организации будут вводить информацию, относящуюся к их бизнесу. Отчетность должна быть доступна пользователям на нескольких уровнях, где некоторые пользователи будут иметь доступ только к статистике своей организации, а пользователи более высокого уровня будут иметь доступ как к статистике отдельной организации, так и к совокупной статистике по организациям более высокого уровня (см. мою диаграмму, которая иллюстрирует иерархию).

Example hierarchy

  • Внутри муниципалитета будет одна или более организаций.
  • В графстве будет один или несколько муниципалитетов
  • В штате будет один или несколько графств
  • В штате будет один или несколько штатов
  • Организации, муниципалитеты, графства, и штаты могут быть добавлены в любое время
  • Когда организация, муниципалитет, графство добавляются в систему, пользователь, который уже имеет разрешение на просмотр этого штата, должен автоматически иметь возможность просматривать отчеты по новой организации/муниципалитету/ографству без необходимости явно давать администратору разрешение на это. То же самое должно применяться к пользователям, у которых есть разрешение на просмотр отчетов на уровне муниципалитета и графства, всякий раз, когда в систему добавляется новая организация под ними в иерархии.

Некоторые примеры:

Пользователь 1: Может просматривать отчеты только для организации #1

Пользователь 2: Может просматривать отчеты для всех организаций в рамках муниципалитета #2

Пользователь 3: Может просматривать отчеты по всем организациям в муниципалитетах № 1 и 2

Пользователь 4: Может просматривать отчеты по всем организациям в округе № 3

Пользователь 5: Может просматривать отчеты по всем округам в штате № 3

Мой вопрос в том, как мне это организовать? Я не уверен, что лучший способ назначить разрешения на отчеты без назначения разрешений отдельным организациям. Это явно непрактично.

Я видел здесь несколько вопросов, которые касаются ACL, но, похоже, они к этому не применимы. Если это так, то объяснение того, как это будет относиться к ACL, также будет удовлетворительным ответом.

5
задан John Conde 20 September 2011 в 18:08
поделиться