Как реализовать роли владения для определенных c моделей через DRF - PullRequest
0 голосов
/ 18 апреля 2020

Есть два типа моделей, User и Object.

Каждый User может иметь различный уровень владения Object, который будет иметь различные разрешения при доступе к конечным точкам DRF (ownership=ManyToManyField(Object, through='UserObject')).

например, User с ownership.permission='Owner' для Object будет иметь разрешения CRUD, в то время как User с ownership.permission='Manager' будет иметь только разрешения RU, в то время как User без владельца будет иметь только C permissions.

В настоящее время я храню отношения с двумя таблицами OwnershipLevel с M2M до Permissions, в которых указывается, какое из разрешений CRUD имеет роль, но каждая транзакция API является тяжелой БД, которую я должен получить пользовательские разрешения в начале.

Ищите способ уменьшить нагрузку на БД, если это возможно, путем кэширования разрешений роли для загрузки или чего-то еще.

Спасибо!

...