Skip to content

Commit dae3484

Browse files
authored
web.py - added minor safeguards around secure_filename() to prevent edge cases from raising 500 errors on the server (#484)
1 parent d20086a commit dae3484

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

omf/web.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,8 +1075,8 @@ def milsoftImport(owner):
10751075
os.remove(os.path.join(model_dir, filename))
10761076
if os.path.isfile(error_filepath):
10771077
os.remove(error_filepath)
1078-
feederName = secure_filename(str(request.form.get('feederNameM', 'feeder')))
1079-
feederNum = secure_filename(request.form.get("feederNum",1))
1078+
feederName = secure_filename(str(request.form.get('feederNameM', 'feeder'))) or 'feeder'
1079+
feederNum = secure_filename(request.form.get("feederNum", '1'))
10801080
std_filepath, seq_filepath = [os.path.join(_omfDir, 'data', 'Model', owner, modelName, filename) for filename in (feederName + '.std', feederName + '.seq')]
10811081
request.files.get('stdFile').save(std_filepath)
10821082
request.files.get('seqFile').save(seq_filepath)
@@ -1137,8 +1137,8 @@ def matpowerImport(owner):
11371137
os.remove(error_path)
11381138
with locked_open(con_file_path, 'w') as conFile:
11391139
conFile.write("WORKING")
1140-
networkName = secure_filename(str(request.form.get('networkNameM', 'network1')))
1141-
networkNum = secure_filename(request.form.get("networkNum", 1))
1140+
networkName = secure_filename(str(request.form.get('networkNameM', 'network1'))) or 'network'
1141+
networkNum = secure_filename(request.form.get("networkNum", '1'))
11421142
network_filepath = os.path.join(_omfDir, 'data', 'Model', owner, modelName, networkName + '.m')
11431143
request.files['matFile'].save(network_filepath)
11441144
importProc = Process(target=_mat_import_background, args=[owner, modelName, networkName, networkNum])
@@ -1186,8 +1186,8 @@ def rawImport(owner):
11861186
os.remove(error_path)
11871187
with locked_open(con_file_path, 'w') as conFile:
11881188
conFile.write("WORKING")
1189-
networkName = secure_filename(str(request.form.get('networkNameR', 'network1')))
1190-
networkNum = secure_filename(request.form.get("networkNum", 1))
1189+
networkName = secure_filename(str(request.form.get('networkNameR', 'network1'))) or 'network'
1190+
networkNum = secure_filename(request.form.get("networkNum", '1'))
11911191
network_filepath = os.path.join(_omfDir, 'data', 'Model', owner, modelName, 'import.raw')
11921192
request.files['rawFile'].save(network_filepath)
11931193
importProc = Process(target=_raw_import_background, args=[owner, modelName, networkName, networkNum])
@@ -1235,10 +1235,10 @@ def gridlabdImport(owner):
12351235
if os.path.isfile(error_path):
12361236
os.remove(error_path)
12371237
# Handle request objects
1238-
feederName = secure_filename(str(request.form.get("feederNameG","")))
1238+
feederName = secure_filename(str(request.form.get("feederNameG",""))) or 'feeder'
12391239
glm_path = os.path.join(_omfDir, 'data', 'Model', owner, modelName, feederName + '.glm')
12401240
request.files['glmFile'].save(glm_path)
1241-
feederNum = secure_filename(request.form.get("feederNum", 1))
1241+
feederNum = secure_filename(request.form.get("feederNum", '1'))
12421242
importProc = Process(target=_gridlab_import_background, args=[owner, modelName, feederName, feederNum])
12431243
importProc.start()
12441244
return 'Success'
@@ -1285,8 +1285,8 @@ def dssImport(owner):
12851285
os.remove(os.path.join(modelDir, filename))
12861286
if os.path.isfile(error_path):
12871287
os.remove(error_path)
1288-
feederName = secure_filename(str(request.form.get("feederNameOpendss","")))
1289-
feederNum = secure_filename(request.form.get("feederNum", 1))
1288+
feederName = secure_filename(str(request.form.get("feederNameOpendss",""))) or 'feeder'
1289+
feederNum = secure_filename(request.form.get("feederNum", '1'))
12901290
dss_path = os.path.join(_omfDir, 'data', 'Model', owner, modelName, feederName + '.dss')
12911291
request.files['dssFile'].save(dss_path)
12921292
importProc = Process(target=_dss_import_background, args=[owner, modelName, feederName, feederNum])
@@ -1331,7 +1331,7 @@ def _dss_import_background(owner, modelName, feederName, feederNum):
13311331
@flask_login.login_required
13321332
@write_permission_function
13331333
def scadaLoadshape(owner, feederName):
1334-
#feederNum = request.form.get("feederNum",1)
1334+
#feederNum = request.form.get("feederNum", '1')
13351335
loadName = 'calibration'
13361336
modelName = request.form.get("modelName","")
13371337
# delete calibration csv, calibration folder, and error file if they exist
@@ -1398,7 +1398,7 @@ def _background_scada_loadshape(owner, modelName, feederName, loadName):
13981398
@flask_login.login_required
13991399
@write_permission_function
14001400
def loadModelingAmi(owner, feederName):
1401-
#feederNum = request.form.get('feederNum', 1)
1401+
#feederNum = request.form.get('feederNum', '1')
14021402
loadName = 'ami'
14031403
modelName = request.form.get('modelName', '')
14041404
filepaths = [os.path.join(_omfDir, 'data', 'Model', owner, modelName, filename) for filename in ('amiError.txt', 'amiLoad.csv')]
@@ -1436,8 +1436,8 @@ def cymeImport(owner):
14361436
error_filepath = os.path.join(_omfDir, 'data', 'Model', owner, modelName, 'gridError.txt')
14371437
if os.path.isfile(error_filepath):
14381438
os.remove(error_filepath)
1439-
feederNum = secure_filename(request.form.get("feederNum",1))
1440-
feederName = secure_filename(str(request.form.get("feederNameC","")))
1439+
feederNum = secure_filename(request.form.get("feederNum", '1'))
1440+
feederName = secure_filename(str(request.form.get("feederNameC",""))) or 'feeder'
14411441
mdbFileObject = request.files["mdbNetFile"]
14421442
mdb_filepath = os.path.join(_omfDir, 'data', 'Model', owner, modelName, feederName + '.mdb')
14431443
mdbFileObject.save(mdb_filepath)

0 commit comments

Comments
 (0)