From d5de6b1358d1122325bebb61e6d94582b26d9690 Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Wed, 23 Sep 2020 20:20:48 +0100
Subject: [PATCH] Add rules

---
 aleksis/apps/ticdesk/predicates.py | 7 +++++++
 aleksis/apps/ticdesk/rules.py      | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/aleksis/apps/ticdesk/predicates.py b/aleksis/apps/ticdesk/predicates.py
index e061aba..a837e64 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 a06ca6d..7a7bc50 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)
-- 
GitLab