From c1ca8e4829335fc7d1eeff73ce33ba3c3da8b162 Mon Sep 17 00:00:00 2001 From: Aday BA Date: Tue, 21 Nov 2023 13:54:43 +0000 Subject: [PATCH] Added default_profile setting to allow admins to select the default profile for users (#3200) --- apps/dashboard/app/models/user_configuration.rb | 2 ++ apps/dashboard/config/configuration_singleton.rb | 3 ++- .../test/fixtures/config/ondemand.d/string.yml | 3 ++- apps/dashboard/test/models/user_configuration_test.rb | 11 ++++++++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/dashboard/app/models/user_configuration.rb b/apps/dashboard/app/models/user_configuration.rb index 7f243ecbc6..df0da299be 100644 --- a/apps/dashboard/app/models/user_configuration.rb +++ b/apps/dashboard/app/models/user_configuration.rb @@ -148,6 +148,8 @@ def profile request_hostname elsif user_settings[:profile] user_settings[:profile].to_sym + elsif Configuration.default_profile + Configuration.default_profile.to_sym end end diff --git a/apps/dashboard/config/configuration_singleton.rb b/apps/dashboard/config/configuration_singleton.rb index b791c86986..c2671a3a0b 100644 --- a/apps/dashboard/config/configuration_singleton.rb +++ b/apps/dashboard/config/configuration_singleton.rb @@ -66,7 +66,8 @@ def string_configs :bc_clean_old_dirs_days => '30', :google_analytics_tag_id => nil, :project_template_dir => "#{config_root}/projects", - :rclone_extra_config => nil + :rclone_extra_config => nil, + :default_profile => nil }.freeze end diff --git a/apps/dashboard/test/fixtures/config/ondemand.d/string.yml b/apps/dashboard/test/fixtures/config/ondemand.d/string.yml index b2e4184582..cd53dd991e 100644 --- a/apps/dashboard/test/fixtures/config/ondemand.d/string.yml +++ b/apps/dashboard/test/fixtures/config/ondemand.d/string.yml @@ -5,4 +5,5 @@ auto_groups_filter: 'string from file' bc_clean_old_dirs_days: 'string from file' google_analytics_tag_id: 'string from file' project_template_dir: 'string from file' -rclone_extra_config: 'string from file' \ No newline at end of file +rclone_extra_config: 'string from file' +default_profile: 'string from file' \ No newline at end of file diff --git a/apps/dashboard/test/models/user_configuration_test.rb b/apps/dashboard/test/models/user_configuration_test.rb index d55e9c65b7..a7b9fc90e9 100644 --- a/apps/dashboard/test/models/user_configuration_test.rb +++ b/apps/dashboard/test/models/user_configuration_test.rb @@ -214,7 +214,16 @@ def teardown assert_equal :user_settings_profile_value, target.profile end - test "profile should return nil when when Configuration.host_based_profiles is false and user profile is nil" do + test "profile should return default_profile when when Configuration.host_based_profiles is false and user profile is nil" do + Configuration.stubs(:host_based_profiles).returns(false) + Configuration.stubs(:default_profile).returns('myprofile') + target = UserConfiguration.new + target.update_user_settings({profile: nil}) + + assert_equal :myprofile, target.profile + end + + test "profile should return nil when when Configuration.host_based_profiles is false, user profile is nil, and default_profile not set" do Configuration.stubs(:host_based_profiles).returns(false) target = UserConfiguration.new target.update_user_settings({profile: nil})