Skip to content
Snippets Groups Projects
Verified Commit f9ba7388 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Reformat

parent f6b135b2
No related branches found
No related tags found
1 merge request!49Resolve "Add rules and permissions"
Pipeline #3491 passed
......@@ -10,17 +10,17 @@ from aleksis.core.util.predicates import (
from .util.predicates import (
has_any_object_absence,
has_lesson_group_object_perm,
has_personal_note_group_perm,
has_person_group_object_perm,
has_personal_note_group_perm,
is_group_member,
is_group_owner,
is_lesson_parent_group_owner,
is_lesson_participant,
is_lesson_teacher,
is_own_personal_note,
is_person_group_owner,
is_personal_note_lesson_parent_group_owner,
is_personal_note_lesson_teacher,
is_person_group_owner,
)
# View lesson
......@@ -95,8 +95,7 @@ add_perm("alsijil.view_week_personalnote", view_week_personal_notes_predicate)
# View register absence page
view_register_absence_predicate = has_person & (
has_global_perm("alsijil.register_absence")
| has_any_object_absence
has_global_perm("alsijil.register_absence") | has_any_object_absence
)
add_perm("alsijil.view_register_absence", view_register_absence_predicate)
......
......@@ -7,8 +7,8 @@ from rules import predicate
from aleksis.apps.chronos.models import LessonPeriod
from aleksis.core.models import Group, Person
from aleksis.core.util.predicates import check_object_permission
from aleksis.core.util.core_helpers import get_site_preferences
from aleksis.core.util.predicates import check_object_permission
from ..models import PersonalNote
......@@ -21,9 +21,8 @@ def is_lesson_teacher(user: User, obj: LessonPeriod) -> bool:
in the lesson or the substitution linked to the given LessonPeriod.
"""
if obj:
return (
user.person in obj.lesson.teachers.all()
or user.person in Person.objects.filter(lesson_substitutions=obj.get_substitution())
return user.person in obj.lesson.teachers.all() or user.person in Person.objects.filter(
lesson_substitutions=obj.get_substitution()
)
return True
......@@ -154,7 +153,10 @@ def is_own_personal_note(user: User, obj: PersonalNote) -> bool:
Is configurable via dynamic preferences.
"""
if hasattr(obj, "person"):
if get_site_preferences()["alsijil__view_own_personal_notes"] and obj.person is user.person:
if (
get_site_preferences()["alsijil__view_own_personal_notes"]
and obj.person is user.person
):
return True
return False
......@@ -168,9 +170,8 @@ def is_personal_note_lesson_teacher(user: User, obj: PersonalNote) -> bool:
"""
if hasattr(obj, "lesson_period"):
if hasattr(obj.lesson_period, "lesson"):
return (
user.person in obj.lesson_period.lesson.teachers.all()
or user.person in Person.objects.filter(lesson_substitutions=obj.lesson_period.get_substitution())
return user.person in obj.lesson_period.lesson.teachers.all() or user.person in Person.objects.filter(
lesson_substitutions=obj.lesson_period.get_substitution()
)
return False
return False
......@@ -186,7 +187,9 @@ def is_personal_note_lesson_parent_group_owner(user: User, obj: PersonalNote) ->
"""
if hasattr(obj, "lesson_period"):
if hasattr(obj.lesson_period, "lesson"):
return obj.lesson_period.lesson.groups.filter(parent_groups__owners=user.person).exists()
return obj.lesson_period.lesson.groups.filter(
parent_groups__owners=user.person
).exists()
return False
return False
......@@ -200,5 +203,7 @@ def has_any_object_absence(user: User) -> bool:
return True
if Person.objects.filter(member_of__owners=user.person).exists():
return True
if Person.objects.filter(member_of__in=get_objects_for_user(user, "core.register_absence_group", Group)).exists():
if Person.objects.filter(
member_of__in=get_objects_for_user(user, "core.register_absence_group", Group)
).exists():
return True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment