From 32d68c23d8cab5fb87459ca15c9a9e7c8eb1ebec Mon Sep 17 00:00:00 2001 From: Maria Grimaldi Date: Tue, 25 Nov 2025 20:18:46 +0100 Subject: [PATCH 1/3] fix: use short_name instead of name when building library key --- openedx_authz/engine/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx_authz/engine/utils.py b/openedx_authz/engine/utils.py index 94fc9180..5d15fd65 100644 --- a/openedx_authz/engine/utils.py +++ b/openedx_authz/engine/utils.py @@ -125,7 +125,7 @@ def migrate_legacy_permissions(ContentLibraryPermission): continue # Generating scope based on library identifier - scope = f"lib:{permission.library.org.name}:{permission.library.slug}" + scope = f"lib:{permission.library.org.short_name}:{permission.library.slug}" if permission.group: # Permission applied to a group From 2a0b2484bf911a5f721cabc13d73b1a0549c816e Mon Sep 17 00:00:00 2001 From: Maria Grimaldi Date: Tue, 25 Nov 2025 20:21:37 +0100 Subject: [PATCH 2/3] docs: update changelog entries --- CHANGELOG.rst | 8 ++++++++ openedx_authz/__init__.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 12fe351a..feb7d215 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -16,6 +16,14 @@ Unreleased * +0.19.1 - 2025-11-25 +******************** + +Fixed +===== + +* Use `short_name` instead of `name` from organization when building library key. + 0.19.0 - 2025-11-18 ******************** diff --git a/openedx_authz/__init__.py b/openedx_authz/__init__.py index 1750d297..a6e85867 100644 --- a/openedx_authz/__init__.py +++ b/openedx_authz/__init__.py @@ -4,6 +4,6 @@ import os -__version__ = "0.19.0" +__version__ = "0.19.1" ROOT_DIRECTORY = os.path.dirname(os.path.abspath(__file__)) From 4c3891d804baaef599b0d1e3438223bb6f79c9f5 Mon Sep 17 00:00:00 2001 From: Maria Grimaldi Date: Tue, 25 Nov 2025 20:27:22 +0100 Subject: [PATCH 3/3] refactor: make name and short name differ in tests --- openedx_authz/tests/test_migrations.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/openedx_authz/tests/test_migrations.py b/openedx_authz/tests/test_migrations.py index ad8b1148..5d612d01 100644 --- a/openedx_authz/tests/test_migrations.py +++ b/openedx_authz/tests/test_migrations.py @@ -15,7 +15,8 @@ # Specify a unique prefix to avoid collisions with existing data OBJECT_PREFIX = "tmlp_" -org_name = f"{OBJECT_PREFIX}org" +org_name = f"{OBJECT_PREFIX}org_full_name" +org_short_name = f"{OBJECT_PREFIX}org" lib_name = f"{OBJECT_PREFIX}library" group_name = f"{OBJECT_PREFIX}test_group" user_names = [f"{OBJECT_PREFIX}user{i}" for i in range(3)] @@ -40,7 +41,7 @@ def setUp(self): """ # Create ContentLibrary - org = Organization.objects.create(name=org_name, short_name=org_name) + org = Organization.objects.create(name=org_name, short_name=org_short_name) library = ContentLibrary.objects.create(org=org, slug=lib_name) # Create Users and Groups @@ -104,12 +105,12 @@ def tearDown(self): batch_unassign_role_from_users( users=user_names, role_external_key=LIBRARY_ADMIN.external_key, - scope_external_key=f"lib:{org_name}:{lib_name}", + scope_external_key=f"lib:{org_short_name}:{lib_name}", ) batch_unassign_role_from_users( users=group_user_names, role_external_key=LIBRARY_USER.external_key, - scope_external_key=f"lib:{org_name}:{lib_name}", + scope_external_key=f"lib:{org_short_name}:{lib_name}", ) ContentLibrary.objects.filter(slug=lib_name).delete() @@ -133,13 +134,13 @@ def test_migration(self): AuthzEnforcer.get_enforcer().load_policy() for user_name in user_names: assignments = get_user_role_assignments_in_scope( - user_external_key=user_name, scope_external_key=f"lib:{org_name}:{lib_name}" + user_external_key=user_name, scope_external_key=f"lib:{org_short_name}:{lib_name}" ) self.assertEqual(len(assignments), 1) self.assertEqual(assignments[0].roles[0], LIBRARY_ADMIN) for group_user_name in group_user_names: assignments = get_user_role_assignments_in_scope( - user_external_key=group_user_name, scope_external_key=f"lib:{org_name}:{lib_name}" + user_external_key=group_user_name, scope_external_key=f"lib:{org_short_name}:{lib_name}" ) self.assertEqual(len(assignments), 1) self.assertEqual(assignments[0].roles[0], LIBRARY_USER)