Я не совсем уверен, спрашиваете ли вы, как спроектировать это или как его реализовать.
С точки зрения дизайна, это звучит так, как будто это можно решить с помощью такой модели, как хорошаястарая система разрешений UNIX или списки контроля доступа .В любом случае вам нужно знать:
- Какие разрешения имеет пользователь
- Какие разрешения требуются для выполнения какой-либо операции с каким-либо ресурсом
Итак,объекты пользователя и ресурса должны быть в состоянии нести их.Тогда это просто вопрос, где где-то делается что-то чувствительное, найти, кто это делает, и проверить, что у них есть соответствующие разрешения.
Некоторые вещи, на которые стоит обратить внимание:
- Там будетбыть много разрешений;потенциально один (или несколько) на ресурс.Здесь помогает модель групп UNIX, потому что вы можете пометить ресурс как «доступный для записи кем-либо в группе X», а затем просто добавить людей в группу X
- Одной из операций над ресурсами будет изменение разрешенийпользователь, поэтому пользователи также ресурсы.