diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb index 78c16237048..78fd13c8ebf 100644 --- a/app/controllers/uploads_controller.rb +++ b/app/controllers/uploads_controller.rb @@ -6,6 +6,7 @@ class UploadsController < ApplicationController requires_login except: [:show, :show_short] skip_before_action :preload_json, :check_xhr, :redirect_to_login_if_required, only: [:show, :show_short] + protect_from_forgery except: :show def create # capture current user for block later on diff --git a/spec/fixtures/themes/test.js b/spec/fixtures/themes/test.js new file mode 100644 index 00000000000..14c198cadb6 --- /dev/null +++ b/spec/fixtures/themes/test.js @@ -0,0 +1 @@ +console.log("test"); diff --git a/spec/requests/uploads_controller_spec.rb b/spec/requests/uploads_controller_spec.rb index d779898e5f1..cb738c73ea8 100644 --- a/spec/requests/uploads_controller_spec.rb +++ b/spec/requests/uploads_controller_spec.rb @@ -265,6 +265,13 @@ describe UploadsController do .to eq(%Q|attachment; filename="logo.png"; filename*=UTF-8''logo.png|) end + it 'returns 200 when js file' do + ActionDispatch::FileHandler.any_instance.stubs(:match?).returns(false) + upload = upload_file("test.js", "themes") + get upload.url + expect(response.status).to eq(200) + end + it "handles image without extension" do SiteSetting.authorized_extensions = "*" upload = upload_file("image_no_extension")