Adding basic permissions management to wiki page
parent
6447b176a1
commit
8fe9b45823
|
@ -2,23 +2,32 @@ from rest_framework import generics
|
||||||
|
|
||||||
from greenmine.wiki.serializers import WikiPageSerializer, WikiPageAttachmentSerializer
|
from greenmine.wiki.serializers import WikiPageSerializer, WikiPageAttachmentSerializer
|
||||||
from greenmine.wiki.models import WikiPage, WikiPageAttachment
|
from greenmine.wiki.models import WikiPage, WikiPageAttachment
|
||||||
|
from greenmine.wiki.permissions import WikiPageDetailPermission, WikiPageAttachmentDetailPermission
|
||||||
|
|
||||||
|
|
||||||
class WikiPageList(generics.ListCreateAPIView):
|
class WikiPageList(generics.ListCreateAPIView):
|
||||||
model = WikiPage
|
model = WikiPage
|
||||||
serializer_class = WikiPageSerializer
|
serializer_class = WikiPageSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return self.model.objects.filter(project__members=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
|
class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = WikiPage
|
model = WikiPage
|
||||||
serializer_class = WikiPageSerializer
|
serializer_class = WikiPageSerializer
|
||||||
|
permission_classes = (WikiPageDetailPermission,)
|
||||||
|
|
||||||
|
|
||||||
class WikiPageAttachmentList(generics.ListCreateAPIView):
|
class WikiPageAttachmentList(generics.ListCreateAPIView):
|
||||||
model = WikiPageAttachment
|
model = WikiPageAttachment
|
||||||
serializer_class = WikiPageAttachmentSerializer
|
serializer_class = WikiPageAttachmentSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return self.model.objects.filter(wikipage__project__members=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class WikiPageAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
|
class WikiPageAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = WikiPageAttachment
|
model = WikiPageAttachment
|
||||||
serializer_class = WikiPageAttachmentSerializer
|
serializer_class = WikiPageAttachmentSerializer
|
||||||
|
permission_classes = (WikiPageAttachmentDetailPermission,)
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
from greenmine.base.permissions import BaseDetailPermission
|
||||||
|
|
||||||
|
class WikiPageDetailPermission(BaseDetailPermission):
|
||||||
|
get_permission = "can_view_wikipage"
|
||||||
|
put_permission = "can_change_wikipage"
|
||||||
|
delete_permission = "can_delete_wikipage"
|
||||||
|
safe_methods = ['HEAD', 'OPTIONS']
|
||||||
|
path_to_document = []
|
||||||
|
|
||||||
|
class WikiPageAttachmentDetailPermission(BaseDetailPermission):
|
||||||
|
get_permission = "can_view_wikipageattachment"
|
||||||
|
put_permission = "can_change_wikipageattachment"
|
||||||
|
delete_permission = "can_delete_wikipageattachment"
|
||||||
|
safe_methods = ['HEAD', 'OPTIONS']
|
||||||
|
path_to_document = []
|
Loading…
Reference in New Issue