prepare allocate tags to organizations api

This commit is contained in:
2025-05-27 15:09:22 +03:30
parent bc710c74c6
commit 6f8f9463b0
29 changed files with 951 additions and 48 deletions

View File

@@ -1,25 +1,37 @@
from rest_framework import permissions
from apps.core import permissions
# example Code
class AuthorAllStaffAllButEditOrReadOnly(permissions.BasePermission):
edit_methods = ("PUT", "PATCH")
class HerdCreatePermission(permissions.BasePermission):
""" permission to create herd """
def has_permission(self, request, view):
if request.user.is_authenticated:
user_level_info = self.get_user_permissions(request, view)
if 'herd_create' in user_level_info['permissions']:
return True
def has_object_permission(self, request, view, obj):
if request.user.is_superuser:
class HerdUpdatePermission(permissions.BasePermission):
""" permission to update herd """
def has_permission(self, request, view):
user_level_info = self.get_user_permissions(request, view)
if 'herd_update' in user_level_info['permissions']:
return True
if request.method in permissions.SAFE_METHODS:
class HerdTrashPermission(permissions.BasePermission):
""" permission to trash herd """
def has_permission(self, request, view):
user_level_info = self.get_user_permissions(request, view)
if 'herd_trash' in user_level_info['permissions']:
return True
if obj.author == request.user:
return True
if request.user.is_staff and request.method not in self.edit_methods:
return True
class HerdDeletePermission(permissions.BasePermission):
""" permission to delete herd """
return False
def has_permission(self, request, view):
user_level_info = self.get_user_permissions(request, view)
if 'herd_delete' in user_level_info['permissions']:
return True