mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
import os
|
|
|
|
from django.contrib.auth.models import Group
|
|
from django.contrib.auth.models import User
|
|
from django.db.models.functions import Lower
|
|
from django.http import HttpResponse
|
|
from django.views.generic import View
|
|
from django_filters.rest_framework import DjangoFilterBackend
|
|
from documents.permissions import PaperlessObjectPermissions
|
|
from paperless.filters import GroupFilterSet
|
|
from paperless.filters import UserFilterSet
|
|
from paperless.serialisers import GroupSerializer
|
|
from paperless.serialisers import UserSerializer
|
|
from rest_framework.filters import OrderingFilter
|
|
from rest_framework.pagination import PageNumberPagination
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
|
|
|
class StandardPagination(PageNumberPagination):
|
|
page_size = 25
|
|
page_size_query_param = "page_size"
|
|
max_page_size = 100000
|
|
|
|
|
|
class FaviconView(View):
|
|
def get(self, request, *args, **kwargs):
|
|
favicon = os.path.join(
|
|
os.path.dirname(__file__),
|
|
"static",
|
|
"paperless",
|
|
"img",
|
|
"favicon.ico",
|
|
)
|
|
with open(favicon, "rb") as f:
|
|
return HttpResponse(f, content_type="image/x-icon")
|
|
|
|
|
|
class UserViewSet(ModelViewSet):
|
|
model = User
|
|
|
|
queryset = User.objects.exclude(username="consumer").order_by(Lower("username"))
|
|
|
|
serializer_class = UserSerializer
|
|
pagination_class = StandardPagination
|
|
permission_classes = (IsAuthenticated, PaperlessObjectPermissions)
|
|
filter_backends = (DjangoFilterBackend, OrderingFilter)
|
|
filterset_class = UserFilterSet
|
|
ordering_fields = ("username",)
|
|
|
|
|
|
class GroupViewSet(ModelViewSet):
|
|
model = Group
|
|
|
|
queryset = Group.objects.order_by(Lower("name"))
|
|
|
|
serializer_class = GroupSerializer
|
|
pagination_class = StandardPagination
|
|
permission_classes = (IsAuthenticated, PaperlessObjectPermissions)
|
|
filter_backends = (DjangoFilterBackend, OrderingFilter)
|
|
filterset_class = GroupFilterSet
|
|
ordering_fields = ("name",)
|