Skip to content

Commit 02255f7

Browse files
fix: Give access to order tickets and attendees to organizers (#7481)
1 parent daf027d commit 02255f7

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

app/api/attendees.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,17 +132,19 @@ def query(self, view_kwargs):
132132
'order_identifier',
133133
'identifier',
134134
)
135+
136+
is_coorganizer = has_access(
137+
'is_coorganizer',
138+
event_id=order.event_id,
139+
)
135140
if not (
136-
has_access(
137-
'is_coorganizer_or_user_itself',
138-
event_id=order.event_id,
139-
user_id=order.user_id,
140-
)
141+
is_coorganizer
142+
or current_user.id == order.user_id
141143
or order.is_attendee(current_user)
142144
):
143145
raise ForbiddenError({'source': ''}, 'Access Forbidden')
144146
query_ = query_.join(Order).filter(Order.id == order.id)
145-
if current_user.id != order.user_id:
147+
if not is_coorganizer and current_user.id != order.user_id:
146148
query_ = query_.filter(TicketHolder.user == current_user)
147149

148150
if view_kwargs.get('ticket_id'):

app/models/order.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,16 @@ def invoice_pdf_path(self) -> str:
157157

158158
@property
159159
def filtered_ticket_holders(self):
160+
from app.api.helpers.permission_manager import has_access
161+
160162
query_ = TicketHolder.query.filter_by(order_id=self.id, deleted_at=None)
161-
if current_user.id != self.user_id:
163+
if (
164+
not has_access(
165+
'is_coorganizer',
166+
event_id=self.event_id,
167+
)
168+
and current_user.id != self.user_id
169+
):
162170
query_ = query_.filter(TicketHolder.user == current_user)
163171
return query_.all()
164172

0 commit comments

Comments
 (0)