Можно ли стандартными методами создать группу гостя в Django?
Мне необходимо, чтобы неавторизованные пользователи имели группу, скажем "Гость", настраиваемую также, как и все остальные группы. Можно ли стандартными методами Django сделать так, чтобы каждый неавторизованный пользователь числился в группе "Гость", и соответственно имел её права? Либо же придётся при каждом запросе проверки прав делать запрос на request.user.is_authenticated, и если он False, то вручную прописывать значение для группы? Если это можно реализовать нормально, прошу объяснить, как.
Ответы (1 шт):
Согласно докам можно отдавать права через методы указанные в доках через бэкэнд аутентификации
https://docs.djangoproject.com/en/3.1/topics/auth/customizing/#authorization-for-anonymous-users
Сам список групп отдать не получится, но можно радавать права:
from django.contrib.auth.backends import BaseBackend
class AnonBackend(BaseBackend):
def get_group_permissions(self, user_obj, obj=None):
if user_obj.is_is_anonymous:
return Group.objects.get(name="анонгруппа").permissions.all()
return super().get_group_permissions(user_obj, obj)
и добавь в AUTHENTICATION_BACKENDS