Files
hossein-por-shop/backend/order/permissons.py
T

72 lines
2.3 KiB
Python

from rest_framework.permissions import BasePermission
class CanDeleteCartItemPermissions(BasePermission):
message = "شما دسترسی حذف این ایتم را ندارید"
def has_object_permission(self, request, view, obj):
if obj.order.user != request.user:
self.message = "این آیتم متعلق به سبد خرید شما نیست."
return False
if obj.order.status != 'CART':
self.message = "وضعیت سفارش سبد خرید نیست و آیتمی را نمی‌توانید حذف کنید."
return False
return True
class GetOrderPermission(BasePermission):
message = "شما دسترسی به این سفارش را ندارید"
def has_object_permission(self, request, view, obj):
if obj.user != request.user:
return False
if obj.status == 'CART':
self.message = "سفارش در وضعیت سبد خرید است"
return False
return True
from rest_framework.permissions import BasePermission
class SetAddressPermissions(BasePermission):
message = "این ادرس متعلق به شما نیست."
def has_object_permission(self, request, view, obj):
if obj.user != request.user:
self.message = "این ادرس متعلق به شما نیست."
return False
return True
class PaymentCallBackPermissions(BasePermission):
def has_object_permission(self, request, view, obj):
if obj.order.user != request.user:
self.message = "این پرداخت متعلق به شما نیست."
return False
return True
class ShopOrderAdminPermission:
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 has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
if request.user.is_superuser:
return True
if obj is None:
return False
return obj.shop == request.user.shop