Newer
Older
from aleksis.apps.kolego.models.absence import Absence, AbsenceReason, AbsenceReasonTag
has_global_perm,
has_object_perm,
has_person,
)
from .util.predicates import can_manage_absence, can_manage_absences_for_person
view_absences_predicate = has_person & (
has_global_perm("kolego.view_absence") | has_any_object("kolego.view_absence", Absence)
)
rules.add_perm("kolego.view_absences_rule", view_absences_predicate)
view_absence_predicate = has_person & (
has_global_perm("kolego.view_absence") | has_object_perm("kolego.view_absence")
)
rules.add_perm("kolego.view_absence_rule", view_absence_predicate)
create_absence_predicate = has_person & (has_global_perm("kolego.add_absence"))
rules.add_perm("kolego.create_absence_rule", create_absence_predicate)
has_global_perm("kolego.change_absence")
| has_object_perm("kolego.change_absence")
| can_manage_absence
)
rules.add_perm("kolego.edit_absence_rule", edit_absence_predicate)
delete_absence_predicate = has_person & (
has_global_perm("kolego.delete_absence")
| has_object_perm("kolego.delete_absence")
| can_manage_absence
)
rules.add_perm("kolego.delete_absence_rule", delete_absence_predicate)
fetch_absencereasons_predicate = has_person
rules.add_perm("kolego.fetch_absencereasons_rule", fetch_absencereasons_predicate)
view_absencereasons_predicate = has_person & (
has_global_perm("kolego.view_absencereason")
| has_any_object("kolego.view_absencereason", AbsenceReason)
)
rules.add_perm("kolego.view_absencereasons_rule", view_absencereasons_predicate)
view_absencereason_predicate = has_person & (
has_global_perm("kolego.view_absencereason") | has_object_perm("kolego.view_absencereason")
)
rules.add_perm("kolego.view_absencereason_rule", view_absencereason_predicate)
create_absencereason_predicate = has_person & (has_global_perm("kolego.add_absencereason"))
rules.add_perm("kolego.create_absencereason_rule", create_absencereason_predicate)
edit_absencereason_predicate = has_person & (
has_global_perm("kolego.change_absencereason") | has_object_perm("kolego.change_absencereason")
)
rules.add_perm("kolego.edit_absencereason_rule", edit_absencereason_predicate)
delete_absencereason_predicate = has_person & (
has_global_perm("kolego.delete_absencereason") | has_object_perm("kolego.delete_absencereason")
)
rules.add_perm("kolego.delete_absencereason_rule", delete_absencereason_predicate)
view_absencereasontags_predicate = has_person & (
has_global_perm("kolego.view_absencereasontag")
| has_any_object("kolego.view_absencereasontag", AbsenceReasonTag)
)
rules.add_perm("kolego.view_absencereasontags_rule", view_absencereasontags_predicate)
view_absencereasontag_predicate = has_person & (
has_global_perm("kolego.view_absencereasontag")
| has_object_perm("kolego.view_absencereasontag")
)
rules.add_perm("kolego.view_absencereasontag_rule", view_absencereasontag_predicate)
create_absencereasontag_predicate = has_person & (has_global_perm("kolego.add_absencereasontag"))
rules.add_perm("kolego.create_absencereasontag_rule", create_absencereasontag_predicate)
edit_absencereasontag_predicate = has_person & (
has_global_perm("kolego.change_absencereasontag")
| has_object_perm("kolego.change_absencereasontag")
)
rules.add_perm("kolego.edit_absencereasontag_rule", edit_absencereasontag_predicate)
delete_absencereasontag_predicate = has_person & (
has_global_perm("kolego.delete_absencereasontag")
| has_object_perm("kolego.delete_absencereasontag")
)
rules.add_perm("kolego.delete_absencereasontag_rule", delete_absencereasontag_predicate)
view_menu_predicate = has_person & (
view_absences_predicate | view_absencereasons_predicate | view_absencereasontags_predicate
)
rules.add_perm("kolego.view_menu_rule", view_menu_predicate)
view_person_absences_predicate = has_person & (
has_global_perm("kolego.view_absence") | can_manage_absences_for_person
)
rules.add_perm("kolego.view_person_absences_rule", view_person_absences_predicate)