From e04d4196532755dda73cdeb969f78ebff62746e3 Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Tue, 29 Oct 2024 11:48:37 +0100 Subject: [PATCH] Assign action permission correctly for discovery --- .../discovered_hosts_controller_extensions.rb | 11 +++++++++++ .../foreman_wds/hosts_controller_extensions.rb | 2 +- lib/foreman_wds/engine.rb | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 app/controllers/concerns/foreman_wds/discovered_hosts_controller_extensions.rb diff --git a/app/controllers/concerns/foreman_wds/discovered_hosts_controller_extensions.rb b/app/controllers/concerns/foreman_wds/discovered_hosts_controller_extensions.rb new file mode 100644 index 0000000..61ddb46 --- /dev/null +++ b/app/controllers/concerns/foreman_wds/discovered_hosts_controller_extensions.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module ForemanWds + module DiscoveredHostsControllerExtensions + def action_permission + return :edit if params[:action] == 'wds_server_selected' + + super + end + end +end diff --git a/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb b/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb index 9ddf276..b2af16f 100644 --- a/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb +++ b/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb @@ -7,7 +7,7 @@ module ForemanWds included do before_action :cleanup_wds_params - define_action_permission %w[wds_server_selected], :edit + define_action_permission %w[wds_server_selected], :edit if respond_to? :define_action_permission end def wds_server_selected diff --git a/lib/foreman_wds/engine.rb b/lib/foreman_wds/engine.rb index e7499ec..336c942 100644 --- a/lib/foreman_wds/engine.rb +++ b/lib/foreman_wds/engine.rb @@ -33,6 +33,7 @@ module ForemanWds if Foreman::Plugin.installed?('foreman_discovery') DiscoveredHostsController.include ForemanWds::HostsControllerExtensions + DiscoveredHostsController.prepend ForemanWds::DiscoveredHostsControllerExtensions end rescue StandardError => e Rails.logger.fatal "foreman_wds: skipping engine hook (#{e})" -- GitLab