Corp/backend/projects/permissions.py

18 lines
464 B
Python

from django.db.models import Q
from .models import Project
def can_create(user):
return user.is_staff or user.has_perm("projects.add_project")
def can_manage(user, project):
return user.is_staff or user.is_superuser or project.manager_id == user.pk
def visible_projects(user):
qs = Project.objects.all()
if user.is_staff or user.is_superuser:
return qs
return qs.filter(Q(manager=user) | Q(memberships__employee=user)).distinct()