mirror of
https://github.com/goauthentik/authentik.git
synced 2026-08-30 18:51:39 -07:00
lib/expression: use literal fallback in ak_obj_attr (#25414)
* fix: use literal fallback in ak_obj_attr * fix: use literal fallback in ak_obj_attr * fix check Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io> Co-authored-by: ace2016 <ace2016@users.noreply.github.com> Co-authored-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
@@ -174,8 +174,8 @@ class BaseEvaluator:
|
||||
return fallback value."""
|
||||
attrs = getattr(obj, "attributes", {})
|
||||
value = get_path_from_dict(attrs, attr_key)
|
||||
if value is None and fallback:
|
||||
return getattr(obj, fallback)
|
||||
if value is None and fallback is not None:
|
||||
return getattr(obj, fallback, fallback)
|
||||
return value
|
||||
|
||||
def expr_event_create(self, action: str, **kwargs):
|
||||
|
||||
@@ -39,6 +39,17 @@ class TestEvaluator(TestCase):
|
||||
"""Test expr_is_group_member"""
|
||||
self.assertFalse(BaseEvaluator.expr_is_group_member(create_test_admin_user(), name="test"))
|
||||
|
||||
def test_expr_obj_attr(self):
|
||||
"""Test expr_obj_attr"""
|
||||
user = create_test_user()
|
||||
user.attributes = {"locale": "en-US"}
|
||||
|
||||
self.assertEqual(BaseEvaluator.expr_obj_attr(user, "locale", "en-GB"), "en-US")
|
||||
self.assertEqual(BaseEvaluator.expr_obj_attr(user, "missing", "username"), user.username)
|
||||
self.assertEqual(BaseEvaluator.expr_obj_attr(user, "missing", "en-GB"), "en-GB")
|
||||
self.assertEqual(BaseEvaluator.expr_obj_attr(user, "missing", ""), "")
|
||||
self.assertIsNone(BaseEvaluator.expr_obj_attr(user, "missing"))
|
||||
|
||||
def test_expr_event_create(self):
|
||||
"""Test expr_event_create"""
|
||||
evaluator = BaseEvaluator(generate_id())
|
||||
|
||||
Reference in New Issue
Block a user