From 6d3e067a2bb56603e728befb10ed63ac92420ea3 Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Tue, 25 May 2021 11:46:15 +0200 Subject: [PATCH] stages/user_write: handle integrity error Signed-off-by: Jens Langhammer --- authentik/stages/user_write/stage.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/authentik/stages/user_write/stage.py b/authentik/stages/user_write/stage.py index 31fdac412..9bcbd9cb1 100644 --- a/authentik/stages/user_write/stage.py +++ b/authentik/stages/user_write/stage.py @@ -2,6 +2,7 @@ from django.contrib import messages from django.contrib.auth import update_session_auth_hash from django.contrib.auth.backends import ModelBackend +from django.db.utils import IntegrityError from django.http import HttpRequest, HttpResponse from django.utils.translation import gettext as _ from structlog.stdlib import get_logger @@ -84,7 +85,11 @@ class UserWriteStageView(StageView): PLAN_CONTEXT_SOURCES_CONNECTION ] user.attributes[USER_ATTRIBUTE_SOURCES].append(connection.source.name) - user.save() + try: + user.save() + except IntegrityError as exc: + LOGGER.warning("Failed to save user", exc=exc) + self.executor.stage_invalid() user_write.send( sender=self, request=request, user=user, data=data, created=user_created )