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 ( ...@@ -10,17 +10,17 @@ from aleksis.core.util.predicates import (
from .util.predicates import ( from .util.predicates import (
has_any_object_absence, has_any_object_absence,
has_lesson_group_object_perm, has_lesson_group_object_perm,
has_personal_note_group_perm,
has_person_group_object_perm, has_person_group_object_perm,
has_personal_note_group_perm,
is_group_member, is_group_member,
is_group_owner, is_group_owner,
is_lesson_parent_group_owner, is_lesson_parent_group_owner,
is_lesson_participant, is_lesson_participant,
is_lesson_teacher, is_lesson_teacher,
is_own_personal_note, is_own_personal_note,
is_person_group_owner,
is_personal_note_lesson_parent_group_owner, is_personal_note_lesson_parent_group_owner,
is_personal_note_lesson_teacher, is_personal_note_lesson_teacher,
is_person_group_owner,
) )
# View lesson # View lesson
...@@ -95,8 +95,7 @@ add_perm("alsijil.view_week_personalnote", view_week_personal_notes_predicate) ...@@ -95,8 +95,7 @@ add_perm("alsijil.view_week_personalnote", view_week_personal_notes_predicate)
# View register absence page # View register absence page
view_register_absence_predicate = has_person & ( view_register_absence_predicate = has_person & (
has_global_perm("alsijil.register_absence") has_global_perm("alsijil.register_absence") | has_any_object_absence
| has_any_object_absence
) )
add_perm("alsijil.view_register_absence", view_register_absence_predicate) add_perm("alsijil.view_register_absence", view_register_absence_predicate)
......
...@@ -7,8 +7,8 @@ from rules import predicate ...@@ -7,8 +7,8 @@ from rules import predicate
from aleksis.apps.chronos.models import LessonPeriod from aleksis.apps.chronos.models import LessonPeriod
from aleksis.core.models import Group, Person 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.core_helpers import get_site_preferences
from aleksis.core.util.predicates import check_object_permission
from ..models import PersonalNote from ..models import PersonalNote
...@@ -21,9 +21,8 @@ def is_lesson_teacher(user: User, obj: LessonPeriod) -> bool: ...@@ -21,9 +21,8 @@ def is_lesson_teacher(user: User, obj: LessonPeriod) -> bool:
in the lesson or the substitution linked to the given LessonPeriod. in the lesson or the substitution linked to the given LessonPeriod.
""" """
if obj: if obj:
return ( return user.person in obj.lesson.teachers.all() or user.person in Person.objects.filter(
user.person in obj.lesson.teachers.all() lesson_substitutions=obj.get_substitution()
or user.person in Person.objects.filter(lesson_substitutions=obj.get_substitution())
) )
return True return True
...@@ -154,7 +153,10 @@ def is_own_personal_note(user: User, obj: PersonalNote) -> bool: ...@@ -154,7 +153,10 @@ def is_own_personal_note(user: User, obj: PersonalNote) -> bool:
Is configurable via dynamic preferences. Is configurable via dynamic preferences.
""" """
if hasattr(obj, "person"): 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 True
return False return False
...@@ -168,9 +170,8 @@ def is_personal_note_lesson_teacher(user: User, obj: PersonalNote) -> bool: ...@@ -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"):
if hasattr(obj.lesson_period, "lesson"): if hasattr(obj.lesson_period, "lesson"):
return ( return user.person in obj.lesson_period.lesson.teachers.all() or user.person in Person.objects.filter(
user.person in obj.lesson_period.lesson.teachers.all() lesson_substitutions=obj.lesson_period.get_substitution()
or user.person in Person.objects.filter(lesson_substitutions=obj.lesson_period.get_substitution())
) )
return False return False
return False return False
...@@ -186,7 +187,9 @@ def is_personal_note_lesson_parent_group_owner(user: User, obj: PersonalNote) -> ...@@ -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"):
if hasattr(obj.lesson_period, "lesson"): 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
return False return False
...@@ -200,5 +203,7 @@ def has_any_object_absence(user: User) -> bool: ...@@ -200,5 +203,7 @@ def has_any_object_absence(user: User) -> bool:
return True return True
if Person.objects.filter(member_of__owners=user.person).exists(): if Person.objects.filter(member_of__owners=user.person).exists():
return True 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 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