Skip to content

Commit 5fd8880

Browse files
committed
refactor: rename pagination class and update imports in views
1 parent 39b53b4 commit 5fd8880

2 files changed

Lines changed: 12 additions & 13 deletions

File tree

openedx_authz/rest_api/v1/paginators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
from rest_framework.pagination import PageNumberPagination
44

55

6-
class RoleUserAPIViewPagination(PageNumberPagination):
7-
"""Pagination class for the RoleUserAPIView."""
6+
class AuthZAPIViewPagination(PageNumberPagination):
7+
"""Pagination class for the AuthZ API views."""
88

99
page_size = 10
1010
page_size_query_param = "page_size"

openedx_authz/rest_api/v1/views.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
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
2728
from openedx_authz.rest_api.v1.serializers import (
2829
AddUserToRoleWithScopeSerializer,
2930
ListRolesWithScopeResponseSerializer,
@@ -35,11 +36,6 @@
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-
4339
logger = logging.getLogger(__name__)
4440

4541
User = 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

Comments
 (0)