PaginationΒΆ

This package provides a pagination mixin that adds the ability to retrieve permissions in a list view.

from permission_manager_drf.pagination import PermissionManagerPaginationMixin

# Create pagination class with mixin
class Pagination(PermissionManagerPaginationMixin, PageNumberPagination):
    page_size = 10


# ViewSet
class NewsViewSet(ModelViewSet):
    pagination_class = Pagination

Example output:

{
  "count": 0,
  "next": null,
  "previous": null,
  "results": [],
  "permissions": {
    "create": {
      "allow": true,
      "messages": null
    },
  }
}

You can define which permissions should be serialized by adding the permission_manager_list_actions attribute to the view:

class NewsViewSet(ModelViewSet):
    pagination_class = Pagination
    permission_manager_list_actions = ('create', 'custom_action')
{
  "count": 0,
  "next": null,
  "previous": null,
  "results": [],
  "permissions": {
    "create": {
      "allow": true,
      "messages": null
    },
    "custom_action": {
      "allow": true,
      "messages": null
    }
  }
}