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