55from  flask_jwt_extended  import  jwt_required , current_user 
66
77from  app .api .helpers .export_helpers  import  export_event_json , create_export_job 
8+ from  app .api .helpers .permissions  import  is_coorganizer 
89from  app .api .helpers .utilities  import  TASK_RESULTS 
9- from  app .models  import  db 
10- from  app .models .event  import  Event 
1110
1211export_routes  =  Blueprint ('exports' , __name__ , url_prefix = '/v1' )
1312
2019
2120
2221@export_routes .route ('/events/<string:event_identifier>/export/json' , methods = ['POST' ]) 
23- @jwt_required  
24- def  export_event (event_identifier ):
22+ @is_coorganizer  
23+ def  export_event (event_id ):
2524    from  .helpers .tasks  import  export_event_task 
2625
2726    settings  =  EXPORT_SETTING 
@@ -30,11 +29,6 @@ def export_event(event_identifier):
3029    settings ['document' ] =  request .json .get ('document' , False )
3130    settings ['audio' ] =  request .json .get ('audio' , False )
3231
33-     if  not  event_identifier .isdigit ():
34-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
35-         event_id  =  event .id 
36-     else :
37-         event_id  =  event_identifier 
3832    # queue task 
3933    task  =  export_event_task .delay (
4034        current_user .email , event_id , settings )
@@ -54,7 +48,7 @@ def export_event(event_identifier):
5448
5549
5650@export_routes .route ('/events/<string:event_id>/exports/<path:path>' ) 
57- @jwt_required  
51+ @is_coorganizer  
5852def  export_download (event_id , path ):
5953    if  not  path .startswith ('/' ):
6054        path  =  '/'  +  path 
@@ -66,14 +60,8 @@ def export_download(event_id, path):
6660
6761
6862@export_routes .route ('/events/<string:event_identifier>/export/xcal' , methods = ['GET' ]) 
69- @jwt_required  
70- def  export_event_xcal (event_identifier ):
71- 
72-     if  not  event_identifier .isdigit ():
73-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
74-         event_id  =  str (event .id )
75-     else :
76-         event_id  =  event_identifier 
63+ @is_coorganizer  
64+ def  export_event_xcal (event_id ):
7765
7866    from  .helpers .tasks  import  export_xcal_task 
7967
@@ -95,13 +83,8 @@ def event_export_task_base(event_id, settings):
9583
9684
9785@export_routes .route ('/events/<string:event_identifier>/export/ical' , methods = ['GET' ]) 
98- @jwt_required  
99- def  export_event_ical (event_identifier ):
100-     if  not  event_identifier .isdigit ():
101-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
102-         event_id  =  str (event .id )
103-     else :
104-         event_id  =  event_identifier 
86+ @is_coorganizer  
87+ def  export_event_ical (event_id ):
10588
10689    from  .helpers .tasks  import  export_ical_task 
10790
@@ -115,13 +98,8 @@ def export_event_ical(event_identifier):
11598
11699
117100@export_routes .route ('/events/<string:event_identifier>/export/pentabarf' , methods = ['GET' ]) 
118- @jwt_required  
119- def  export_event_pentabarf (event_identifier ):
120-     if  not  event_identifier .isdigit ():
121-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
122-         event_id  =  str (event .id )
123-     else :
124-         event_id  =  event_identifier 
101+ @is_coorganizer  
102+ def  export_event_pentabarf (event_id ):
125103
126104    from  .helpers .tasks  import  export_pentabarf_task 
127105
@@ -135,13 +113,8 @@ def export_event_pentabarf(event_identifier):
135113
136114
137115@export_routes .route ('/events/<string:event_identifier>/export/orders/csv' , methods = ['GET' ]) 
138- @jwt_required  
139- def  export_orders_csv (event_identifier ):
140-     if  not  event_identifier .isdigit ():
141-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
142-         event_id  =  str (event .id )
143-     else :
144-         event_id  =  event_identifier 
116+ @is_coorganizer  
117+ def  export_orders_csv (event_id ):
145118
146119    from  .helpers .tasks  import  export_order_csv_task 
147120
@@ -155,13 +128,8 @@ def export_orders_csv(event_identifier):
155128
156129
157130@export_routes .route ('/events/<string:event_identifier>/export/orders/pdf' , methods = ['GET' ]) 
158- @jwt_required  
159- def  export_orders_pdf (event_identifier ):
160-     if  not  event_identifier .isdigit ():
161-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
162-         event_id  =  str (event .id )
163-     else :
164-         event_id  =  event_identifier 
131+ @is_coorganizer  
132+ def  export_orders_pdf (event_id ):
165133
166134    from  .helpers .tasks  import  export_order_pdf_task 
167135
@@ -175,13 +143,8 @@ def export_orders_pdf(event_identifier):
175143
176144
177145@export_routes .route ('/events/<string:event_identifier>/export/attendees/csv' , methods = ['GET' ]) 
178- @jwt_required  
179- def  export_attendees_csv (event_identifier ):
180-     if  not  event_identifier .isdigit ():
181-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
182-         event_id  =  str (event .id )
183-     else :
184-         event_id  =  event_identifier 
146+ @is_coorganizer  
147+ def  export_attendees_csv (event_id ):
185148
186149    from  .helpers .tasks  import  export_attendees_csv_task 
187150
@@ -195,13 +158,8 @@ def export_attendees_csv(event_identifier):
195158
196159
197160@export_routes .route ('/events/<string:event_identifier>/export/attendees/pdf' , methods = ['GET' ]) 
198- @jwt_required  
199- def  export_attendees_pdf (event_identifier ):
200-     if  not  event_identifier .isdigit ():
201-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
202-         event_id  =  str (event .id )
203-     else :
204-         event_id  =  event_identifier 
161+ @is_coorganizer  
162+ def  export_attendees_pdf (event_id ):
205163
206164    from  .helpers .tasks  import  export_attendees_pdf_task 
207165
@@ -215,13 +173,8 @@ def export_attendees_pdf(event_identifier):
215173
216174
217175@export_routes .route ('/events/<string:event_identifier>/export/sessions/csv' , methods = ['GET' ]) 
218- @jwt_required  
219- def  export_sessions_csv (event_identifier ):
220-     if  not  event_identifier .isdigit ():
221-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
222-         event_id  =  str (event .id )
223-     else :
224-         event_id  =  event_identifier 
176+ @is_coorganizer  
177+ def  export_sessions_csv (event_id ):
225178
226179    from  .helpers .tasks  import  export_sessions_csv_task 
227180
@@ -235,13 +188,8 @@ def export_sessions_csv(event_identifier):
235188
236189
237190@export_routes .route ('/events/<string:event_identifier>/export/speakers/csv' , methods = ['GET' ]) 
238- @jwt_required  
239- def  export_speakers_csv (event_identifier ):
240-     if  not  event_identifier .isdigit ():
241-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
242-         event_id  =  str (event .id )
243-     else :
244-         event_id  =  event_identifier 
191+ @is_coorganizer  
192+ def  export_speakers_csv (event_id ):
245193
246194    from  .helpers .tasks  import  export_speakers_csv_task 
247195
@@ -255,13 +203,8 @@ def export_speakers_csv(event_identifier):
255203
256204
257205@export_routes .route ('/events/<string:event_identifier>/export/sessions/pdf' , methods = ['GET' ]) 
258- @jwt_required  
259- def  export_sessions_pdf (event_identifier ):
260-     if  not  event_identifier .isdigit ():
261-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
262-         event_id  =  str (event .id )
263-     else :
264-         event_id  =  event_identifier 
206+ @is_coorganizer  
207+ def  export_sessions_pdf (event_id ):
265208
266209    from  .helpers .tasks  import  export_sessions_pdf_task 
267210
@@ -275,13 +218,8 @@ def export_sessions_pdf(event_identifier):
275218
276219
277220@export_routes .route ('/events/<string:event_identifier>/export/speakers/pdf' , methods = ['GET' ]) 
278- @jwt_required  
279- def  export_speakers_pdf (event_identifier ):
280-     if  not  event_identifier .isdigit ():
281-         event  =  db .session .query (Event ).filter_by (identifier = event_identifier ).first ()
282-         event_id  =  str (event .id )
283-     else :
284-         event_id  =  event_identifier 
221+ @is_coorganizer  
222+ def  export_speakers_pdf (event_id ):
285223
286224    from  .helpers .tasks  import  export_speakers_pdf_task 
287225
0 commit comments