Я видел несколько сложных схем разрешений. Для этого всегда было оправдание, но, к сожалению, в какой-то момент все они стали слишком сложными, чтобы иметь дело с ними, и превратились в нечто более простое.
Мой личный вывод теперь таков: придерживайтесь Контроль доступа на основе ролей ( RBAC ). Это единственный разумный подход, который все понимают. Это как-то ограничено, но достаточно для большинства случаев.
Кроме того, используйте запретить по умолчанию политику , то есть вы предоставляете только права. Опять же, я видел систему с противоположной (разрешенной по умолчанию) или даже настраиваемой политикой по умолчанию (!), И я не считаю ее разумной.