From 460de33d233d03af947efffcbdb803d3c763ba3c Mon Sep 17 00:00:00 2001 From: Adam Ruzicka Date: Thu, 14 May 2026 13:53:45 +0200 Subject: [PATCH] Fixes #39322 - Extend valid controller list instead of directly overriding it to allow other plugins to extend it as well --- .../bookmark_controller_validator_extensions.rb | 10 ++++++---- ...okmark_controller_validator_extensions_test.rb | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 test/lib/validators/bookmark_controller_validator_extensions_test.rb diff --git a/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb b/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb index 545c6030525..76d044853c0 100644 --- a/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb +++ b/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb @@ -1,12 +1,14 @@ module Katello module Concerns module BookmarkControllerValidatorExtensions - extend ActiveSupport::Concern + KATELLO_CONTROLLERS = %w[ + /katello/api/v2/host_bootc_images + /katello/api/v2/flatpak_remotes + /katello/api/v2/flatpak_remote_repositories + ].freeze def valid_controllers_list - @valid_controllers_list ||= (["dashboard", "common_parameters", "/katello/api/v2/host_bootc_images", "/katello/api/v2/flatpak_remotes", "/katello/api/v2/flatpak_remote_repositories"] + - ActiveRecord::Base.connection.tables.map(&:to_s) + - Permission.resources.map(&:tableize)).uniq + super + KATELLO_CONTROLLERS end end end diff --git a/test/lib/validators/bookmark_controller_validator_extensions_test.rb b/test/lib/validators/bookmark_controller_validator_extensions_test.rb new file mode 100644 index 00000000000..9751913c80d --- /dev/null +++ b/test/lib/validators/bookmark_controller_validator_extensions_test.rb @@ -0,0 +1,15 @@ +require 'katello_test_helper' + +module Katello + class BookmarkControllerValidatorExtensionsTest < ActiveSupport::TestCase + Katello::Concerns::BookmarkControllerValidatorExtensions::KATELLO_CONTROLLERS.each do |controller| + test "#{controller} should be a valid bookmark controller" do + bookmark = FactoryBot.build_stubbed(:bookmark, :name => "#{controller} bookmark", + :controller => controller, + :query => 'search query', + :public => true) + assert bookmark.valid?, "#{controller} should be a valid bookmark controller, errors: #{bookmark.errors.full_messages}" + end + end + end +end