From cb269e2289600299929a28e27a81a75b5e5d0160 Mon Sep 17 00:00:00 2001 From: Diego Cirilo Date: Sun, 20 Sep 2026 00:46:51 -0300 Subject: [PATCH] =?UTF-8?q?atualizando=20dados=20de=20usu=C3=A1rio=20a=20c?= =?UTF-8?q?ada=20login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- users/adapters.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/users/adapters.py b/users/adapters.py index dbf5700..3b466af 100644 --- a/users/adapters.py +++ b/users/adapters.py @@ -49,10 +49,20 @@ def populate_user(self, request, sociallogin, data): return user + def pre_social_login(self, request, sociallogin): + # Runs on every SUAP login, unlike save_user (signup only). This is + # what keeps avatar/name/campus/type in sync for returning users. + if sociallogin.is_existing: + self._sync_user_from_suap(sociallogin.user, sociallogin) + sociallogin.user.save() + def save_user(self, request, sociallogin, form=None): user = super().save_user(request, sociallogin, form) + self._sync_user_from_suap(user, sociallogin) + user.save() + return user - # Update user data from SUAP on every login + def _sync_user_from_suap(self, user, sociallogin): extra_data = sociallogin.account.extra_data # Update email (in case it changed) @@ -119,8 +129,5 @@ def save_user(self, request, sociallogin, form=None): user.curso = "" user.periodo_referencia = "" - user.save() - return user - def is_open_for_signup(self, request, sociallogin): return settings.OPEN_FOR_SIGNUP or False