From c593f63a822a20cf4b0f081591942a16be51aeed Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Fri, 11 Mar 2022 13:53:14 +0100 Subject: [PATCH] Add permission to check if event is published --- aleksis/apps/paweljong/predicates.py | 5 +++++ aleksis/apps/paweljong/rules.py | 8 ++++++-- aleksis/apps/paweljong/views.py | 6 ++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/aleksis/apps/paweljong/predicates.py b/aleksis/apps/paweljong/predicates.py index 2ce8686..1816f37 100644 --- a/aleksis/apps/paweljong/predicates.py +++ b/aleksis/apps/paweljong/predicates.py @@ -26,3 +26,8 @@ def is_own_registration(user: User, registration: EventRegistration) -> bool: def is_organiser(user: User, obj: EventRegistration) -> bool: """Predicate which checks if the user is an organiser.""" return user.person in obj.event.linked_group.owners.all() + +@predicate +def is_event_published(obj: EventRegistration) -> bool: + """Predicate which checks if the event is published.""" + return obj.published diff --git a/aleksis/apps/paweljong/rules.py b/aleksis/apps/paweljong/rules.py index 7ad451f..f9f6931 100644 --- a/aleksis/apps/paweljong/rules.py +++ b/aleksis/apps/paweljong/rules.py @@ -14,6 +14,7 @@ from .predicates import ( is_own_registration, is_own_voucher, is_organiser, + is_event_published, ) ## Vouchers @@ -59,6 +60,9 @@ change_event_predicate = has_person & ( ) rules.add_perm("paweljong.change_event_rule", change_event_predicate) +# View event +view_event_predicate = (is_event_published) +rules.add_perm("paweljong.view_event_rule", view_event_predicate) # Delete event delete_event_predicate = has_person & ( @@ -114,7 +118,7 @@ rules.add_perm("paweljong.view_terms_rule", view_terms_predicate) # View term view_term_predicate = has_person & ( - has_global_perm("paweljong.view_term") | has_object_perm("paweljong.view_term", Terms) + has_global_perm("paweljong.view_term") | has_object_perm("paweljong.view_term") ) rules.add_perm("paweljong.view_term_rule", view_term_predicate) @@ -149,7 +153,7 @@ rules.add_perm("paweljong.view_info_mailings_rule", view_info_mailings_predicate # View info_mailing view_info_mailing_predicate = has_person & ( - has_global_perm("paweljong.view_info_mailing") | has_object_perm("paweljong.view_info_mailing", Terms) + has_global_perm("paweljong.view_info_mailing") | has_object_perm("paweljong.view_info_mailing") ) rules.add_perm("paweljong.view_info_mailing_rule", view_info_mailing_predicate) diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py index 6179f3d..806b313 100644 --- a/aleksis/apps/paweljong/views.py +++ b/aleksis/apps/paweljong/views.py @@ -685,12 +685,13 @@ class RegisterEventWizardView(SessionWizardView): return redirect("index") -class EventFullView(DetailView): +class EventFullView(PermissionRequiredMixin, DetailView): model = Event slug_field = "slug" template_name = "paweljong/event/full.html" object_context_name = "event" + permission_required = "paweljong.view_event_rule" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -700,12 +701,13 @@ class EventFullView(DetailView): return context -class RegisterEventStart(DetailView): +class RegisterEventStart(PermissionRequiredMixin, DetailView): model = Event slug_field = "slug" template_name = "paweljong/event/register_start.html" object_context_name = "event" + permission_required = "paweljong.view_event_rule" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) -- GitLab