foreman_openscap 1.0.10 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/controllers/api/v2/compliance/arf_reports_controller.rb +11 -3
- data/app/controllers/api/v2/compliance/policies_controller.rb +2 -9
- data/app/controllers/api/v2/compliance/scap_content_profiles_controller.rb +15 -0
- data/app/controllers/api/v2/compliance/scap_contents_controller.rb +2 -8
- data/app/controllers/api/v2/compliance/tailoring_files_controller.rb +2 -8
- data/app/controllers/concerns/foreman_openscap/api/v2/scap_api_controller_extensions.rb +9 -0
- data/app/controllers/policies_controller.rb +1 -1
- data/app/helpers/compliance_hosts_helper.rb +23 -0
- data/app/helpers/concerns/foreman_openscap/hosts_helper_extensions.rb +0 -6
- data/app/models/concerns/foreman_openscap/host_extensions.rb +1 -1
- data/app/models/concerns/foreman_openscap/smart_proxy_extensions.rb +1 -1
- data/app/models/foreman_openscap/policy.rb +12 -0
- data/app/models/foreman_openscap/scap_content_profile.rb +3 -0
- data/app/services/foreman_openscap/lookup_key_overrider.rb +3 -2
- data/app/views/api/v2/compliance/scap_content_profiles/base.json.rabl +3 -0
- data/app/views/api/v2/compliance/scap_content_profiles/index.json.rabl +3 -0
- data/app/views/api/v2/compliance/scap_content_profiles/main.json.rabl +9 -0
- data/app/views/arf_reports/_list.html.erb +1 -1
- data/app/views/arf_reports/welcome.html.erb +2 -0
- data/app/views/hosts/select_multiple_openscap_proxy.html.erb +1 -1
- data/app/views/policies/disassociate_multiple_hosts.html.erb +1 -1
- data/app/views/policies/select_multiple_hosts.html.erb +1 -1
- data/config/routes.rb +2 -0
- data/db/migrate/20150929152345_move_arf_reports_to_reports_table.rb +0 -2
- data/db/migrate/20200117135424_migrate_port_overrides_to_int.rb +24 -0
- data/lib/foreman_openscap/engine.rb +15 -10
- data/lib/foreman_openscap/helper.rb +1 -1
- data/lib/foreman_openscap/version.rb +1 -1
- data/locale/action_names.rb +1 -1
- data/locale/de/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/de/foreman_openscap.po +244 -241
- data/locale/en_GB/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/en_GB/foreman_openscap.po +38 -38
- data/locale/es/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/es/foreman_openscap.po +285 -283
- data/locale/foreman_openscap.pot +119 -120
- data/locale/fr/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/fr/foreman_openscap.po +292 -284
- data/locale/gl/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/gl/foreman_openscap.po +49 -49
- data/locale/it/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/it/foreman_openscap.po +74 -73
- data/locale/ja/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/ja/foreman_openscap.po +284 -282
- data/locale/ko/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/ko/foreman_openscap.po +155 -155
- data/locale/pt_BR/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/pt_BR/foreman_openscap.po +287 -280
- data/locale/ru/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/ru/foreman_openscap.po +163 -160
- data/locale/sv_SE/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/sv_SE/foreman_openscap.po +49 -49
- data/locale/zh_CN/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/zh_CN/foreman_openscap.po +284 -281
- data/locale/zh_TW/LC_MESSAGES/foreman_openscap.mo +0 -0
- data/locale/zh_TW/foreman_openscap.po +151 -150
- data/test/functional/api/v2/compliance/arf_reports_controller_test.rb +0 -3
- data/test/functional/api/v2/compliance/scap_content_profiles_controller_test.rb +15 -0
- data/test/test_plugin_helper.rb +2 -2
- data/test/unit/concerns/host_extensions_test.rb +7 -0
- data/test/unit/policy_test.rb +19 -0
- metadata +24 -32
- data/app/overrides/hosts/overview/host_compliance_status.rb +0 -4
- data/app/views/compliance_hosts/_compliance_status.erb +0 -6
- data/locale/de/foreman_openscap.edit.po +0 -0
- data/locale/en_GB/foreman_openscap.edit.po +0 -0
- data/locale/es/foreman_openscap.edit.po +0 -0
- data/locale/fr/foreman_openscap.edit.po +0 -0
- data/locale/gl/foreman_openscap.edit.po +0 -0
- data/locale/it/foreman_openscap.edit.po +0 -0
- data/locale/ja/foreman_openscap.edit.po +0 -0
- data/locale/ko/foreman_openscap.edit.po +0 -0
- data/locale/pt_BR/foreman_openscap.edit.po +0 -0
- data/locale/ru/foreman_openscap.edit.po +0 -0
- data/locale/sv_SE/foreman_openscap.edit.po +0 -0
- data/locale/zh_CN/foreman_openscap.edit.po +0 -0
- data/locale/zh_TW/foreman_openscap.edit.po +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c9022cadb1e56bd7bf36523d096543e50bcadb360327e0f930d00a8308774203
|
4
|
+
data.tar.gz: a1cf2ae2a6bfd3dd77de305ea65312e07ca51ec61ceed96c625e48a170306183
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43d354207d9200b8d230312cd6259ff76b27ee75a87bcace113df7b323fad7bc4be4012ea15fd1aa1134fc91e9fff6aa93a2e07deeef2acd4f358e4cd031b63c
|
7
|
+
data.tar.gz: fda20c152e9bf85fc7a42d85e1d8472386ea8b1fa9fc516373f144019c39cd797db4b49f60312165b154e4c59f63cf948ae7cb364990c020687a28020434b12c
|
@@ -90,12 +90,14 @@ module Api
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def find_resources_before_create
|
93
|
-
|
94
|
-
|
93
|
+
policy_id = params[:policy_id].to_i
|
94
|
+
|
95
|
+
unless ForemanOpenscap::Policy.where(:id => policy_id).any?
|
96
|
+
upload_fail(_("Policy with id %s not found.") % policy_id)
|
95
97
|
return
|
96
98
|
end
|
97
99
|
|
98
|
-
@asset = ForemanOpenscap::Helper::get_asset(params[:cname],
|
100
|
+
@asset = ForemanOpenscap::Helper::get_asset(params[:cname], policy_id)
|
99
101
|
|
100
102
|
unless @asset
|
101
103
|
upload_fail(_('Could not find host identified by: %s') % params[:cname])
|
@@ -138,6 +140,12 @@ module Api
|
|
138
140
|
super
|
139
141
|
end
|
140
142
|
end
|
143
|
+
|
144
|
+
protected
|
145
|
+
|
146
|
+
def assign_lone_taxonomies
|
147
|
+
# do not assign lone taxonomies to arf report
|
148
|
+
end
|
141
149
|
end
|
142
150
|
end
|
143
151
|
end
|
@@ -3,6 +3,7 @@ module Api::V2
|
|
3
3
|
class PoliciesController < ::Api::V2::BaseController
|
4
4
|
include Foreman::Controller::SmartProxyAuth
|
5
5
|
include Foreman::Controller::Parameters::PolicyApi
|
6
|
+
include ForemanOpenscap::Api::V2::ScapApiControllerExtensions
|
6
7
|
|
7
8
|
add_smart_proxy_filters %i[content tailoring], :features => 'Openscap'
|
8
9
|
|
@@ -10,14 +11,6 @@ module Api::V2
|
|
10
11
|
|
11
12
|
skip_after_action :log_response_body, :only => [:content]
|
12
13
|
|
13
|
-
def resource_name(resource = '::ForemanOpenscap::Policy')
|
14
|
-
super resource
|
15
|
-
end
|
16
|
-
|
17
|
-
def get_resource(message = 'no resource loaded')
|
18
|
-
instance_variable_get(:"@policy") || raise(message)
|
19
|
-
end
|
20
|
-
|
21
14
|
def policy_url(policy = nil)
|
22
15
|
api_compliance_policy_url(@policy)
|
23
16
|
end
|
@@ -69,7 +62,7 @@ module Api::V2
|
|
69
62
|
param_group :policy
|
70
63
|
|
71
64
|
def update
|
72
|
-
process_response
|
65
|
+
process_response(@policy.change_deploy_type(policy_params))
|
73
66
|
end
|
74
67
|
|
75
68
|
api :DELETE, '/compliance/policies/:id', N_('Delete a Policy')
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Api::V2
|
2
|
+
module Compliance
|
3
|
+
class ScapContentProfilesController < ::Api::V2::BaseController
|
4
|
+
include ForemanOpenscap::Api::V2::ScapApiControllerExtensions
|
5
|
+
|
6
|
+
api :GET, '/compliance/scap_content_profiles', N_('List SCAP content profiles')
|
7
|
+
param_group :search_and_pagination, ::Api::V2::BaseController
|
8
|
+
add_scoped_search_description_for(::ForemanOpenscap::ScapContentProfile)
|
9
|
+
|
10
|
+
def index
|
11
|
+
@scap_content_profiles = resource_scope_for_index(:permission => :view_scap_contents).includes(:scap_content, :tailoring_file)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -3,15 +3,9 @@ module Api::V2
|
|
3
3
|
class ScapContentsController < ::Api::V2::BaseController
|
4
4
|
include Foreman::Controller::Parameters::ScapContent
|
5
5
|
include ForemanOpenscap::BodyLogExtensions
|
6
|
-
|
7
|
-
|
8
|
-
def resource_name(resource = '::ForemanOpenscap::ScapContent')
|
9
|
-
super resource
|
10
|
-
end
|
6
|
+
include ForemanOpenscap::Api::V2::ScapApiControllerExtensions
|
11
7
|
|
12
|
-
|
13
|
-
instance_variable_get(:"@scap_content") || raise(message)
|
14
|
-
end
|
8
|
+
before_action :find_resource, :except => %w[index create]
|
15
9
|
|
16
10
|
api :GET, '/compliance/scap_contents', N_('List SCAP contents')
|
17
11
|
param_group :search_and_pagination, ::Api::V2::BaseController
|
@@ -3,17 +3,11 @@ module Api::V2
|
|
3
3
|
class TailoringFilesController < ::Api::V2::BaseController
|
4
4
|
include Foreman::Controller::Parameters::TailoringFile
|
5
5
|
include ForemanOpenscap::BodyLogExtensions
|
6
|
+
include ForemanOpenscap::Api::V2::ScapApiControllerExtensions
|
7
|
+
|
6
8
|
before_action :find_resource, :except => %w[index create]
|
7
9
|
before_action :openscap_proxy_check, :only => %w[create]
|
8
10
|
|
9
|
-
def resource_name(resource = '::ForemanOpenscap::TailoringFile')
|
10
|
-
super resource
|
11
|
-
end
|
12
|
-
|
13
|
-
def get_resource(message = 'no resource loaded')
|
14
|
-
instance_variable_get(:"@tailoring_file") || raise(message)
|
15
|
-
end
|
16
|
-
|
17
11
|
api :GET, '/compliance/tailoring_files', N_('List Tailoring files')
|
18
12
|
param_group :search_and_pagination, ::Api::V2::BaseController
|
19
13
|
add_scoped_search_description_for(::ForemanOpenscap::TailoringFile)
|
@@ -46,7 +46,7 @@ class PoliciesController < ApplicationController
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def update
|
49
|
-
if @policy.
|
49
|
+
if @policy.change_deploy_type(policy_params)
|
50
50
|
process_success :success_redirect => policies_path
|
51
51
|
else
|
52
52
|
process_error :object => @policy
|
@@ -18,4 +18,27 @@ module ComplianceHostsHelper
|
|
18
18
|
]
|
19
19
|
{ :data => data, :xAxisDataLabel => 'dates', :config => 'timeseries' }.to_json
|
20
20
|
end
|
21
|
+
|
22
|
+
def compliance_host_multiple_actions
|
23
|
+
[
|
24
|
+
{ :action => [_('Assign Compliance Policy'), select_multiple_hosts_policies_path], :priority => 1210 },
|
25
|
+
{ :action => [_('Unassign Compliance Policy'), disassociate_multiple_hosts_policies_path], :priority => 1211 },
|
26
|
+
{ :action => [_('Change OpenSCAP Proxy'), select_multiple_openscap_proxy_hosts_path], :priority => 1212 },
|
27
|
+
]
|
28
|
+
end
|
29
|
+
|
30
|
+
def compliance_host_overview_button(host)
|
31
|
+
return [] if host.arf_reports.none?
|
32
|
+
[
|
33
|
+
{
|
34
|
+
:button => link_to_if_authorized(
|
35
|
+
_('Compliance'),
|
36
|
+
hash_for_compliance_host_path(host.id),
|
37
|
+
:title => _("Host compliance details"),
|
38
|
+
:class => 'btn btn-default'
|
39
|
+
),
|
40
|
+
:priority => 1000
|
41
|
+
}
|
42
|
+
]
|
43
|
+
end
|
21
44
|
end
|
@@ -1,11 +1,5 @@
|
|
1
1
|
module ForemanOpenscap
|
2
2
|
module HostsHelperExtensions
|
3
|
-
def multiple_actions
|
4
|
-
super + [[_('Assign Compliance Policy'), select_multiple_hosts_policies_path],
|
5
|
-
[_('Unassign Compliance Policy'), disassociate_multiple_hosts_policies_path],
|
6
|
-
[_('Change OpenSCAP Proxy'), select_multiple_openscap_proxy_hosts_path]]
|
7
|
-
end
|
8
|
-
|
9
3
|
def name_column(record)
|
10
4
|
record.nil? ? _('Host is deleted') : super(record)
|
11
5
|
end
|
@@ -3,7 +3,7 @@ module ForemanOpenscap
|
|
3
3
|
::Host::Managed::Jail.allow :policies_enc, :policies_enc_raw
|
4
4
|
|
5
5
|
def self.prepended(base)
|
6
|
-
base.has_one :asset, :as => :assetable, :class_name => "::ForemanOpenscap::Asset"
|
6
|
+
base.has_one :asset, :as => :assetable, :class_name => "::ForemanOpenscap::Asset", :dependent => :destroy
|
7
7
|
base.has_many :asset_policies, :through => :asset, :class_name => "::ForemanOpenscap::AssetPolicy"
|
8
8
|
base.has_many :policies, :through => :asset_policies, :class_name => "::ForemanOpenscap::Policy"
|
9
9
|
base.has_many :arf_reports, :class_name => '::ForemanOpenscap::ArfReport', :foreign_key => :host_id
|
@@ -60,6 +60,17 @@ module ForemanOpenscap
|
|
60
60
|
api.policy_html_guide(scap_content.scap_file, scap_content_profile.try(:profile_id))
|
61
61
|
end
|
62
62
|
|
63
|
+
def change_deploy_type(params)
|
64
|
+
self.class.transaction do
|
65
|
+
if deploy_by != params[:deploy_by]
|
66
|
+
assign_attributes params
|
67
|
+
ForemanOpenscap::LookupKeyOverrider.new(self).override
|
68
|
+
end
|
69
|
+
|
70
|
+
errors.none? && update_attributes(params)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
63
74
|
def hostgroup_ids
|
64
75
|
assets.where(:assetable_type => 'Hostgroup').pluck(:assetable_id)
|
65
76
|
end
|
@@ -312,6 +323,7 @@ module ForemanOpenscap
|
|
312
323
|
def no_mixed_deployments
|
313
324
|
assets.each do |asset|
|
314
325
|
assetable = asset.assetable
|
326
|
+
next unless assetable
|
315
327
|
unless assetable.policies.where.not(:id => id).pluck(:deploy_by).all? { |deployed_by| deployed_by == deploy_by }
|
316
328
|
errors.add(:base, _("cannot assign to %s, all assigned policies must be deployed in the same way, check 'deploy by' for each assigned policy") % assetable.name)
|
317
329
|
end
|
@@ -4,5 +4,8 @@ module ForemanOpenscap
|
|
4
4
|
has_many :policies
|
5
5
|
belongs_to :tailoring_file
|
6
6
|
has_many :tailoring_file_policies, :class_name => 'ForemanOpenscap::Policy'
|
7
|
+
|
8
|
+
scoped_search :on => :profile_id, :complete_value => true
|
9
|
+
scoped_search :on => :title, :complete_value => true
|
7
10
|
end
|
8
11
|
end
|
@@ -71,16 +71,17 @@ module ForemanOpenscap
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def override_port_param(param, config)
|
74
|
-
override_param config.port_param, param, config
|
74
|
+
override_param config.port_param, param, config, 'integer'
|
75
75
|
end
|
76
76
|
|
77
77
|
def override_server_param(param, config)
|
78
78
|
override_param config.server_param, param, config
|
79
79
|
end
|
80
80
|
|
81
|
-
def override_param(param_name, param, config)
|
81
|
+
def override_param(param_name, param, config, key_type = nil)
|
82
82
|
param.override = true
|
83
83
|
param.hidden_value = false
|
84
|
+
param.key_type = key_type if key_type
|
84
85
|
|
85
86
|
yield param if block_given?
|
86
87
|
|
@@ -51,7 +51,7 @@
|
|
51
51
|
</div>
|
52
52
|
<div class="modal-footer">
|
53
53
|
<button type="button" class="btn btn-default" data-dismiss="modal"><%= _('Cancel') %></button>
|
54
|
-
<button type="button" class="btn btn-primary" onclick="
|
54
|
+
<button type="button" class="btn btn-primary" onclick="tfm.hosts.table.submitModalForm()"><%= _('Submit') %></button>
|
55
55
|
</div>
|
56
56
|
</div>
|
57
57
|
</div>
|
@@ -4,5 +4,5 @@
|
|
4
4
|
:url => update_multiple_openscap_proxy_hosts_path(:host_ids => params[:host_ids]) do |f| %>
|
5
5
|
<%= selectable_f f, :id, [[_("Select OpenSCAP Proxy"), "None"],
|
6
6
|
] + SmartProxy.with_features(['Openscap']).map{|e| [e.name, e.id]},{},
|
7
|
-
:onchange => "
|
7
|
+
:onchange => "tfm.hosts.table.toggleMultipleOkButton(this)" %>
|
8
8
|
<% end %>
|
@@ -3,5 +3,5 @@
|
|
3
3
|
:url => remove_policy_from_multiple_hosts_policies_path(:host_ids => params[:host_ids]) do |f| %>
|
4
4
|
<%= selectable_f f, :id, [[_('Select Compliance Policy'), 'disabled'],
|
5
5
|
] + ForemanOpenscap::Policy.all.map{|e| [e.name, e.id]},{},
|
6
|
-
:onchange => '
|
6
|
+
:onchange => 'tfm.hosts.table.toggleMultipleOkButton(this)' %>
|
7
7
|
<% end %>
|
@@ -4,5 +4,5 @@
|
|
4
4
|
:url => update_multiple_hosts_policies_path(:host_ids => params[:host_ids]) do |f| %>
|
5
5
|
<%= selectable_f f, :id, [[_("Select Compliance Policy"), "disabled"],
|
6
6
|
] + ForemanOpenscap::Policy.all.map{|e| [e.name, e.id]},{},
|
7
|
-
:onchange => "
|
7
|
+
:onchange => "tfm.hosts.table.toggleMultipleOkButton(this)" %>
|
8
8
|
<% end %>
|
data/config/routes.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
class MoveArfReportsToReportsTable < ActiveRecord::Migration[4.2]
|
2
|
-
# rubocop:disable Metrics/MethodLength
|
3
|
-
# rubocop:disable Metrics/AbcSize
|
4
2
|
def up
|
5
3
|
execute 'DROP VIEW foreman_openscap_arf_report_breakdowns' if view_exists? 'foreman_openscap_arf_report_breakdowns'
|
6
4
|
drop_table :foreman_openscap_xccdf_results
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class MigratePortOverridesToInt < ActiveRecord::Migration[5.2]
|
2
|
+
def up
|
3
|
+
transform_lookup_values :to_i
|
4
|
+
end
|
5
|
+
|
6
|
+
def down
|
7
|
+
transform_lookup_values :to_s
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def transform_lookup_values(method)
|
13
|
+
puppet_class = Puppetclass.find_by :name => 'foreman_scap_client'
|
14
|
+
return unless puppet_class
|
15
|
+
port_key = puppet_class.class_params.find_by :key => 'port'
|
16
|
+
return unless port_key
|
17
|
+
port_key.lookup_values.in_batches do |batch|
|
18
|
+
batch.each do |lookup_value|
|
19
|
+
lookup_value.value = lookup_value.value.send(method)
|
20
|
+
lookup_value.save
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'deface'
|
2
|
-
|
3
1
|
module ForemanOpenscap
|
4
2
|
def self.with_katello?
|
5
3
|
defined?(::Katello)
|
@@ -11,7 +9,6 @@ module ForemanOpenscap
|
|
11
9
|
config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
|
12
10
|
config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
|
13
11
|
config.autoload_paths += Dir["#{config.root}/app/models"]
|
14
|
-
config.autoload_paths += Dir["#{config.root}/app/overrides"]
|
15
12
|
config.autoload_paths += Dir["#{config.root}/app/lib"]
|
16
13
|
config.autoload_paths += Dir["#{config.root}/app/services"]
|
17
14
|
config.autoload_paths += Dir["#{config.root}/lib"]
|
@@ -50,12 +47,11 @@ module ForemanOpenscap
|
|
50
47
|
|
51
48
|
initializer 'foreman_openscap.register_plugin', :before => :finisher_hook do |app|
|
52
49
|
Foreman::Plugin.register :foreman_openscap do
|
53
|
-
requires_foreman '>= 1.
|
50
|
+
requires_foreman '>= 1.24'
|
54
51
|
|
55
52
|
apipie_documented_controllers ["#{ForemanOpenscap::Engine.root}/app/controllers/api/v2/compliance/*.rb"]
|
56
53
|
|
57
|
-
|
58
|
-
register_custom_status ForemanOpenscap::ComplianceStatus if version.major.to_i >= 1 && version.minor.to_i >= 10
|
54
|
+
register_custom_status ForemanOpenscap::ComplianceStatus
|
59
55
|
|
60
56
|
# Add permissions
|
61
57
|
security_block :foreman_openscap do
|
@@ -89,7 +85,8 @@ module ForemanOpenscap
|
|
89
85
|
remove_policy_from_multiple_hosts] },
|
90
86
|
:resource_type => 'ForemanOpenscap::Policy'
|
91
87
|
permission :view_scap_contents, { :scap_contents => %i[index show auto_complete_search],
|
92
|
-
'api/v2/compliance/scap_contents' => %i[index show xml]
|
88
|
+
'api/v2/compliance/scap_contents' => %i[index show xml],
|
89
|
+
'api/v2/compliance/scap_content_profiles' => %i[index] },
|
93
90
|
:resource_type => 'ForemanOpenscap::ScapContent'
|
94
91
|
permission :edit_scap_contents, { :scap_contents => %i[edit update],
|
95
92
|
'api/v2/compliance/scap_contents' => [:update] },
|
@@ -112,7 +109,8 @@ module ForemanOpenscap
|
|
112
109
|
permission :view_tailoring_files, { :tailoring_files => %i[index auto_complete_search xml],
|
113
110
|
:policies => [:tailoring_file_selected],
|
114
111
|
'api/v2/compliance/tailoring_files' => %i[show xml index],
|
115
|
-
'api/v2/compliance/policies' => [:tailoring]
|
112
|
+
'api/v2/compliance/policies' => [:tailoring],
|
113
|
+
'api/v2/compliance/scap_content_profiles' => %i[index] },
|
116
114
|
:resource_type => 'ForemanOpenscap::TailoringFile'
|
117
115
|
permission :edit_tailoring_files, { :tailoring_files => %i[edit update],
|
118
116
|
'api/v2/compliance/tailoring_files' => [:update] },
|
@@ -124,12 +122,14 @@ module ForemanOpenscap
|
|
124
122
|
:resource_type => 'SmartProxy'
|
125
123
|
end
|
126
124
|
|
127
|
-
role "Compliance viewer", %i[view_arf_reports view_policies view_scap_contents view_tailoring_files view_openscap_proxies]
|
125
|
+
role "Compliance viewer", %i[view_arf_reports view_policies view_scap_contents view_tailoring_files view_openscap_proxies],
|
126
|
+
"Role granting read permissions to policy configuration, scan results and downloading reports."
|
128
127
|
role "Compliance manager", %i[view_arf_reports view_policies view_scap_contents
|
129
128
|
destroy_arf_reports edit_policies edit_scap_contents assign_policies
|
130
129
|
create_policies create_scap_contents destroy_policies destroy_scap_contents
|
131
130
|
create_tailoring_files view_tailoring_files edit_tailoring_files destroy_tailoring_files
|
132
|
-
view_openscap_proxies]
|
131
|
+
view_openscap_proxies],
|
132
|
+
"Role granting all permissions to compliance features to non-admin users."
|
133
133
|
role "Create ARF report", [:create_arf_reports] # special as only Proxy can create
|
134
134
|
|
135
135
|
add_all_permissions_to_default_roles
|
@@ -200,6 +200,11 @@ module ForemanOpenscap
|
|
200
200
|
add_controller_action_scope('HostsController', :index) do |base_scope|
|
201
201
|
base_scope.preload(:policies)
|
202
202
|
end
|
203
|
+
|
204
|
+
describe_host do
|
205
|
+
multiple_actions_provider :compliance_host_multiple_actions
|
206
|
+
overview_buttons_provider :compliance_host_overview_button
|
207
|
+
end
|
203
208
|
end
|
204
209
|
end
|
205
210
|
|