|
21 | 21 | from murfey.client.multigrid_control import MultigridController |
22 | 22 | from murfey.client.rsync import RSyncer |
23 | 23 | from murfey.client.watchdir_multigrid import MultigridDirWatcher |
24 | | -from murfey.util import sanitise_nonpath, secure_path |
| 24 | +from murfey.util import sanitise, sanitise_nonpath, secure_path |
25 | 25 | from murfey.util.instrument_models import MultigridWatcherSpec |
26 | 26 | from murfey.util.models import File, Token |
27 | 27 |
|
@@ -278,19 +278,16 @@ class GainReference(BaseModel): |
278 | 278 |
|
279 | 279 | @router.post("/sessions/{session_id}/upload_gain_reference") |
280 | 280 | def upload_gain_reference(session_id: MurfeySessionID, gain_reference: GainReference): |
| 281 | + safe_gain_path = sanitise(str(gain_reference.gain_path)) |
| 282 | + safe_visit_path = sanitise(gain_reference.visit_path) |
| 283 | + safe_destination_dir = sanitise(gain_reference.gain_destination_dir) |
281 | 284 | cmd = [ |
282 | 285 | "rsync", |
283 | | - str(gain_reference.gain_path), |
284 | | - f"{urlparse(_get_murfey_url(), allow_fragments=False).hostname}::{gain_reference.visit_path}/{gain_reference.gain_destination_dir}/{secure_filename(gain_reference.gain_path.name)}", |
| 286 | + safe_gain_path, |
| 287 | + f"{urlparse(_get_murfey_url(), allow_fragments=False).hostname}::{safe_visit_path}/{safe_destination_dir}/{secure_filename(gain_reference.gain_path.name)}", |
285 | 288 | ] |
286 | 289 | gain_rsync = subprocess.run(cmd) |
287 | 290 | if gain_rsync.returncode: |
288 | | - safe_gain_path = ( |
289 | | - str(gain_reference.gain_path).replace("\r\n", "").replace("\n", "") |
290 | | - ) |
291 | | - safe_visit_path = gain_reference.visit_path.replace("\r\n", "").replace( |
292 | | - "\n", "" |
293 | | - ) |
294 | 291 | logger.warning( |
295 | 292 | f"Gain reference file {safe_gain_path} was not successfully transferred to {safe_visit_path}/processing" |
296 | 293 | ) |
|
0 commit comments