From 6d0900fccab859fbbd8d8aed58044f4559de3e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guitaut?= Date: Thu, 27 Jun 2024 15:39:21 +0200 Subject: [PATCH] FIX: Add Rails 7+ compatibility When redirecting to an external URL with Rails 7+, the `allow_other_host` option is needed. --- .../salesforce/admin_controller.rb | 3 ++- spec/requests/admin_controller_spec.rb | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 spec/requests/admin_controller_spec.rb diff --git a/app/controllers/salesforce/admin_controller.rb b/app/controllers/salesforce/admin_controller.rb index b718b51..ade4353 100644 --- a/app/controllers/salesforce/admin_controller.rb +++ b/app/controllers/salesforce/admin_controller.rb @@ -7,7 +7,8 @@ class AdminController < ::Admin::AdminController skip_before_action :check_xhr, :preload_json def authorize - redirect_to "#{SiteSetting.salesforce_authorization_server_url}/services/oauth2/authorize?client_id=#{SiteSetting.salesforce_client_id}&redirect_uri=#{Discourse.base_url}&response_type=code" + redirect_to "#{SiteSetting.salesforce_authorization_server_url}/services/oauth2/authorize?client_id=#{SiteSetting.salesforce_client_id}&redirect_uri=#{Discourse.base_url}&response_type=code", + allow_other_host: true end end end diff --git a/spec/requests/admin_controller_spec.rb b/spec/requests/admin_controller_spec.rb new file mode 100644 index 0000000..0e5de79 --- /dev/null +++ b/spec/requests/admin_controller_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require "rails_helper" +require_relative "../spec_helper" + +RSpec.describe ::Salesforce::AdminController do + include_context "with salesforce spec helper" + + fab!(:admin) + + describe "#authorize" do + before { sign_in(admin) } + + it "redirects to the Salesforce authorization server" do + get "/salesforce/admin/authorize" + expect(response).to redirect_to( + "https://login.salesforce.com/services/oauth2/authorize?client_id=SALESFORCE_CLIENT_ID&redirect_uri=#{Discourse.base_url}&response_type=code", + ) + end + end +end