24 lines
624 B
Python
24 lines
624 B
Python
|
|
"""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
|