X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/59807e4ab334f7aec9772bf63f186974fba96821..a3db87c5a23f3a1e72ea82304d24db8c1757c095:/apps/workbench/app/controllers/collections_controller.rb diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb index 263f67f94e..e869824be4 100644 --- a/apps/workbench/app/controllers/collections_controller.rb +++ b/apps/workbench/app/controllers/collections_controller.rb @@ -145,9 +145,11 @@ class CollectionsController < ApplicationController usable_token = find_usable_token(tokens) do coll = Collection.find(params[:uuid]) end + + file_name = params[:file].andand.sub(/^(\.\/|\/|)/, './') if usable_token.nil? return # Response already rendered. - elsif params[:file].nil? or not coll.manifest.has_file?(params[:file]) + elsif file_name.nil? or not coll.manifest.has_file?(file_name) return render_not_found end @@ -205,7 +207,7 @@ class CollectionsController < ApplicationController return super if !@object if current_user if Keep::Locator.parse params["uuid"] - @same_pdh = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]]) + @same_pdh = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]]).limit(1000) if @same_pdh.results.size == 1 redirect_to collection_path(@same_pdh[0]["uuid"]) return