Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
********************

Expand Down
2 changes: 1 addition & 1 deletion openedx_authz/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

import os

__version__ = "0.19.0"
__version__ = "0.19.1"

ROOT_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
2 changes: 1 addition & 1 deletion openedx_authz/engine/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 7 additions & 6 deletions openedx_authz/tests/test_migrations.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand All @@ -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
Expand Down Expand Up @@ -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()
Expand All @@ -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)
Expand Down