-
Tom Teichler authoredTom Teichler authored
rules.py 3.87 KiB
import rules
from aleksis.core.models import Group
from aleksis.core.util.predicates import (
has_any_object,
has_global_perm,
has_object_perm,
has_person,
is_group_member,
)
from .models import Event, EventRegistration, Terms, Voucher
from .predicates import (
is_own_registration,
is_own_voucher,
see_group_by_grouptype,
see_owned_groups_members,
)
# View vouchers
view_vouchers_predicate = has_person & (
has_global_perm("paweljong.view_voucher") | has_any_object("paweljong.view_voucher", Voucher)
)
rules.add_perm("paweljong.view_vouchers_rule", view_vouchers_predicate)
# Edit vouchers
change_vouchers_predicate = has_person & (
has_global_perm("paweljong.change_voucher")
| has_any_object("paweljong.change_voucher", Voucher)
)
rules.add_perm("paweljong.change_vouchers_rule", change_vouchers_predicate)
# Delete vouchers
delete_vouchers_predicate = has_person & (
has_global_perm("paweljong.delete_voucher")
| has_any_object("paweljong.delete_voucher", Voucher)
)
rules.add_perm("paweljong.delete_vouchers_rule", delete_vouchers_predicate)
# Create vouchers
create_vouchers_predicate = has_person & (
has_global_perm("paweljong.create_voucher")
| has_any_object("paweljong.create_voucher", Voucher)
)
rules.add_perm("paweljong.create_vouchers_rule", create_vouchers_predicate)
# Edit events
change_events_predicate = has_person & (
has_global_perm("paweljong.change_event") | has_any_object("paweljong.change_event", Event)
)
rules.add_perm("paweljong.change_events_rule", change_events_predicate)
# Delete events
delete_events_predicate = has_person & (
has_global_perm("paweljong.delete_event") | has_any_object("paweljong.delete_event", Event)
)
rules.add_perm("paweljong.delete_events_rule", delete_events_predicate)
# Create events
create_events_predicate = has_person & (
has_global_perm("paweljong.create_event") | has_any_object("paweljong.create_event", Event)
)
rules.add_perm("paweljong.create_events_rule", create_events_predicate)
# Allowed to see group
may_see_group_predicate = has_person & (
is_group_member | has_any_object("core.view_group", Group) | see_group_by_grouptype
)
rules.add_perm("paweljong.may_see_group_rule", may_see_group_predicate)
may_see_person_predicate = has_person & (
see_owned_groups_members | has_object_perm("core.view_person")
)
rules.add_perm("paweljong.see_person_rule", may_see_person_predicate)
# View registrations
view_registrations_predicate = has_person & (
has_global_perm("paweljong.view_eventregistration")
| has_any_object("paweljong.view_eventregistration", EventRegistration)
)
rules.add_perm("paweljong.view_registrations_rule", view_registrations_predicate)
# Manage registrations
manage_registrations_predicate = has_person & (
has_global_perm("paweljong.manage_registration")
| is_own_registration
| has_any_object("paweljong.manage_registration", EventRegistration)
)
rules.add_perm("paweljong.manage_registrations_rule", manage_registrations_predicate)
# Delete registrations
delete_registrations_predicate = has_person & (
has_global_perm("paweljong.delete_eventregistration")
| has_any_object("paweljong.delete_eventregistration", EventRegistration)
)
rules.add_perm("paweljong.delete_registrations_rule", delete_registrations_predicate)
# Is own voucher?
is_own_voucher_predicate = has_person & (is_own_voucher)
rules.add_perm("paweljong.is_own_voucher_rule", is_own_voucher_predicate)
# View terms
view_terms_predicate = has_person & (
has_global_perm("paweljong.view_term") | has_any_object("paweljong.view_term", Terms)
)
rules.add_perm("paweljong.view_terms_rule", view_terms_predicate)
# View info_mailings
view_info_mailings_predicate = has_person & (
has_global_perm("paweljong.view_info_mailing")
| has_any_object("paweljong.view_info_mailing", Terms)
)
rules.add_perm("paweljong.view_info_mailings_rule", view_info_mailings_predicate)