Skip to content
Snippets Groups Projects
Commit c593f63a authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Add permission to check if event is published

parent bb056868
No related branches found
No related tags found
1 merge request!15Resolve "Permissions by group owners"
Pipeline #59151 canceled
...@@ -26,3 +26,8 @@ def is_own_registration(user: User, registration: EventRegistration) -> bool: ...@@ -26,3 +26,8 @@ def is_own_registration(user: User, registration: EventRegistration) -> bool:
def is_organiser(user: User, obj: EventRegistration) -> bool: def is_organiser(user: User, obj: EventRegistration) -> bool:
"""Predicate which checks if the user is an organiser.""" """Predicate which checks if the user is an organiser."""
return user.person in obj.event.linked_group.owners.all() 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
...@@ -14,6 +14,7 @@ from .predicates import ( ...@@ -14,6 +14,7 @@ from .predicates import (
is_own_registration, is_own_registration,
is_own_voucher, is_own_voucher,
is_organiser, is_organiser,
is_event_published,
) )
## Vouchers ## Vouchers
...@@ -59,6 +60,9 @@ change_event_predicate = has_person & ( ...@@ -59,6 +60,9 @@ change_event_predicate = has_person & (
) )
rules.add_perm("paweljong.change_event_rule", change_event_predicate) 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
delete_event_predicate = has_person & ( delete_event_predicate = has_person & (
...@@ -114,7 +118,7 @@ rules.add_perm("paweljong.view_terms_rule", view_terms_predicate) ...@@ -114,7 +118,7 @@ rules.add_perm("paweljong.view_terms_rule", view_terms_predicate)
# View term # View term
view_term_predicate = has_person & ( 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) 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 ...@@ -149,7 +153,7 @@ rules.add_perm("paweljong.view_info_mailings_rule", view_info_mailings_predicate
# View info_mailing # View info_mailing
view_info_mailing_predicate = has_person & ( 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) rules.add_perm("paweljong.view_info_mailing_rule", view_info_mailing_predicate)
......
...@@ -685,12 +685,13 @@ class RegisterEventWizardView(SessionWizardView): ...@@ -685,12 +685,13 @@ class RegisterEventWizardView(SessionWizardView):
return redirect("index") return redirect("index")
class EventFullView(DetailView): class EventFullView(PermissionRequiredMixin, DetailView):
model = Event model = Event
slug_field = "slug" slug_field = "slug"
template_name = "paweljong/event/full.html" template_name = "paweljong/event/full.html"
object_context_name = "event" object_context_name = "event"
permission_required = "paweljong.view_event_rule"
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
...@@ -700,12 +701,13 @@ class EventFullView(DetailView): ...@@ -700,12 +701,13 @@ class EventFullView(DetailView):
return context return context
class RegisterEventStart(DetailView): class RegisterEventStart(PermissionRequiredMixin, DetailView):
model = Event model = Event
slug_field = "slug" slug_field = "slug"
template_name = "paweljong/event/register_start.html" template_name = "paweljong/event/register_start.html"
object_context_name = "event" object_context_name = "event"
permission_required = "paweljong.view_event_rule"
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment