@@ -105,6 +105,23 @@ def encrypt(plaintext, password):
105
105
else :
106
106
diasend_enabled = True
107
107
108
+ superset_params = config (filename = "encrypted_settings.ini" , section = "superset" , encr_pass = encr_pass )
109
+ superset_installed = str (superset_params .get ("superset" ))
110
+ superset_url = str (superset_params .get ("url" ))
111
+ if superset_installed == 'true' :
112
+ superset_enabled = True
113
+ else :
114
+ superset_enabled = False
115
+
116
+ pgweb_params = config (filename = "encrypted_settings.ini" , section = "pgweb" , encr_pass = encr_pass )
117
+ pgweb_installed = str (pgweb_params .get ("pgweb" ))
118
+ pgweb_smpl_url = str (pgweb_params .get ("url_smpl" ))
119
+ pgweb_usr_url = str (pgweb_params .get ("url_usr" ))
120
+ if pgweb_installed == 'true' :
121
+ pgweb_enabled = True
122
+ else :
123
+ pgweb_enabled = False
124
+
108
125
def get_dropbox_auth_flow (session ):
109
126
return dropbox .oauth .DropboxOAuth2Flow (
110
127
APP_KEY , REDIRECT_URI , session , "athletedataapp_dropbox-auth-csrf-token" , APP_SECRET ,token_access_type = "offline" )
@@ -199,7 +216,7 @@ def index():
199
216
connection = check_db_server_connectivity (ath_un ,db_host ,superuser_un ,superuser_pw )
200
217
if connection != 'SUCCESS' :
201
218
flash (' Could cot connect to the DB Host.The host returned an error: ' + connection ,'danger' )
202
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
219
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
203
220
else :
204
221
#If user does not wish to download to his db, credentials to be retrieved from .ini.
205
222
params = config (filename = "encrypted_settings.ini" , section = "postgresql" ,encr_pass = encr_pass )
@@ -212,13 +229,13 @@ def index():
212
229
host_record_exists = check_host_record_exists (ath_un ,db_name ,db_host ,encr_pass )
213
230
if host_record_exists == True :
214
231
flash (' You can only download to one db host. Please correct the db_hostname and try again' ,'warning' )
215
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
232
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
216
233
217
234
#----Check if the provided GC credentials are valid-----
218
235
#gc_cred_valid = gc.check_gc_creds(gc_username,gc_password)
219
236
#if gc_cred_valid == False:
220
237
#flash(' The Garmin Connect login credentials are not valid. Please try again','warning')
221
- #return render_template("index.html",signin_valid=signin_valid,admin_email=admin_email,integrated_with_dropbox=integrated_with_dropbox,diasend_enabled=diasend_enabled,oura_enabled=oura_enabled,strava_enabled=strava_enabled)
238
+ #return render_template("index.html",superset_enabled=superset_enabled,superset_url=superset_url,pgweb_enabled=pgweb_enabled,pgweb_smpl_url=pgweb_smpl_url,pgweb_usr_url=pgweb_usr_url, signin_valid=signin_valid,admin_email=admin_email,integrated_with_dropbox=integrated_with_dropbox,diasend_enabled=diasend_enabled,oura_enabled=oura_enabled,strava_enabled=strava_enabled)
222
239
223
240
#----- Set Auto_Synch variables--------
224
241
@@ -412,7 +429,7 @@ def index():
412
429
time .sleep (1 )
413
430
with ProgressStdoutRedirection (ath_un ):
414
431
print (del_progress )
415
- return render_template ("index.html" ,signin_valid = signin_valid ,del_progress = del_progress ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
432
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,del_progress = del_progress ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
416
433
except :
417
434
del_progress = 'Error deleting data'
418
435
progress_error = True
@@ -421,7 +438,7 @@ def index():
421
438
time .sleep (1 )
422
439
with ErrorStdoutRedirection (ath_un ):
423
440
print ((str (datetime .datetime .now ()) + ' [' + sys ._getframe ().f_code .co_name + ']' + ' Error on line {}' .format (sys .exc_info ()[- 1 ].tb_lineno ) + ' ' + del_progress ))
424
- return render_template ("index.html" ,signin_valid = signin_valid ,del_progress = del_progress ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
441
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,del_progress = del_progress ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
425
442
426
443
427
444
#----Check and set start_date and end_date variables and proceed with download----
@@ -447,7 +464,7 @@ def index():
447
464
print ((str (datetime .datetime .now ()) + ' [' + sys ._getframe ().f_code .co_name + ']' + ' Error on line {}' .format (sys .exc_info ()[- 1 ].tb_lineno ) + ' ' + str (e )))
448
465
#PG:If start date not provided render index and flash warning
449
466
flash (' Please provide a valid start date and try again!' ,'danger' )
450
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
467
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
451
468
452
469
# DATA DOWNLOAD --------------------------------------
453
470
@@ -489,7 +506,7 @@ def index():
489
506
with StdoutRedirection (ath_un ):
490
507
print (gc_login_progress )
491
508
flash (' There was a problem logging in to Garmin Connect. The script will now continue, but will skip the Garmin data. Please try again later' ,'warning' )
492
- #return render_template("index.html",signin_valid=signin_valid,admin_email=admin_email,integrated_with_dropbox=integrated_with_dropbox,diasend_enabled=diasend_enabled,oura_enabled=oura_enabled,strava_enabled=strava_enabled)
509
+ #return render_template("index.html",superset_enabled=superset_enabled,superset_url=superset_url,pgweb_enabled=pgweb_enabled,pgweb_smpl_url=pgweb_smpl_url,pgweb_usr_url=pgweb_usr_url, signin_valid=signin_valid,admin_email=admin_email,integrated_with_dropbox=integrated_with_dropbox,diasend_enabled=diasend_enabled,oura_enabled=oura_enabled,strava_enabled=strava_enabled)
493
510
494
511
#---------------------------------- GC Activities ---------------------------------------
495
512
@@ -815,7 +832,7 @@ def index():
815
832
with ProgressStdoutRedirection (ath_un ):
816
833
print (('--------------- ' + str (datetime .datetime .now ()) + ' User ' + ath_un + ' Finished Data Download ' + error_log_entry + ' -------------' ))
817
834
818
- return render_template ("index.html" ,signin_valid = signin_valid ,del_progress = del_progress ,mfp_progress = mfp_progress ,diasend_progress = diasend_progress ,
835
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,del_progress = del_progress ,mfp_progress = mfp_progress ,diasend_progress = diasend_progress ,
819
836
glimp_progress = glimp_progress , mm_progress = mm_progress , cstm_progress = cstm_progress , gc_login_progress = gc_login_progress ,gc_fit_activ_progress = gc_fit_activ_progress ,
820
837
gc_tcx_activ_progress = gc_tcx_activ_progress ,gc_fit_well_progress = gc_fit_well_progress , gc_json_well_progress = gc_json_well_progress ,
821
838
gc_json_dailysum_progress = gc_json_dailysum_progress , oura_well_progress = oura_well_progress , strava_activ_progress = strava_activ_progress ,
@@ -833,7 +850,7 @@ def index():
833
850
834
851
else : # Request method is GET
835
852
continue_btn = request .args .get ('continue_btn' )
836
- return render_template ("index.html" ,signin_valid = signin_valid ,continue_btn = continue_btn ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
853
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,continue_btn = continue_btn ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
837
854
838
855
@app .route ("/ath_register" , methods = ['GET' , 'POST' ])
839
856
def ath_register ():
@@ -845,10 +862,10 @@ def ath_register():
845
862
session ['signin_valid' ] = signin_valid
846
863
session ['ath_pw' ] = ath_pw
847
864
flash (' Account created successfuly. You are now logged-in' ,'success' )
848
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
865
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
849
866
else :
850
867
flash (' An account with this email address already exists' ,'danger' )
851
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
868
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
852
869
853
870
@app .route ("/ath_login" , methods = ['GET' , 'POST' ])
854
871
def ath_login ():
@@ -860,17 +877,42 @@ def ath_login():
860
877
session ['signin_valid' ] = signin_valid
861
878
session ['ath_pw' ] = ath_pw
862
879
flash (' Login successfull.' ,'success' )
863
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
880
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
864
881
else :
865
882
flash (' Login failed, please try again.' ,'danger' )
866
- return render_template ("index.html" ,signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
883
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , signin_valid = signin_valid ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
867
884
868
885
@app .route ("/ath_logout" , methods = ['GET' , 'POST' ])
869
886
def ath_logout ():
870
887
if 'signin_valid' in session :
871
888
session ['signin_valid' ] = None
872
889
return redirect (url_for ('index' ))
873
890
891
+ @app .route ("/ath_superset" , methods = ['GET' , 'POST' ])
892
+ def superset_login_request ():
893
+ superset_params = config (filename = "encrypted_settings.ini" , section = "superset" , encr_pass = encr_pass )
894
+ superset_url = str (superset_params .get ("url" ))
895
+ if request .args .get ('user' ) == 'user' :
896
+ if 'signin_valid' not in session :#User not logged in
897
+ flash (' You need to be logged in to access this link.' ,'danger' )
898
+ else :
899
+ ath_un = session ['signin_valid' ]
900
+ user_exists = check_user_exists (ath_un ,encr_pass )
901
+ if not user_exists :
902
+ flash (' This email address does not exist in the superset database.' ,'danger' )
903
+ return redirect (url_for ('index' ))
904
+ else :
905
+ usr_token = jwt .encode ({'ath_un' : ath_un ,'exp' : time .time () + 10 },key = app .secret_key , algorithm = "HS256" )
906
+ if type (usr_token ) != str :
907
+ usr_token = usr_token .decode ('UTF-8' )
908
+ return redirect (superset_url + 'login?username={}' .format (usr_token ))
909
+ else :#Sample User
910
+ ath_un = 'sample_user'
911
+ usr_token = jwt .encode ({'ath_un' : ath_un ,'exp' : time .time () + 10 },key = app .secret_key , algorithm = "HS256" )
912
+ if type (usr_token ) != str :
913
+ usr_token = usr_token .decode ('UTF-8' )
914
+ return redirect (superset_url + 'login?username={}' .format (usr_token ))
915
+
874
916
@app .route ("/ath_reset_password" , methods = ['GET' , 'POST' ])
875
917
def reset_request ():
876
918
ath_un = str (request .form .get ('athUserReset' ))
@@ -887,6 +929,9 @@ def reset_request():
887
929
return redirect (url_for ('index' ))
888
930
else :
889
931
password_reset_token = jwt .encode ({'reset_password' : ath_un ,'exp' : time .time () + 300 },key = app .secret_key , algorithm = "HS256" )
932
+ #Check whether the token is of type string, and decode if not.
933
+ if type (password_reset_token ) != str :
934
+ password_reset_token = password_reset_token .decode ('UTF-8' )
890
935
if send_emails == 'true' :
891
936
send_email (
892
937
encr_pass ,
@@ -1039,7 +1084,7 @@ def db_info():
1039
1084
db_username = None
1040
1085
password_info = None
1041
1086
flash (' The DB name, DB role and DB permissions are generated based on your username(email). Please log-in and try again. This information is not recorded anywhere until you proceed with the download and the AutoSynch option is enabled.' ,'warning' )
1042
- return render_template ("index.html" ,admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
1087
+ return render_template ("index.html" ,superset_enabled = superset_enabled , superset_url = superset_url , pgweb_enabled = pgweb_enabled , pgweb_smpl_url = pgweb_smpl_url , pgweb_usr_url = pgweb_usr_url , admin_email = admin_email ,integrated_with_dropbox = integrated_with_dropbox ,diasend_enabled = diasend_enabled ,oura_enabled = oura_enabled ,strava_enabled = strava_enabled )
1043
1088
1044
1089
@app .route ("/dropbox_auth_request" )
1045
1090
def dropbox_auth_request ():
0 commit comments