fix Crear asociación con la autenticación social al usuario Django

Cuando un usuario se autentica socialmente (vg vía SAML), además del usuario de Django
se crea un registro que asocia al usuario proporcionado por la autenticación social
con el usuario de Django.

En el caso de los invitados, si el usuario no existe hay que crearlo,
y hay que generar manualmente la vinculación con la autenticación social
para que puedan iniciar sesión.
parent 4a85b010
from django import forms
from django.utils.translation import gettext_lazy as _
from social_django.models import UserSocialAuth
from social_django.utils import load_strategy
from .models import ParticipanteProyecto, Proyecto, TipoParticipacion
from accounts.models import CustomUser as CustomUser
......@@ -35,6 +36,11 @@ class InvitacionForm(forms.ModelForm):
raise forms.ValidationError(
_(f"¡Usuario desconocido! No se ha encontrado el NIP «{nip}».")
)
# HACK
usuario_social = UserSocialAuth(
uid=f"lord:{usuario.username}", provider="saml", user=usuario
)
usuario_social.save()
get_identidad(load_strategy(self.request), None, usuario)
if not usuario.is_active:
......
......@@ -196,6 +196,7 @@ SOCIAL_AUTH_SAML_SUPPORT_CONTACT = {
"givenName": "Vicerrectorado de Política Académica",
"emailAddress": "innova.docen@manhattan.local",
}
# Si se cambia el backend de autenticación, actualizar clean() en InvitacionForm
SOCIAL_AUTH_SAML_ENABLED_IDPS = {
"lord": {
"entity_id": "https://FIXME.idp.com/saml2/idp/metadata.php",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment