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