From f3a7ebe86cb8b8d502114be2883d95b5055d7917 Mon Sep 17 00:00:00 2001 From: Oleg Zharkov Date: Wed, 5 Aug 2020 16:42:35 +0200 Subject: [PATCH 1/3] allow numbers as filenames while adding datasets to library fodler --- lib/galaxy/webapps/galaxy/api/library_datasets.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/galaxy/webapps/galaxy/api/library_datasets.py b/lib/galaxy/webapps/galaxy/api/library_datasets.py index 7e1a8a4b38f..789cbad0d9d 100644 --- a/lib/galaxy/webapps/galaxy/api/library_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/library_datasets.py @@ -397,6 +397,8 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra if path is None: raise exceptions.RequestParameterMissingException('The required attribute path is missing.') folder = self.folder_manager.get(trans, folder_id) + if isinstance(path, int): + path = str(path) source = kwd.get('source', None) if source not in ['userdir_file', 'userdir_folder', 'importdir_file', 'importdir_folder', 'admin_path']: From d87cedb43bc7f64e688ee134e764135bb4219fd1 Mon Sep 17 00:00:00 2001 From: Oleg Zharkov Date: Tue, 11 Aug 2020 16:49:16 +0200 Subject: [PATCH 2/3] force client to use quotes in path attribute FormData --- client/src/mvc/library/library-foldertoolbar-view.js | 3 ++- lib/galaxy/webapps/galaxy/api/library_datasets.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/client/src/mvc/library/library-foldertoolbar-view.js b/client/src/mvc/library/library-foldertoolbar-view.js index 3955e91c03f..2f0f2390dac 100644 --- a/client/src/mvc/library/library-foldertoolbar-view.js +++ b/client/src/mvc/library/library-foldertoolbar-view.js @@ -666,7 +666,8 @@ var FolderToolbarView = Backbone.View.extend({ this.modal.disableButton("Import"); for (let i = selected_nodes.length - 1; i >= 0; i--) { if (selected_nodes[i].li_attr.full_path !== undefined) { - paths.push(selected_nodes[i].li_attr.full_path); + // should be always String + paths.push(`"${selected_nodes[i].li_attr.full_path}"`); } } this.initChainCallControl({ diff --git a/lib/galaxy/webapps/galaxy/api/library_datasets.py b/lib/galaxy/webapps/galaxy/api/library_datasets.py index 789cbad0d9d..5ba4c6dcfc1 100644 --- a/lib/galaxy/webapps/galaxy/api/library_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/library_datasets.py @@ -396,9 +396,10 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra path = kwd.get('path', None) if path is None: raise exceptions.RequestParameterMissingException('The required attribute path is missing.') - folder = self.folder_manager.get(trans, folder_id) if isinstance(path, int): - path = str(path) + raise exceptions.RequestParameterInvalidException('The required attribute path is Integer.') + + folder = self.folder_manager.get(trans, folder_id) source = kwd.get('source', None) if source not in ['userdir_file', 'userdir_folder', 'importdir_file', 'importdir_folder', 'admin_path']: From 8aba9e2d54f469e8fedbef9dba3f789eb7efc02c Mon Sep 17 00:00:00 2001 From: Oleg Zharkov Date: Tue, 11 Aug 2020 16:53:47 +0200 Subject: [PATCH 3/3] check if parameter is not a string --- lib/galaxy/webapps/galaxy/api/library_datasets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/library_datasets.py b/lib/galaxy/webapps/galaxy/api/library_datasets.py index 5ba4c6dcfc1..35c5d45f715 100644 --- a/lib/galaxy/webapps/galaxy/api/library_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/library_datasets.py @@ -396,8 +396,8 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra path = kwd.get('path', None) if path is None: raise exceptions.RequestParameterMissingException('The required attribute path is missing.') - if isinstance(path, int): - raise exceptions.RequestParameterInvalidException('The required attribute path is Integer.') + if not isinstance(path, str): + raise exceptions.RequestParameterInvalidException('The required attribute path is not String.') folder = self.folder_manager.get(trans, folder_id)