API updates

- Move all generic API classes definitions to the rest_api.generics
module.
- Update API status code on insufficient access for the apps:
indexes, parsing, documents, metadata, ocr, permission,
user management.
- Update API tests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-10-28 00:01:11 -04:00
parent c79a974746
commit deb363ee16
31 changed files with 232 additions and 244 deletions

View File

@@ -0,0 +1,75 @@
from __future__ import absolute_import, unicode_literals
from rest_framework import generics
from .filters import MayanObjectPermissionsFilter
from .permissions import MayanPermission
class GenericAPIView(generics.GenericAPIView):
filter_backends = (MayanObjectPermissionsFilter,)
permission_classes = (MayanPermission,)
class ListAPIView(generics.ListAPIView):
"""
requires:
object_permission = {'GET': ...}
"""
filter_backends = (MayanObjectPermissionsFilter,)
class ListCreateAPIView(generics.ListCreateAPIView):
"""
requires:
object_permission = {'GET': ...}
view_permission = {'POST': ...}
"""
filter_backends = (MayanObjectPermissionsFilter,)
permission_classes = (MayanPermission,)
class RetrieveAPIView(generics.RetrieveAPIView):
"""
requires:
object_permission = {
'GET': ...,
}
"""
filter_backends = (MayanObjectPermissionsFilter,)
class RetrieveDestroyAPIView(generics.RetrieveDestroyAPIView):
"""
requires:
object_permission = {
'DELETE': ...,
'GET': ...,
}
"""
filter_backends = (MayanObjectPermissionsFilter,)
class RetrieveUpdateAPIView(generics.RetrieveUpdateAPIView):
"""
requires:
object_permission = {
'GET': ...,
'PATCH': ...,
'PUT': ...
}
"""
filter_backends = (MayanObjectPermissionsFilter,)
class RetrieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView):
"""
requires:
object_permission = {
'DELETE': ...,
'GET': ...,
'PATCH': ...,
'PUT': ...
}
"""
filter_backends = (MayanObjectPermissionsFilter,)