diff --git a/aleksis/apps/ticdesk/predicates.py b/aleksis/apps/ticdesk/predicates.py index e061aba25fa6aa905b5ed68ac7d36bc8944fcfae..a837e64b4c1860390fc89333b0f4a458cecdfff1 100644 --- a/aleksis/apps/ticdesk/predicates.py +++ b/aleksis/apps/ticdesk/predicates.py @@ -31,3 +31,10 @@ def is_own_voucher(user: User, voucher: Voucher) -> bool: """Predicate which checks if the voucher belongs to the user.""" return voucher.person == user.person + + +@predicate +def is_own_registration(user: User, registration: Registration) -> bool: + """Predicate which checks if the registration belongs to the user."""" + + return registration.person == user.person diff --git a/aleksis/apps/ticdesk/rules.py b/aleksis/apps/ticdesk/rules.py index a06ca6daca1d00febe21baceaac97112ba4ef633..7a7bc50e7a27a07d6f692e76f9ad14019a3c42af 100644 --- a/aleksis/apps/ticdesk/rules.py +++ b/aleksis/apps/ticdesk/rules.py @@ -11,11 +11,10 @@ from aleksis.core.util.predicates import ( from .models import EventRegistration, FeedbackAspect, TeckidsMember, TeckidsEvent, Voucher from .predicates import ( - is_own_pgp_key, - is_own_ssh_key, is_own_voucher, see_group_by_grouptype, see_owned_groups_members, + is_own_registration, ) # View vouchers @@ -91,6 +90,7 @@ add_perm("ticdesk.view_registrations", view_registrations_predicate) # Manage registrations manage_registrations_predicate = has_person & ( has_global_perm("ticdesk.manage_registrations") + | is_own_registration | has_any_object("ticdesk.manage_registrations", EventRegistration) ) add_perm("ticdesk.manage_registrations", manage_registrations_predicate)