From 2a9e89e3be5e598f6dccb07eb10a51b024c51b50 Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Mon, 7 Oct 2024 15:30:50 +0200 Subject: [PATCH] Prepare for zeitwerk --- lib/foreman_wds/engine.rb | 62 ++----------------------------------- lib/foreman_wds/register.rb | 42 +++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 59 deletions(-) create mode 100644 lib/foreman_wds/register.rb diff --git a/lib/foreman_wds/engine.rb b/lib/foreman_wds/engine.rb index 4bbedc7..e7499ec 100644 --- a/lib/foreman_wds/engine.rb +++ b/lib/foreman_wds/engine.rb @@ -15,66 +15,10 @@ module ForemanWds end end - initializer 'foreman_wds.register_plugin', before: :finisher_hook do |_app| - Foreman::Plugin.register :foreman_wds do - requires_foreman '>= 1.16' - - security_block :foreman_wds do - permission :view_wds_servers, { - wds_servers: %i[index show auto_complete_search wds_clients wds_images] - }, resource_type: 'WdsServer' - permission :create_wds_servers, { - wds_servers: %i[create new] - }, resource_type: 'WdsServer' - permission :edit_wds_servers, { - wds_servers: %i[edit update test_connection refresh_cache delete_wds_client] - }, resource_type: 'WdsServer' - permission :destroy_wds_servers, { - wds_servers: %i[destroy] - }, resource_type: 'WdsServer' - - # permission :edit_hosts, { - # hosts: %i[wds_server_selected wds_image_selected] - # }, resource_type: 'Host' - end - - Foreman::AccessControl.permission(:edit_hosts).actions.push( - 'hosts/wds_server_selected', 'hosts/wds_image_selected' - ) - - role 'WDS Server Manager', - %i[view_wds_servers create_wds_servers edit_wds_servers destroy_wds_servers], - 'Role granting permissions full management permissions for WDS servers.' - - add_all_permissions_to_default_roles - - # add menu entry - menu :top_menu, :wds_servers, - url_hash: { controller: :wds_servers, action: :index }, - caption: N_('WDS Servers'), - parent: :infrastructure_menu - - register_facet ForemanWds::WdsFacet, :wds_facet - parameter_filter Host::Managed, wds_facet_attributes: %i[wds_server_id boot_image_name install_image_name] - - provision_method 'wds', N_('WDS Server') - template_labels 'wds_unattend' => N_('WDS Unattend file template') - end - end - - assets_to_precompile = - Dir.chdir(root) do - Dir['app/assets/javascripts/**/*'].map do |f| - f.split(File::SEPARATOR, 4).last - end + initializer 'foreman_wds.register_plugin', before: :finisher_hook do |app| + app.reloader.to_prepare do + require_relative 'register' end - - initializer 'foreman_wds.assets.precompile' do |app| - app.config.assets.precompile += assets_to_precompile - end - - initializer 'foreman_wds.configure_assets', group: :assets do - SETTINGS[:foreman_wds] = { assets: { precompile: assets_to_precompile } } end config.to_prepare do diff --git a/lib/foreman_wds/register.rb b/lib/foreman_wds/register.rb new file mode 100644 index 0000000..9840191 --- /dev/null +++ b/lib/foreman_wds/register.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +Foreman::Plugin.register :foreman_wds do + requires_foreman '>= 3.12' + + security_block :foreman_wds do + permission :view_wds_servers, { + wds_servers: %i[index show auto_complete_search wds_clients wds_images] + }, resource_type: 'WdsServer' + permission :create_wds_servers, { + wds_servers: %i[create new] + }, resource_type: 'WdsServer' + permission :edit_wds_servers, { + wds_servers: %i[edit update test_connection refresh_cache delete_wds_client] + }, resource_type: 'WdsServer' + permission :destroy_wds_servers, { + wds_servers: %i[destroy] + }, resource_type: 'WdsServer' + end + + Foreman::AccessControl.permission(:edit_hosts).actions.push( + 'hosts/wds_server_selected', 'hosts/wds_image_selected' + ) + + role 'WDS Server Manager', + %i[view_wds_servers create_wds_servers edit_wds_servers destroy_wds_servers], + 'Role granting permissions full management permissions for WDS servers.' + + add_all_permissions_to_default_roles + + # add menu entry + menu :top_menu, :wds_servers, + url_hash: { controller: :wds_servers, action: :index }, + caption: N_('WDS Servers'), + parent: :infrastructure_menu + + register_facet ForemanWds::WdsFacet, :wds_facet + parameter_filter Host::Managed, wds_facet_attributes: %i[wds_server_id boot_image_name install_image_name] + + provision_method 'wds', N_('WDS Server') + template_labels 'wds_unattend' => N_('WDS Unattend file template') +end -- GitLab