From d5b706839475b273bce349af2d9a2f75d4d66315 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Thu, 28 Aug 2025 15:05:37 +0530 Subject: [PATCH] refactor: cleaner saml check --- .../devise_overrides/omniauth_callbacks_controller.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/devise_overrides/omniauth_callbacks_controller.rb b/app/controllers/devise_overrides/omniauth_callbacks_controller.rb index 62a19d220..fa6ae8b9c 100644 --- a/app/controllers/devise_overrides/omniauth_callbacks_controller.rb +++ b/app/controllers/devise_overrides/omniauth_callbacks_controller.rb @@ -41,10 +41,7 @@ class DeviseOverrides::OmniauthCallbacksController < DeviseTokenAuth::OmniauthCa return redirect_to login_page_url(error: 'saml-not-available'), allow_other_host: true unless ChatwootApp.enterprise? account_id = extract_saml_account_id - account = Account.find_by(id: account_id) if account_id - - return redirect_to login_page_url(error: 'saml-not-enabled'), allow_other_host: true if account && !account.feature_enabled?('saml') - return redirect_to login_page_url(error: 'saml-not-enabled'), allow_other_host: true if account_id && !saml_enabled_for_account?(account_id) + return redirect_to login_page_url(error: 'saml-not-enabled'), allow_other_host: true unless saml_enabled_for_account?(account_id) @resource = SamlUserBuilder.new(auth_hash, account_id: account_id).perform @@ -66,6 +63,10 @@ class DeviseOverrides::OmniauthCallbacksController < DeviseTokenAuth::OmniauthCa def saml_enabled_for_account?(account_id) return false unless ChatwootApp.enterprise? + return false if account_id.blank? + + account = Account.find_by(id: account_id) + return false unless account.feature_enabled?('saml') AccountSamlSettings.find_by(account_id: account_id, enabled: true).present? end