Skip to content
Snippets Groups Projects
rules.py 2.49 KiB
Newer Older
magicfelix's avatar
magicfelix committed
import rules

Jonathan Weth's avatar
Jonathan Weth committed
from aleksis.apps.kolego.models.absence import Absence, AbsenceReason
magicfelix's avatar
magicfelix committed
from aleksis.core.util.predicates import (
Jonathan Weth's avatar
Jonathan Weth committed
    has_any_object,
magicfelix's avatar
magicfelix committed
    has_global_perm,
    has_object_perm,
    has_person,
)

Jonathan Weth's avatar
Jonathan Weth committed
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)

Jonathan Weth's avatar
Jonathan Weth committed
create_absence_predicate = has_person & (has_global_perm("kolego.add_absence"))
magicfelix's avatar
magicfelix committed
rules.add_perm("kolego.create_absence_rule", create_absence_predicate)
Jonathan Weth's avatar
Jonathan Weth committed

magicfelix's avatar
magicfelix committed
edit_absence_predicate = has_person & (
    has_global_perm("kolego.change_absence") | has_object_perm("kolego.change_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")
)
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)

Jonathan Weth's avatar
Jonathan Weth committed
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)

Jonathan Weth's avatar
Jonathan Weth committed
create_absencereason_predicate = has_person & (has_global_perm("kolego.add_absencereason"))
magicfelix's avatar
magicfelix committed
rules.add_perm("kolego.create_absencereason_rule", create_absencereason_predicate)

magicfelix's avatar
magicfelix committed
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)
magicfelix's avatar
magicfelix committed

Jonathan Weth's avatar
Jonathan Weth committed
view_menu_predicate = has_person & (view_absences_predicate | view_absencereasons_predicate)
magicfelix's avatar
magicfelix committed
rules.add_perm("kolego.view_menu_rule", view_menu_predicate)