From d3398cc51f916b833975e5c37f65d4b17c0364a2 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 21 Dec 2023 18:03:23 +0100 Subject: [PATCH] Better error handling fix #3134 --- modoboa/admin/api/v1/serializers.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modoboa/admin/api/v1/serializers.py b/modoboa/admin/api/v1/serializers.py index f4d8651f8..b1769ccc8 100644 --- a/modoboa/admin/api/v1/serializers.py +++ b/modoboa/admin/api/v1/serializers.py @@ -17,6 +17,7 @@ from modoboa.admin import models as admin_models from modoboa.core import ( constants as core_constants, models as core_models, signals as core_signals ) +from modoboa.lib.exceptions import AliasExists from modoboa.lib import ( email_utils, exceptions as lib_exceptions, fields as lib_fields, permissions, validators, web_utils @@ -467,8 +468,11 @@ class AliasSerializer(serializers.ModelSerializer): def validate_address(self, value): """Check domain.""" - local_part, self.domain = admin_models.validate_alias_address( - value, self.context["request"].user, instance=self.instance) + try: + local_part, self.domain = admin_models.validate_alias_address( + value, self.context["request"].user, instance=self.instance) + except (AliasExists, ValidationError) as err: + raise serializers.ValidationError(err) return value.lower() def create(self, validated_data):