feat(api): distinguish between read-only and authenticateed user permissions

ref: #451 #452
This commit is contained in:
2024-12-24 15:35:30 +09:30
parent bd31777331
commit 384b0e1d10
6 changed files with 28 additions and 15 deletions

View File

@ -557,16 +557,11 @@ class ModelRetrieveUpdateViewSet(
class ReadOnlyModelViewSet(
viewsets.ReadOnlyModelViewSet,
ModelViewSetBase
):
permission_classes = [
IsAuthenticated,
]
def retrieve(self, request, *args, **kwargs):
"""Sainty override
@ -639,3 +634,21 @@ class ReadOnlyModelViewSet(
)
return response
class AuthUserReadOnlyModelViewSet(
ReadOnlyModelViewSet
):
"""Authenticated User Read-Only Viewset
Use this class if the model only requires that the user be authenticated
to obtain view permission.
Args:
ReadOnlyModelViewSet (class): Read-Only base class
"""
permission_classes = [
IsAuthenticated,
]

View File

@ -1,6 +1,6 @@
from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiResponse
from api.viewsets.common import ReadOnlyModelViewSet
from api.viewsets.common import AuthUserReadOnlyModelViewSet
from app.serializers.content_type import (
ContentType,
@ -26,7 +26,7 @@ from app.serializers.content_type import (
),
)
class ViewSet(
ReadOnlyModelViewSet
AuthUserReadOnlyModelViewSet
):

View File

@ -1,6 +1,6 @@
from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiResponse
from api.viewsets.common import ReadOnlyModelViewSet
from api.viewsets.common import AuthUserReadOnlyModelViewSet
from app.serializers.permission import (
Permission,
@ -26,7 +26,7 @@ from app.serializers.permission import (
),
)
class ViewSet(
ReadOnlyModelViewSet
AuthUserReadOnlyModelViewSet
):

View File

@ -1,6 +1,6 @@
from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiResponse
from api.viewsets.common import ReadOnlyModelViewSet
from api.viewsets.common import AuthUserReadOnlyModelViewSet
from app.serializers.user import (
User,
@ -28,7 +28,7 @@ from app.serializers.user import (
),
)
class ViewSet(
ReadOnlyModelViewSet
AuthUserReadOnlyModelViewSet
):

View File

@ -6,7 +6,7 @@ from core.serializers.celery_log import (
TaskResultViewSerializer
)
from api.viewsets.common import ReadOnlyModelViewSet
from api.viewsets.common import AuthUserReadOnlyModelViewSet
@ -29,7 +29,7 @@ from api.viewsets.common import ReadOnlyModelViewSet
}
),
)
class ViewSet(ReadOnlyModelViewSet):
class ViewSet(AuthUserReadOnlyModelViewSet):
filterset_fields = [
'periodic_task_name',

View File

@ -1,6 +1,6 @@
from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiResponse
from api.viewsets.common import ModelViewSet
from api.viewsets.common import ReadOnlyModelViewSet
from itim.serializers.service import (
Service,
@ -18,7 +18,7 @@ from itim.serializers.service import (
partial_update=extend_schema(exclude=True),
destroy=extend_schema(exclude=True)
)
class ViewSet(ModelViewSet):
class ViewSet(ReadOnlyModelViewSet):
filterset_fields = [
'cluster',