2323 unassign_role_from_user ,
2424 user_has_permission ,
2525)
26- from openedx_authz .rest_api .v1 .paginators import RoleUserAPIViewPagination
26+ from openedx_authz .rest_api .utils import get_user_by_username_or_email
27+ from openedx_authz .rest_api .v1 .paginators import AuthZAPIViewPagination
2728from openedx_authz .rest_api .v1 .serializers import (
2829 AddUserToRoleWithScopeSerializer ,
2930 ListRolesWithScopeResponseSerializer ,
3536 RoleAssignmentSerializer ,
3637)
3738
38- try :
39- from common .djangoapps .student .models .user import get_user_by_username_or_email # type: ignore
40- except ImportError :
41- get_user_by_username_or_email = None
42-
4339logger = logging .getLogger (__name__ )
4440
4541User = get_user_model ()
@@ -97,7 +93,7 @@ class RoleUserAPIView(APIView):
9793 """
9894
9995 permission_classes = [IsAuthenticated ]
100- pagination_class = RoleUserAPIViewPagination
96+ pagination_class = AuthZAPIViewPagination
10197
10298 @apidocs .schema (
10399 parameters = [
@@ -202,6 +198,7 @@ class RoleListView(APIView):
202198 """
203199
204200 permission_classes = [IsAuthenticated ]
201+ pagination_class = AuthZAPIViewPagination
205202
206203 @apidocs .schema (
207204 parameters = [
@@ -219,10 +216,9 @@ def get(self, request: HttpRequest) -> Response:
219216 serializer .is_valid (raise_exception = True )
220217
221218 scope = ContentLibraryData (namespaced_key = serializer .validated_data ["scope" ])
222-
223- response_data = []
224219 roles = get_role_definitions_in_scope (scope )
225220
221+ response_data = []
226222 for role in roles :
227223 users = get_all_users_by_role (role )
228224 permissions = [perm .action .external_key for perm in role .permissions ] if role .permissions else []
@@ -234,5 +230,8 @@ def get(self, request: HttpRequest) -> Response:
234230 }
235231 )
236232
237- serializer = ListRolesWithScopeResponseSerializer (response_data , many = True )
238- return Response (serializer .data , status = status .HTTP_200_OK )
233+ paginator = self .pagination_class ()
234+ paginated_response_data = paginator .paginate_queryset (response_data , request )
235+
236+ serializer = ListRolesWithScopeResponseSerializer (paginated_response_data , many = True )
237+ return paginator .get_paginated_response (serializer .data )
0 commit comments