Skip to content

Commit cf03f65

Browse files
abhinavk96iamareebjamal
authored andcommitted
fix: resolve error on multi-attendee downloads (#6110)
1 parent 88d1b13 commit cf03f65

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

app/api/auth.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,9 @@ def change_password():
295295
})
296296

297297

298-
def return_tickets(file_path, order_identifier):
298+
def return_file(file_name_prefix, file_path, order_identifier):
299299
response = make_response(send_file(file_path))
300-
response.headers['Content-Disposition'] = 'attachment; filename=ticket-%s.pdf' % order_identifier
300+
response.headers['Content-Disposition'] = 'attachment; filename=%s-%s.pdf' % (file_name_prefix, order_identifier)
301301
return response
302302

303303

@@ -313,10 +313,10 @@ def ticket_attendee_authorized(order_identifier):
313313
key = UPLOAD_PATHS['pdf']['tickets_all'].format(identifier=order_identifier)
314314
file_path = '../generated/tickets/{}/{}/'.format(key, generate_hash(key)) + order_identifier + '.pdf'
315315
try:
316-
return return_tickets(file_path, order_identifier)
316+
return return_file('ticket', file_path, order_identifier)
317317
except FileNotFoundError:
318318
create_pdf_tickets_for_holder(order)
319-
return return_tickets(file_path, order_identifier)
319+
return return_file('ticket', file_path, order_identifier)
320320
else:
321321
return ForbiddenError({'source': ''}, 'Unauthorized Access').respond()
322322
else:
@@ -329,15 +329,16 @@ def order_invoices(order_identifier):
329329
if current_user:
330330
try:
331331
order = Order.query.filter_by(identifier=order_identifier).first()
332-
user_id = order.user.id
333332
except NoResultFound:
334333
return NotFoundError({'source': ''}, 'Order Invoice not found').respond()
335-
if current_user.id == user_id:
334+
if current_user.can_download_tickets(order):
336335
key = UPLOAD_PATHS['pdf']['order'].format(identifier=order_identifier)
337336
file_path = '../generated/invoices/{}/{}/'.format(key, generate_hash(key)) + order_identifier + '.pdf'
338-
response = make_response(send_file(file_path))
339-
response.headers['Content-Disposition'] = 'attachment; filename=invoice-%s.zip' % order_identifier
340-
return response
337+
try:
338+
return return_file('invoice', file_path, order_identifier)
339+
except FileNotFoundError:
340+
create_pdf_tickets_for_holder(order)
341+
return return_file('invoice', file_path, order_identifier)
341342
else:
342343
return ForbiddenError({'source': ''}, 'Unauthorized Access').respond()
343344
else:

0 commit comments

Comments
 (0)