vkk.workhours.allprojects.mixins
This submodule contains a collection of mixin classes.
1""" 2This submodule contains a collection of mixin classes. 3""" 4 5 6from vkk.users.models import User 7from django.contrib.auth.mixins import AccessMixin 8from django.utils import timezone 9from ..models import ProjectManager 10 11 12class ProjectManagerRequiredMixin(AccessMixin): 13 """Verify that the current user is a manager of at least one project.""" 14 check_field = None 15 16 def dispatch(self, request, *args, **kwargs): 17 project_manager = ProjectManager.objects.filter( 18 manager=request.user, 19 end__gte=timezone.now().date(), 20 ) 21 in_charge = True 22 if 'pk' in self.kwargs: 23 in_charge = User.objects.filter( 24 pk=self.kwargs['pk'], 25 projectassignment__project__projectmanager__manager=self.request.user, 26 ).exists() 27 if (not request.user.is_authenticated or 28 not project_manager.exists() or not in_charge): 29 return self.handle_no_permission() 30 return super().dispatch(request, *args, **kwargs)
class
ProjectManagerRequiredMixin(django.contrib.auth.mixins.AccessMixin):
13class ProjectManagerRequiredMixin(AccessMixin): 14 """Verify that the current user is a manager of at least one project.""" 15 check_field = None 16 17 def dispatch(self, request, *args, **kwargs): 18 project_manager = ProjectManager.objects.filter( 19 manager=request.user, 20 end__gte=timezone.now().date(), 21 ) 22 in_charge = True 23 if 'pk' in self.kwargs: 24 in_charge = User.objects.filter( 25 pk=self.kwargs['pk'], 26 projectassignment__project__projectmanager__manager=self.request.user, 27 ).exists() 28 if (not request.user.is_authenticated or 29 not project_manager.exists() or not in_charge): 30 return self.handle_no_permission() 31 return super().dispatch(request, *args, **kwargs)
Verify that the current user is a manager of at least one project.
def
dispatch(self, request, *args, **kwargs):
17 def dispatch(self, request, *args, **kwargs): 18 project_manager = ProjectManager.objects.filter( 19 manager=request.user, 20 end__gte=timezone.now().date(), 21 ) 22 in_charge = True 23 if 'pk' in self.kwargs: 24 in_charge = User.objects.filter( 25 pk=self.kwargs['pk'], 26 projectassignment__project__projectmanager__manager=self.request.user, 27 ).exists() 28 if (not request.user.is_authenticated or 29 not project_manager.exists() or not in_charge): 30 return self.handle_no_permission() 31 return super().dispatch(request, *args, **kwargs)
Inherited Members
- django.contrib.auth.mixins.AccessMixin
- login_url
- permission_denied_message
- raise_exception
- redirect_field_name
- get_login_url
- get_permission_denied_message
- get_redirect_field_name
- handle_no_permission