Skip to content

Commit c40dc9d

Browse files
committed
refactor: abstract process in _get_course_keys_from_scopes
1 parent d4c44ab commit c40dc9d

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

cms/djangoapps/contentstore/views/course.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from opaque_keys.edx.keys import CourseKey
3030
from opaque_keys.edx.locator import BlockUsageLocator
3131
from openedx_authz.api import get_scopes_for_user_and_permission
32-
from openedx_authz.api.data import CourseOverviewData, OrgCourseOverviewGlobData
32+
from openedx_authz.api.data import CourseOverviewData, OrgCourseOverviewGlobData, ScopeData
3333
from openedx_authz.constants.permissions import (
3434
COURSES_MANAGE_COURSE_UPDATES,
3535
COURSES_MANAGE_GROUP_CONFIGURATIONS,
@@ -824,18 +824,10 @@ def _get_course_keys_for_org_scope(org_keys: set[str]):
824824

825825
return CourseOverview.get_all_courses(orgs=org_keys).values_list('id', flat=True)
826826

827-
828-
def _get_authz_accessible_courses_list(request):
827+
def _get_course_keys_from_scopes(authz_scopes: list[ScopeData]):
829828
"""
830-
List all courses available to the logged in user by
831-
evaluating Authz scopes for course access.
829+
Convert a set of Authz scopes into specific course keys.
832830
"""
833-
user = request.user
834-
authz_scopes = get_scopes_for_user_and_permission(
835-
user.username,
836-
COURSES_VIEW_COURSE.identifier
837-
)
838-
839831
course_keys = set()
840832
org_keys = set()
841833
for access in authz_scopes:
@@ -849,9 +841,20 @@ def _get_authz_accessible_courses_list(request):
849841
key for key in _get_course_keys_for_org_scope(org_keys)
850842
if core_toggles.enable_authz_course_authoring(key)
851843
)
852-
853844
return course_keys
854845

846+
def _get_authz_accessible_courses_list(request):
847+
"""
848+
List all courses available to the logged in user by
849+
evaluating Authz scopes for course access.
850+
"""
851+
user = request.user
852+
authz_scopes = get_scopes_for_user_and_permission(
853+
user.username,
854+
COURSES_VIEW_COURSE.identifier
855+
)
856+
857+
return _get_course_keys_from_scopes(authz_scopes)
855858

856859
def _get_legacy_accessible_courses_list(request):
857860
"""

0 commit comments

Comments
 (0)