diff --git a/src/djangooidc/backends.py b/src/djangooidc/backends.py index 2de6adc3e..3f5c1022e 100644 --- a/src/djangooidc/backends.py +++ b/src/djangooidc/backends.py @@ -60,6 +60,7 @@ class OpenIdConnectBackend(ModelBackend): else: try: user = UserModel.objects.get_by_natural_key(username) + request.session["is_new_user"] = False except UserModel.DoesNotExist: return None # run this callback for a each login diff --git a/src/djangooidc/views.py b/src/djangooidc/views.py index 4b111f130..0eaf28f01 100644 --- a/src/djangooidc/views.py +++ b/src/djangooidc/views.py @@ -114,7 +114,9 @@ def login_callback(request): user.set_user_verification_type() should_update_user = True - if is_new_user: + # If we're dealing with a new user and if this field isn't set already, + # Then set this to False. Otherwise, if we set the field manually it'll revert. + if is_new_user and not user.finished_setup: user.finished_setup = False should_update_user = True