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 django.contrib.auth import get_user_model
from rules import predicate from rules import predicate
...@@ -5,7 +7,7 @@ from rules import predicate ...@@ -5,7 +7,7 @@ from rules import predicate
from aleksis.core.models import Group, Person from aleksis.core.models import Group, Person
from aleksis.core.util.predicates import check_object_permission from aleksis.core.util.predicates import check_object_permission
from .models import EventRegistration, Voucher from .models import Event, EventRegistration, Voucher
User = get_user_model() User = get_user_model()
...@@ -23,11 +25,18 @@ def is_own_registration(user: User, registration: EventRegistration) -> bool: ...@@ -23,11 +25,18 @@ def is_own_registration(user: User, registration: EventRegistration) -> bool:
@predicate @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.""" """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 @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.""" """Predicate which checks if the event is published."""
return obj.published return obj.published
...@@ -225,6 +225,6 @@ can_view_menu_predicate = has_person & ( ...@@ -225,6 +225,6 @@ can_view_menu_predicate = has_person & (
| view_terms_predicate | view_terms_predicate
| view_vouchers_predicate | view_vouchers_predicate
| view_events_predicate | view_events_predicate
| view_events_registration_states_predicate | view_registration_states_predicate
) )
rules.add_perm("paweljong.view_menu", can_view_menu_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