72 lines
2.3 KiB
Python
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
|
|
|