Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LoginRequiredMixin(object):
- @method_decorator(login_required)
- def dispatch(self, request, *args, **kwargs):
- return super().dispatch(request, *args, **kwargs)
- class OnlySelectedUsersMixin(LoginRequiredMixin):
- selectedUsers = tuple()
- def dispatch(self, request, *args, **kwargs):
- if hasattr(request.user, 'person') and (request.user.person in self.selectedUsers or kwargs.get('permit')):
- return super().dispatch(request, *args, **kwargs)
- raise PermissionDenied
- class OnlySelectedUsersOrSuperuserMixin(OnlySelectedUsersMixin):
- def dispatch(self, request, *args, **kwargs):
- try:
- return super().dispatch(request, *args, **kwargs)
- except PermissionDenied:
- if request.user.is_superuser:
- return super().dispatch(request, *args, permit=True, **kwargs)
- raise PermissionDenied
- class OnlyNotSelectedUsersMixin(LoginRequiredMixin):
- selectedUsers = tuple()
- def dispatch(self, request, *args, **kwargs):
- if hasattr(request.user, 'person') and not request.user.person in self.selectedUsers:
- return super().dispatch(request, *args, **kwargs)
- raise PermissionDenied
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement