Нужно ли мне несколько пользовательских классов разрешений для разных типов объектов?

Для примера, у меня есть модель курса с сообществом в качестве внешнего ключа. В моем пользовательском классе разрешения has_object_permission я бы проверил

if UserCommunity.objects.filter(user=request.user, community=obj.community,role="admin").exists()

Разрешить доступ

Теперь у меня есть различные модели, например, пост курса, который имеет внешний ключ к курсу, и я могу получить доступ к сообществу по этому ключу курса.

Нужно ли создавать несколько пользовательских классов разрешений для этих разных объектов? Есть ли лучший способ.

Я назвал свой первый класс разрешения как IsCommunityAdminOrCreator, теперь все, что я могу себе представить, происходит

IsCommunityAdminOrCreatorCoursePost

IsCommunityAdminOrCreatorCourseChallenge

И так далее...

Вернуться на верх