AIRAVATA-3580 /api/experiment-storage: encodes experiment id but not 'path'
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/service_config.js b/django_airavata/apps/api/static/django_airavata_api/js/service_config.js
index 812df78..86c6006 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/service_config.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/service_config.js
@@ -233,7 +233,8 @@
url: "/api/experiment-storage/<experimentId>/<path>",
requestType: "get",
modelClass: ExperimentStoragePath,
- encodePathParams: true,
+ // NOTE: caller needs to explicitly escape experimentId, but path shouldn't be escaped
+ encodePathParams: false,
},
},
},
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue
index de45de6..a420c1c 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue
@@ -60,7 +60,9 @@
loadExperimentStoragePath(path) {
return services.ExperimentStoragePathService.get(
{
- experimentId: this.experimentId,
+ // ExperimentStoragePathService doesn't encode path parameters so must
+ // explicitly encode experiment id
+ experimentId: encodeURIComponent(this.experimentId),
path,
},
{ ignoreErrors: true }