def get(self, request, program_uuid=None): # lint-amnesty, pylint: disable=unused-argument """ Defines the GET list endpoint for ProgramEnrollment objects. """ enrollments = fetch_program_enrollments(self.program_uuid).using( read_replica_or_default()) paginated_enrollments = self.paginate_queryset(enrollments) serializer = ProgramEnrollmentSerializer(paginated_enrollments, many=True) return self.get_paginated_response(serializer.data)
def _check_program_enrollment_exists(user, program_uuid): """ Raises ``PermissionDenied`` if the user is not enrolled in the program with the given UUID. """ user_enrollment_qs = fetch_program_enrollments( program_uuid=program_uuid, users={user}, program_enrollment_statuses={ProgramEnrollmentStatuses.ENROLLED}, ) if not user_enrollment_qs.exists(): raise PermissionDenied
def wrapped_function(self, *args, **kwargs): """ Wraps the given view_function. """ user_enrollment_qs = fetch_program_enrollments( program_uuid=self.program_uuid, users={self.target_user}, program_enrollment_statuses={ProgramEnrollmentStatuses.ENROLLED}, ) if not user_enrollment_qs.exists(): raise PermissionDenied return view_func(self, *args, **kwargs)