You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

27 lines
942 B

from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import PermissionDenied
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import View
class NoCsrfMixin(View):
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
class CustomerRequiredMixin(LoginRequiredMixin, View):
def dispatch(self, request, *args, **kwargs):
if request.user.is_customer():
return super().dispatch(request, *args, **kwargs)
else:
raise PermissionDenied
class ContractorRequiredMixin(LoginRequiredMixin, View):
def dispatch(self, request, *args, **kwargs):
if request.user.is_contractor():
return super().dispatch(request, *args, **kwargs)
else:
raise PermissionDenied