mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-17 10:13:56 -05:00
Setting appropriate permissions
This commit is contained in:
parent
85f5963851
commit
26fc27da9b
@ -1,6 +1,6 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from .models import Sender, Tag, Document
|
from .models import Sender, Tag, Document, Log
|
||||||
|
|
||||||
|
|
||||||
class SenderSerializer(serializers.HyperlinkedModelSerializer):
|
class SenderSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
@ -39,3 +39,16 @@ class DocumentSerializer(serializers.ModelSerializer):
|
|||||||
"file_name",
|
"file_name",
|
||||||
"download_url"
|
"download_url"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class LogSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
time = serializers.DateTimeField()
|
||||||
|
messages = serializers.CharField()
|
||||||
|
|
||||||
|
class Meta(object):
|
||||||
|
model = Log
|
||||||
|
fields = (
|
||||||
|
"time",
|
||||||
|
"messages"
|
||||||
|
)
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.views.generic import FormView, DetailView
|
from django.views.generic import FormView, DetailView
|
||||||
|
|
||||||
|
from rest_framework.mixins import (
|
||||||
|
RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, ListModelMixin)
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination
|
||||||
from rest_framework.viewsets import ModelViewSet
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
from rest_framework.viewsets import (
|
||||||
|
ModelViewSet, ReadOnlyModelViewSet, GenericViewSet)
|
||||||
|
|
||||||
from paperless.db import GnuPG
|
from paperless.db import GnuPG
|
||||||
|
|
||||||
from .forms import UploadForm
|
from .forms import UploadForm
|
||||||
from .models import Sender, Tag, Document
|
from .models import Sender, Tag, Document, Log
|
||||||
from .serialisers import SenderSerializer, TagSerializer, DocumentSerializer
|
from .serialisers import (
|
||||||
|
SenderSerializer, TagSerializer, DocumentSerializer, LogSerializer)
|
||||||
|
|
||||||
|
|
||||||
class FetchView(DetailView):
|
class FetchView(LoginRequiredMixin, DetailView):
|
||||||
|
|
||||||
model = Document
|
model = Document
|
||||||
|
|
||||||
@ -40,9 +46,9 @@ class FetchView(DetailView):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
class PushView(FormView):
|
class PushView(LoginRequiredMixin, FormView):
|
||||||
"""
|
"""
|
||||||
A crude REST API for creating documents.
|
A crude REST-ish API for creating documents.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
form_class = UploadForm
|
form_class = UploadForm
|
||||||
@ -69,6 +75,7 @@ class SenderViewSet(ModelViewSet):
|
|||||||
queryset = Sender.objects.all()
|
queryset = Sender.objects.all()
|
||||||
serializer_class = SenderSerializer
|
serializer_class = SenderSerializer
|
||||||
pagination_class = StandardPagination
|
pagination_class = StandardPagination
|
||||||
|
permission_classes = (IsAuthenticated,)
|
||||||
|
|
||||||
|
|
||||||
class TagViewSet(ModelViewSet):
|
class TagViewSet(ModelViewSet):
|
||||||
@ -76,10 +83,24 @@ class TagViewSet(ModelViewSet):
|
|||||||
queryset = Tag.objects.all()
|
queryset = Tag.objects.all()
|
||||||
serializer_class = TagSerializer
|
serializer_class = TagSerializer
|
||||||
pagination_class = StandardPagination
|
pagination_class = StandardPagination
|
||||||
|
permission_classes = (IsAuthenticated,)
|
||||||
|
|
||||||
|
|
||||||
class DocumentViewSet(ModelViewSet):
|
class DocumentViewSet(RetrieveModelMixin,
|
||||||
|
UpdateModelMixin,
|
||||||
|
DestroyModelMixin,
|
||||||
|
ListModelMixin,
|
||||||
|
GenericViewSet):
|
||||||
model = Document
|
model = Document
|
||||||
queryset = Document.objects.all()
|
queryset = Document.objects.all()
|
||||||
serializer_class = DocumentSerializer
|
serializer_class = DocumentSerializer
|
||||||
pagination_class = StandardPagination
|
pagination_class = StandardPagination
|
||||||
|
permission_classes = (IsAuthenticated,)
|
||||||
|
|
||||||
|
|
||||||
|
class LogViewSet(ReadOnlyModelViewSet):
|
||||||
|
model = Log
|
||||||
|
queryset = Log.objects.all().by_group()
|
||||||
|
serializer_class = LogSerializer
|
||||||
|
pagination_class = StandardPagination
|
||||||
|
permission_classes = (IsAuthenticated,)
|
||||||
|
@ -21,12 +21,13 @@ from django.contrib import admin
|
|||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from documents.views import (
|
from documents.views import (
|
||||||
FetchView, PushView, SenderViewSet, TagViewSet, DocumentViewSet)
|
FetchView, PushView, SenderViewSet, TagViewSet, DocumentViewSet, LogViewSet)
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register(r'senders', SenderViewSet)
|
router.register(r'senders', SenderViewSet)
|
||||||
router.register(r'tags', TagViewSet)
|
router.register(r'tags', TagViewSet)
|
||||||
router.register(r'documents', DocumentViewSet)
|
router.register(r'documents', DocumentViewSet)
|
||||||
|
router.register(r'logs', LogViewSet)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user