diff --git a/authentik/core/models.py b/authentik/core/models.py index 00a6121db..03eb5cf21 100644 --- a/authentik/core/models.py +++ b/authentik/core/models.py @@ -491,8 +491,8 @@ class PropertyMapping(SerializerModel, ManagedModel): evaluator.set_context(user, request, self, **kwargs) try: return evaluator.evaluate(self.expression) - except (ValueError, SyntaxError) as exc: - raise PropertyMappingExpressionException from exc + except Exception as exc: + raise PropertyMappingExpressionException(str(exc)) from exc def __str__(self): return f"Property Mapping {self.name}" diff --git a/authentik/core/tests/test_property_mapping.py b/authentik/core/tests/test_property_mapping.py index d40cdf8d4..75a3610b2 100644 --- a/authentik/core/tests/test_property_mapping.py +++ b/authentik/core/tests/test_property_mapping.py @@ -31,7 +31,7 @@ class TestPropertyMappings(TestCase): """Test expression error""" expr = "return aaa" mapping = PropertyMapping.objects.create(name="test", expression=expr) - with self.assertRaises(NameError): + with self.assertRaises(PropertyMappingExpressionException): mapping.evaluate(None, None) events = Event.objects.filter( action=EventAction.PROPERTY_MAPPING_EXCEPTION, context__expression=expr @@ -44,7 +44,7 @@ class TestPropertyMappings(TestCase): expr = "return aaa" request = self.factory.get("/") mapping = PropertyMapping.objects.create(name="test", expression=expr) - with self.assertRaises(NameError): + with self.assertRaises(PropertyMappingExpressionException): mapping.evaluate(get_anonymous_user(), request) events = Event.objects.filter( action=EventAction.PROPERTY_MAPPING_EXCEPTION, context__expression=expr