From d796a2c2a37019783ad89f5f7c97787e43a25392 Mon Sep 17 00:00:00 2001 From: Henne Vogelsang Date: Tue, 5 Dec 2023 17:14:43 +0100 Subject: [PATCH] Introduces Configuration.proxy_auth_mode_enabled? To retire the various implementations around the code base. --- src/api/app/controllers/person_controller.rb | 2 +- src/api/app/helpers/authentication_protocol_helper.rb | 10 +++------- src/api/app/helpers/webui/webui_helper.rb | 2 +- src/api/app/lib/authenticator.rb | 6 +----- src/api/app/models/configuration.rb | 4 ++++ src/api/app/views/layouts/webui/_login_form.html.haml | 2 +- .../app/views/layouts/webui/_top_navigation.html.haml | 2 +- src/api/app/views/webui/session/_form.html.haml | 2 +- 8 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/api/app/controllers/person_controller.rb b/src/api/app/controllers/person_controller.rb index a4766ac6b32..843c689e59b 100644 --- a/src/api/app/controllers/person_controller.rb +++ b/src/api/app/controllers/person_controller.rb @@ -202,7 +202,7 @@ def internal_register note = xml.elements['/unregisteredperson/note'].text if xml.elements['/unregisteredperson/note'] status = xml.elements['/unregisteredperson/state'].text if xml.elements['/unregisteredperson/status'] - if authenticator.proxy_mode? + if ::Configuration.proxy_auth_mode_enabled? raise ErrRegisterSave, 'Missing iChain header' if request.env['HTTP_X_USERNAME'].blank? login = request.env['HTTP_X_USERNAME'] diff --git a/src/api/app/helpers/authentication_protocol_helper.rb b/src/api/app/helpers/authentication_protocol_helper.rb index 8c47e0c5ba6..85ad6575c64 100644 --- a/src/api/app/helpers/authentication_protocol_helper.rb +++ b/src/api/app/helpers/authentication_protocol_helper.rb @@ -3,12 +3,8 @@ def kerberos_mode? CONFIG['kerberos_mode'] end - def proxy_mode? - CONFIG['proxy_auth_mode'] == :on - end - def can_sign_up? - return CONFIG['proxy_auth_register_page'].present? if proxy_mode? + return CONFIG['proxy_auth_register_page'].present? if ::Configuration.proxy_auth_mode_enabled? can_register? end @@ -26,7 +22,7 @@ def can_register? end def log_in_params - if proxy_mode? + if ::Configuration.proxy_auth_mode_enabled? { url: CONFIG['proxy_auth_login_page'], options: { method: :post, enctype: 'application/x-www-form-urlencoded' } } else { url: session_path, options: { method: :post } } @@ -34,7 +30,7 @@ def log_in_params end def sign_up_params - return { url: CONFIG['proxy_auth_register_page'] } if proxy_mode? + return { url: CONFIG['proxy_auth_register_page'] } if ::Configuration.proxy_auth_mode_enabled? { url: signup_path } end diff --git a/src/api/app/helpers/webui/webui_helper.rb b/src/api/app/helpers/webui/webui_helper.rb index 9fd200f229e..ed535bfc274 100644 --- a/src/api/app/helpers/webui/webui_helper.rb +++ b/src/api/app/helpers/webui/webui_helper.rb @@ -280,7 +280,7 @@ def feature_css_class def sign_up_link(css_class: nil) return unless can_sign_up? - if proxy_mode? + if ::Configuration.proxy_auth_mode_enabled? link_to(sign_up_params[:url], class: css_class) do link_content('Sign Up', css_class, 'fa-user-plus') end diff --git a/src/api/app/lib/authenticator.rb b/src/api/app/lib/authenticator.rb index d59b504fb44..adb8cf6c460 100644 --- a/src/api/app/lib/authenticator.rb +++ b/src/api/app/lib/authenticator.rb @@ -36,12 +36,8 @@ def initialize(request, session, response) @user_permissions = nil end - def proxy_mode? - CONFIG['proxy_auth_mode'] == :on || CONFIG['ichain_mode'] == :on - end - def extract_user - if proxy_mode? + if ::Configuration.proxy_auth_mode_enabled? extract_proxy_user else extract_auth_user diff --git a/src/api/app/models/configuration.rb b/src/api/app/models/configuration.rb index 875e2e2eb32..32703ee584e 100644 --- a/src/api/app/models/configuration.rb +++ b/src/api/app/models/configuration.rb @@ -85,6 +85,10 @@ def ldap_enabled? CONFIG['ldap_mode'] == :on end + def proxy_auth_mode_enabled? + CONFIG['proxy_auth_mode'] == :on || CONFIG['ichain_mode'] == :on + end + def amqp_namespace CONFIG['amqp_namespace'] || 'opensuse.obs' end diff --git a/src/api/app/views/layouts/webui/_login_form.html.haml b/src/api/app/views/layouts/webui/_login_form.html.haml index 5f503286bbd..9b61cdf8e91 100644 --- a/src/api/app/views/layouts/webui/_login_form.html.haml +++ b/src/api/app/views/layouts/webui/_login_form.html.haml @@ -1,6 +1,6 @@ .h2.text-center.py-2 Log In = form_tag(log_in_params[:url], log_in_params[:options]) do - - if proxy_mode? + - if ::Configuration.proxy_auth_mode_enabled? = hidden_field_tag(:context, 'default') = hidden_field_tag(:proxypath, 'reserve') = hidden_field_tag(:message, 'Please log in') diff --git a/src/api/app/views/layouts/webui/_top_navigation.html.haml b/src/api/app/views/layouts/webui/_top_navigation.html.haml index d5765354c61..eb030eedb82 100644 --- a/src/api/app/views/layouts/webui/_top_navigation.html.haml +++ b/src/api/app/views/layouts/webui/_top_navigation.html.haml @@ -29,6 +29,6 @@ = render partial: 'layouts/webui/top_navigation_nobody' - if User.possibly_nobody.is_nobody? && !kerberos_mode? - - if !proxy_mode? && can_sign_up? + - if !::Configuration.proxy_auth_mode_enabled? && can_sign_up? = render partial: 'layouts/webui/sign_up_modal' = render partial: 'layouts/webui/login_modal' diff --git a/src/api/app/views/webui/session/_form.html.haml b/src/api/app/views/webui/session/_form.html.haml index 7ecf30742e8..4237e6a4aae 100644 --- a/src/api/app/views/webui/session/_form.html.haml +++ b/src/api/app/views/webui/session/_form.html.haml @@ -2,7 +2,7 @@ - button_css ||= '' = form_tag(log_in_params[:url], log_in_params[:options]) do - - if proxy_mode? + - if ::Configuration.proxy_auth_mode_enabled? = hidden_field_tag(:context, 'default') = hidden_field_tag(:proxypath, 'reserve') = hidden_field_tag(:message, 'Please log in')