|
15 | 15 | from rest_framework.views import APIView |
16 | 16 |
|
17 | 17 | from openedx_authz import api |
18 | | -from openedx_authz.rest_api.utils import filter_users, get_user_by_username_or_email, sort_users, view_auth_classes |
| 18 | +from openedx_authz.rest_api.utils import ( |
| 19 | + filter_users, |
| 20 | + get_user_by_username_or_email, |
| 21 | + get_user_map, |
| 22 | + sort_users, |
| 23 | + view_auth_classes, |
| 24 | +) |
19 | 25 | from openedx_authz.rest_api.v1.paginators import AuthZAPIViewPagination |
20 | 26 | from openedx_authz.rest_api.v1.permissions import HasLibraryPermission |
21 | 27 | from openedx_authz.rest_api.v1.serializers import ( |
@@ -193,7 +199,11 @@ def get(self, request: HttpRequest) -> Response: |
193 | 199 | query_params = serializer.validated_data |
194 | 200 |
|
195 | 201 | user_role_assignments = api.get_all_user_role_assignments_in_scope(query_params["scope"]) |
196 | | - response_data = UserRoleAssignmentSerializer(user_role_assignments, many=True).data |
| 202 | + usernames = {assignment.subject.username for assignment in user_role_assignments} |
| 203 | + response_data = UserRoleAssignmentSerializer( |
| 204 | + user_role_assignments, many=True, context={"user_map": get_user_map(usernames)} |
| 205 | + ).data |
| 206 | + |
197 | 207 | filtered_users = filter_users(response_data, query_params["search"], query_params["roles"]) |
198 | 208 | user_role_assignments = sort_users(filtered_users, query_params["sort_by"], query_params["order"]) |
199 | 209 |
|
@@ -345,17 +355,16 @@ def get(self, request: HttpRequest) -> Response: |
345 | 355 | serializer = ListRolesWithScopeSerializer(data=request.query_params) |
346 | 356 | serializer.is_valid(raise_exception=True) |
347 | 357 |
|
348 | | - scope = api.ScopeData(namespaced_key=serializer.validated_data["scope"]) |
| 358 | + scope = api.ContentLibraryData(external_key=serializer.validated_data["scope"]) |
349 | 359 | roles = api.get_role_definitions_in_scope(scope) |
350 | 360 |
|
351 | 361 | response_data = [] |
352 | 362 | for role in roles: |
353 | 363 | users = api.get_users_for_role(role.external_key) |
354 | | - permissions = [perm.action.external_key for perm in role.permissions] |
355 | 364 | response_data.append( |
356 | 365 | { |
357 | 366 | "role": role.external_key, |
358 | | - "permissions": permissions, |
| 367 | + "permissions": role.get_permission_identifiers(), |
359 | 368 | "user_count": len(users), |
360 | 369 | } |
361 | 370 | ) |
|
0 commit comments