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

Fix use of predicate

parent d9ffc22a
No related branches found
No related tags found
1 merge request!14Payments
Pipeline #59290 failed
from typing import Union
from django.contrib.auth import get_user_model
from rules import predicate
......@@ -5,7 +7,7 @@ from rules import predicate
from aleksis.core.models import Group, Person
from aleksis.core.util.predicates import check_object_permission
from .models import EventRegistration, Voucher
from .models import Event, EventRegistration, Voucher
User = get_user_model()
......@@ -23,11 +25,18 @@ def is_own_registration(user: User, registration: EventRegistration) -> bool:
@predicate
def is_organiser(user: User, obj: EventRegistration) -> bool:
def is_organiser(user: User, obj: Union[Event, EventRegistration]) -> bool:
"""Predicate which checks if the user is an organiser."""
return user.person in obj.event.linked_group.owners.all()
if isinstance(obj, EventRegistration):
event = obj.event
elif isinstance(obj, Event):
event = obj
else:
raise TypeError("This predicate can only check Event and EventRegistration.")
return user.person in event.linked_group.owners.all()
@predicate
def is_event_published(obj: EventRegistration) -> bool:
def is_event_published(user: User, obj: EventRegistration) -> bool:
"""Predicate which checks if the event is published."""
return obj.published
......@@ -225,6 +225,6 @@ can_view_menu_predicate = has_person & (
| view_terms_predicate
| view_vouchers_predicate
| view_events_predicate
| view_events_registration_states_predicate
| view_registration_states_predicate
)
rules.add_perm("paweljong.view_menu", can_view_menu_predicate)
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