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.

check_field = None
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