from rest_framework.permissions import BasePermission class CanDeleteCartItemPermissions(BasePermission): message = "شما دسترسی حذف این ایتم را ندارید" def has_object_permission(self, request, view, obj): if obj.cart.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