#django
Вопрос:
Я провел последние 4 часа, просматривая так много ресурсов, пробуя все, чтобы решить эту проблему, и ничего не добился успеха. Короче говоря, я пытаюсь добавить группу по умолчанию для всех новых созданных пользователей. Пользователи создаются при первой аутентификации через AAD/SSO, но когда они входят, у них нет авторизации. Я хотел бы, чтобы они получали группу по умолчанию, когда процесс единого входа создает пользователя (например, из получателя объекта пользователя после сохранения). Я просмотрел десятки примеров, используя что-то очень похожее на приведенный ниже код. Хорошо, процесс выполняется, никогда не создает ошибок и успешно создает запись CustomUserProfile, но пользователю никогда не назначается группа по умолчанию. вероятность 110%, что группа существует, и get находит группу (выполнили упражнения, чтобы подтвердить это).
Что я в этом не так понимаю?? Почему этот процесс не создаст групповое назначение (или не запустит процесс ошибок, чтобы сообщить мне, что здесь происходит)?
использование django 3.2.8, Python 3.8.7
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
try:
if created:
instance.groups.add(Group.objects.get(name='Basis - Standard Access'))
CustomUserProfile.objects.create(user=instance).save()
except Exception as err:
print('Error creating basis user profile!')
print(err)
Ответ №1:
Итак, мне просто нужно было потратить 5 часов и/или опубликовать здесь. Проблема не в django, а в том, что связано с инструментом, который я использую для AAD/SSO: django-auth-adfs.
После повторного просмотра документов я обнаружил, что для GROUPS_CLAIM явно не установлено значение «Нет», оно удалит все группы из назначения групп django для пользователя. Я установил для этого значение «Нет», и что вы знаете … это работает!!
Публикую это решение, чтобы помочь какой-нибудь другой бедняжке, которая заблудилась и просматривает множество старых постов, удивляясь, почему оно просто не появляется. В конце концов, прочтите документы.. все документы.