Files
hossein-por-shop/backend/product/permissions.py
T
2025-12-11 13:14:21 +03:30

185 lines
5.1 KiB
Python

class ProductDetailCategoryPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj=None):
return True
def has_delete_permission(self, request, obj=None):
return False
def has_view_permission(self, request, obj=None):
return True
class ProductAdminPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.shop
def has_delete_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.shop
def has_view_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.shop
def get_queryset(self, request):
from product.models import ProductModel
if request.user.is_superuser:
return ProductModel.objects.all()
if not hasattr(request.user, 'shop'):
return ProductModel.objects.none()
return ProductModel.objects.filter(shop=request.user.shop)
class ProductVariantAdminPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.product.shop
def has_delete_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.product.shop
def has_view_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.product.shop
def get_queryset(self, request):
from product.models import ProductVariant
if request.user.is_superuser:
return ProductVariant.objects.all()
if not hasattr(request.user, 'shop'):
return ProductVariant.objects.none()
return ProductVariant.objects.filter(product__shop=request.user.shop)
class ProductVariantInlineAdminPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.shop
def has_delete_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.shop
def has_view_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
if not hasattr(request.user, 'shop'):
return False
return request.user.shop == obj.shop
def get_queryset(self, request):
from product.models import ProductVariant
if request.user.is_superuser:
return ProductVariant.objects.all()
if not hasattr(request.user, 'shop'):
return ProductVariant.objects.none()
return ProductVariant.objects.filter(product__shop=request.user.shop)
class InPackItemsAdminPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj = ...):
return False
def has_delete_permission(self, request, obj = ...):
return False
def has_view_permission(self, request, obj = ...):
return True
class AttributeTypeAdminPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj = ...):
return False
def has_delete_permission(self, request, obj = ...):
return False
def has_view_permission(self, request, obj = ...):
return True
class AttributeValueAdminPermission:
def has_add_permission(self, request):
return True
def has_change_permission(self, request, obj = ...):
return False
def has_delete_permission(self, request, obj = ...):
return False
def has_view_permission(self, request, obj = ...):
return True