soundwave/backend/common/views.py

24 lines
624 B
Python
Raw Permalink Normal View History

"""Common views"""
from rest_framework.permissions import IsAdminUser, IsAuthenticated
from rest_framework.views import APIView
class ApiBaseView(APIView):
"""Base API view"""
pass
class AdminOnly(IsAdminUser):
"""Admin only permission"""
pass
class AdminWriteOnly(IsAuthenticated):
"""Allow all authenticated users to read and write their own data"""
def has_permission(self, request, view):
# All authenticated users can perform any action
# Data isolation is enforced at the view/queryset level via owner field
return request.user and request.user.is_authenticated