@@ -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