18 lines
464 B
Python
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()
|