{"record":{"id":"585c9472992aecba","repo":"theforeman/foreman","slug":"global-setting-name-is-not-accessible-in-safe-m","errorCode":null,"errorMessage":"Global setting %{name} is not accessible in safe-mode","messagePattern":"Global setting %(.+?) is not accessible in safe-mode","errorType":"exception","errorClass":"FilteredGlobalSettingAccessed","httpStatus":null,"severity":"error","filePath":"app/services/foreman/renderer/scope/macros/base.rb","lineNumber":43,"sourceCode":"            returns one_of: [true, false]\n            raises error: WrongSubnetError, desc: 'when user passes non-subnet object as __subnet__ parameter'\n          end\n          def subnet_has_param?(subnet, param_name)\n            validate_subnet(subnet)\n            subnet.parameters.exists?(name: param_name)\n          end\n\n          apipie :method, 'Returns the value of global setting' do\n            settings = Foreman::Renderer.config.allowed_global_settings.sort.map { |s| \"__#{s}__\" }.join(', ')\n            desc \"Not not all settings are exposed, only those which are allowed via safe mode: #{settings}\"\n            required :name, String, desc: 'the name of the setting which can be found by hovering the setting with mouse cursor in the UI, or via API/CLI'\n            optional :blank_default, Object, desc: 'if the setting is not set to any value, this value will be returned instead', default: nil\n            raises error: FilteredGlobalSettingAccessed, desc: 'when user setting is not accessible in safe mode'\n            returns Object, desc: 'The value of global setting, e.g. String, Integer, Array, Provisioning Template etc'\n            example \"global_setting('outofsync_interval', 30) # => 30\"\n          end\n          def global_setting(name, blank_default = nil)\n            raise FilteredGlobalSettingAccessed.new(name: name) if Setting[:safemode_render] && !Foreman::Renderer.config.allowed_global_settings.include?(name.to_sym)\n            setting = Foreman.settings.find(name)\n            (setting.settings_type != \"boolean\" && setting.value.blank?) ? blank_default : setting.value\n          end\n\n          apipie :method, 'Returns true if plugin with a given name is installed in this Foreman instance' do\n            required :name, String, desc: 'The name of the plugin'\n            returns one_of: [true, false]\n            example \"plugin_present?('foreman_ansible') # => true\"\n            example \"plugin_present?('foreman_virt_who_configure') # => false\"\n          end\n          def plugin_present?(name)\n            Foreman::Plugin.find(name).present?\n          end\n\n          apipie :method, 'Returns the value of parameter set on subnet' do\n            required :name, 'Subnet', desc: 'the subnet to load the parameter from'\n            required :param_name, String, desc: 'the name of the subnet parameter'\n            returns one_of: [nil, Object], desc: 'The value of the parameter, type of the value is determined by the parameter type. If the parameter with a given name is undefined for a subnet, nil is returned'","sourceCodeStart":25,"sourceCodeEnd":61,"githubUrl":"https://github.com/theforeman/foreman/blob/6b05625475cfe6aac31a88f8c8ee6e62e4efe620/app/services/foreman/renderer/scope/macros/base.rb#L25-L61","documentation":"Error \"Global setting %{name} is not accessible in safe-mode\" thrown in theforeman/foreman.","triggerScenarios":"Thrown at app/services/foreman/renderer/scope/macros/base.rb:43 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6b05625475cfe6aac31a88f8c8ee6e62e4efe620","analyzedAt":"2026-08-23T17:46:34.094Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}