verwaltungstracker/froide_govplan/auth.py
2022-06-20 15:50:15 +02:00

27 lines
825 B
Python

from django.db.models import Q
from .models import GovernmentPlan
def has_limited_access(user):
if not user.is_authenticated:
return True
return not user.has_perm("froide_govplan.add_governmentplan")
def get_allowed_plans(request):
if not has_limited_access(request.user):
return GovernmentPlan.objects.all()
groups = request.user.groups.all()
return GovernmentPlan.objects.filter(group__in=groups).distinct()
def get_visible_plans(request):
if not has_limited_access(request.user):
return GovernmentPlan.objects.all()
if request.user.is_authenticated:
groups = request.user.groups.all()
return GovernmentPlan.objects.filter(
Q(public=True) | Q(group__in=groups)
).distinct()
return GovernmentPlan.objects.filter(public=True)