diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 065c9c95c607271eb7ec814c171fe2a9f381063c..88558b599a95fdac976b5d42a912f95e9bb797b6 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -27,10 +27,10 @@ from .util.predicates import ( # View lesson view_lesson_predicate = has_person & ( - has_global_perm("alsijil.view_lesson") - | is_lesson_teacher + is_lesson_teacher | is_lesson_participant | is_lesson_parent_group_owner + | has_global_perm("alsijil.view_lesson") | has_lesson_group_object_perm("core.view_week_class_register_group") ) add_perm("alsijil.view_lesson", view_lesson_predicate) @@ -40,66 +40,66 @@ add_perm("alsijil.view_lesson_menu", has_person) # View lesson personal notes view_lesson_personal_notes_predicate = has_person & ( - has_global_perm("alsijil.view_personalnote") - | has_lesson_group_object_perm("core.view_personalnote_group") - | is_lesson_teacher + is_lesson_teacher | is_lesson_parent_group_owner + | has_global_perm("alsijil.view_personalnote") + | has_lesson_group_object_perm("core.view_personalnote_group") ) add_perm("alsijil.view_lesson_personalnote", view_lesson_personal_notes_predicate) # Edit personal note edit_lesson_personal_note_predicate = has_person & ( - has_global_perm("alsijil.change_personalnote") + is_lesson_teacher + | has_global_perm("alsijil.change_personalnote") | has_lesson_group_object_perm("core.edit_personalnote_group") - | is_lesson_teacher ) add_perm("alsijil.edit_lesson_personalnote", edit_lesson_personal_note_predicate) # View personal note view_personal_note_predicate = has_person & ( - has_global_perm("alsijil.view_personalnote") - | has_personal_note_group_perm("core.view_personalnote_group") + is_own_personal_note | is_personal_note_lesson_teacher - | is_own_personal_note | is_personal_note_lesson_parent_group_owner + | has_global_perm("alsijil.view_personalnote") + | has_personal_note_group_perm("core.view_personalnote_group") ) add_perm("alsijil.view_personalnote", view_personal_note_predicate) # Edit personal note edit_personal_note_predicate = has_person & ( - has_global_perm("alsijil.view_personalnote") - | has_personal_note_group_perm("core.edit_personalnote_group") - | is_personal_note_lesson_teacher + is_personal_note_lesson_teacher | is_personal_note_lesson_parent_group_owner + | has_global_perm("alsijil.view_personalnote") + | has_personal_note_group_perm("core.edit_personalnote_group") ) add_perm("alsijil.edit_personalnote", edit_personal_note_predicate) # View lesson documentation view_lesson_documentation_predicate = has_person & ( - has_global_perm("alsijil.view_lessondocumentation") - | has_lesson_group_object_perm("core.view_lessondocumentation_group") - | is_lesson_teacher - | is_lesson_parent_group_owner + is_lesson_teacher | is_lesson_participant + | is_lesson_parent_group_owner + | has_global_perm("alsijil.view_lessondocumentation") + | has_lesson_group_object_perm("core.view_lessondocumentation_group") ) add_perm("alsijil.view_lessondocumentation", view_lesson_documentation_predicate) # Edit lesson documentation edit_lesson_documentation_predicate = has_person & ( - has_global_perm("alsijil.change_lessondocumentation") + is_lesson_teacher + | has_global_perm("alsijil.change_lessondocumentation") | has_lesson_group_object_perm("core.edit_lessondocumentation_group") - | is_lesson_teacher ) add_perm("alsijil.edit_lessondocumentation", edit_lesson_documentation_predicate) # View week overview view_week_predicate = has_person & ( - has_global_perm("alsijil.view_week") - | has_object_perm("core.view_week_class_register_group") + is_current_person | is_group_member | is_group_owner - | is_current_person + | has_global_perm("alsijil.view_week") + | has_object_perm("core.view_week_class_register_group") ) add_perm("alsijil.view_week", view_week_predicate) @@ -108,10 +108,10 @@ add_perm("alsijil.view_week_menu", has_person) # View week personal notes view_week_personal_notes_predicate = has_person & ( - has_global_perm("alsijil.view_personalnote") - | has_object_perm("core.view_personalnote_group") + (is_current_person & is_teacher) | is_group_owner - | (is_current_person & is_teacher) + | has_global_perm("alsijil.view_personalnote") + | has_object_perm("core.view_personalnote_group") ) add_perm("alsijil.view_week_personalnote", view_week_personal_notes_predicate) @@ -123,18 +123,18 @@ add_perm("alsijil.view_register_absence", view_register_absence_predicate) # Register absence register_absence_predicate = has_person & ( - has_global_perm("alsijil.register_absence") - | has_person_group_object_perm("core.register_absence_group") + is_person_primary_group_owner + | has_global_perm("alsijil.register_absence") | has_object_perm("core.register_absence_person") - | is_person_primary_group_owner + | has_person_group_object_perm("core.register_absence_group") ) add_perm("alsijil.register_absence", register_absence_predicate) # View full register for group view_full_register_predicate = has_person & ( - has_global_perm("alsijil.view_full_register") + is_group_owner + | has_global_perm("alsijil.view_full_register") | has_object_perm("core.view_full_register_group") - | is_group_owner ) add_perm("alsijil.view_full_register", view_full_register_predicate) @@ -154,10 +154,10 @@ add_perm("alsijil.view_person_overview_menu", view_person_overview_menu_predicat # View person overview personal notes view_person_overview_personal_notes_predicate = has_person & ( - has_global_perm("alsijil.view_personalnote") - | has_person_group_object_perm("core.view_personalnote_group") + is_current_person | is_person_primary_group_owner - | is_current_person + | has_global_perm("alsijil.view_personalnote") + | has_person_group_object_perm("core.view_personalnote_group") ) add_perm( "alsijil.view_person_overview_personalnote", @@ -166,9 +166,9 @@ add_perm( # Edit person overview personal notes edit_person_overview_personal_notes_predicate = has_person & ( - has_global_perm("alsijil.edit_personalnote") + is_person_primary_group_owner + | has_global_perm("alsijil.edit_personalnote") | has_person_group_object_perm("core.edit_personalnote_group") - | is_person_primary_group_owner ) add_perm( "alsijil.edit_person_overview_personalnote", @@ -177,10 +177,10 @@ add_perm( # View person statistics on personal notes view_person_statistics_personal_notes_predicate = has_person & ( - has_global_perm("alsijil.view_personalnote") - | has_person_group_object_perm("core.view_personalnote_group") + is_current_person | is_person_primary_group_owner - | is_current_person + | has_global_perm("alsijil.view_personalnote") + | has_person_group_object_perm("core.view_personalnote_group") ) add_perm( "alsijil.view_person_statistics_personalnote",