foreman_openscap 4.3.3 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/compliance/arf_reports_controller.rb +0 -6
  3. data/app/graphql/mutations/oval_contents/delete.rb +9 -0
  4. data/app/graphql/mutations/oval_policies/create.rb +33 -0
  5. data/app/graphql/mutations/oval_policies/delete.rb +9 -0
  6. data/app/graphql/mutations/oval_policies/update.rb +15 -0
  7. data/app/graphql/types/oval_check.rb +11 -0
  8. data/app/graphql/types/oval_content.rb +2 -0
  9. data/app/graphql/types/oval_policy.rb +3 -0
  10. data/app/helpers/arf_report_dashboard_helper.rb +2 -4
  11. data/app/helpers/compliance_hosts_helper.rb +1 -1
  12. data/app/helpers/policies_helper.rb +2 -2
  13. data/app/models/concerns/foreman_openscap/data_stream_content.rb +1 -1
  14. data/app/models/concerns/foreman_openscap/host_extensions.rb +0 -6
  15. data/app/models/concerns/foreman_openscap/oval_facet_hostgroup_extensions.rb +16 -0
  16. data/app/models/concerns/foreman_openscap/policy_common.rb +1 -1
  17. data/app/models/foreman_openscap/arf_report.rb +1 -1
  18. data/app/models/foreman_openscap/oval_content.rb +2 -0
  19. data/app/services/foreman_openscap/client_config/base.rb +1 -0
  20. data/app/services/foreman_openscap/client_config/puppet.rb +6 -2
  21. data/app/services/foreman_openscap/oval/configure.rb +16 -13
  22. data/app/services/foreman_openscap/oval/setup.rb +5 -5
  23. data/app/services/foreman_openscap/oval/setup_check.rb +5 -2
  24. data/app/views/arf_reports/_metrics.html.erb +4 -4
  25. data/app/views/compliance_hosts/show.html.erb +4 -6
  26. data/app/views/dashboard/_compliance_reports_breakdown_widget.html.erb +4 -3
  27. data/app/views/policy_dashboard/_policy_chart_widget.html.erb +3 -2
  28. data/db/migrate/20200117135424_migrate_port_overrides_to_int.rb +2 -1
  29. data/db/migrate/20201202110213_update_puppet_port_param_type.rb +2 -1
  30. data/db/migrate/20210819143316_drop_unused_tables.rb +6 -0
  31. data/lib/foreman_openscap/engine.rb +8 -9
  32. data/lib/foreman_openscap/version.rb +1 -1
  33. data/package.json +3 -6
  34. data/test/functional/api/v2/compliance/oval_reports_controller_test.rb +1 -1
  35. data/test/functional/api/v2/compliance/policies_controller_test.rb +2 -0
  36. data/test/graphql/mutations/oval_policies/delete_mutation_test.rb +63 -0
  37. data/test/graphql/queries/oval_content_query_test.rb +29 -0
  38. data/test/helpers/arf_report_dashboard_helper_test.rb +9 -10
  39. data/test/helpers/policy_dashboard_helper_test.rb +1 -1
  40. data/test/test_plugin_helper.rb +9 -4
  41. data/test/unit/policy_test.rb +1 -1
  42. data/test/unit/services/config_name_service_test.rb +1 -0
  43. data/test/unit/services/hostgroup_overrider_test.rb +2 -1
  44. data/test/unit/services/lookup_key_overrider_test.rb +4 -1
  45. data/test/unit/services/oval/setup_check_test.rb +37 -0
  46. data/webpack/components/ConfirmModal.js +63 -0
  47. data/webpack/components/ConfirmModal.scss +3 -0
  48. data/webpack/components/EditableInput.js +163 -0
  49. data/webpack/components/EditableInput.scss +3 -0
  50. data/webpack/components/EmptyState.js +12 -3
  51. data/webpack/components/IndexLayout.js +11 -4
  52. data/webpack/components/IndexTable/index.js +21 -16
  53. data/webpack/components/LinkButton.js +38 -0
  54. data/webpack/components/withDeleteModal.js +51 -0
  55. data/webpack/components/withLoading.js +44 -5
  56. data/webpack/graphql/mutations/createOvalPolicy.gql +22 -0
  57. data/webpack/graphql/mutations/deleteOvalContent.gql +9 -0
  58. data/webpack/graphql/mutations/deleteOvalPolicy.gql +9 -0
  59. data/webpack/graphql/mutations/updateOvalPolicy.gql +14 -0
  60. data/webpack/graphql/queries/currentUserAttributes.gql +11 -0
  61. data/webpack/graphql/queries/cves.gql +5 -0
  62. data/webpack/graphql/queries/hostgroups.gql +14 -0
  63. data/webpack/graphql/queries/ovalContent.gql +8 -0
  64. data/webpack/graphql/queries/ovalContents.gql +8 -0
  65. data/webpack/graphql/queries/ovalPolicies.gql +8 -0
  66. data/webpack/graphql/queries/ovalPolicy.gql +8 -0
  67. data/webpack/helpers/formFieldsHelper.js +113 -0
  68. data/webpack/helpers/globalIdHelper.js +4 -2
  69. data/webpack/helpers/mutationHelper.js +68 -0
  70. data/webpack/helpers/pathsHelper.js +10 -3
  71. data/webpack/helpers/permissionsHelper.js +42 -0
  72. data/webpack/helpers/toastHelper.js +3 -0
  73. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js +26 -0
  74. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js +50 -5
  75. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.fixtures.js +105 -0
  76. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.test.js +124 -0
  77. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js +98 -77
  78. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js +53 -6
  79. data/webpack/routes/OvalContents/OvalContentsIndex/index.js +7 -1
  80. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.js +138 -0
  81. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.scss +3 -0
  82. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNewHelper.js +73 -0
  83. data/webpack/routes/OvalContents/OvalContentsNew/__tests__/OvalContentsNew.test.js +104 -0
  84. data/webpack/routes/OvalContents/OvalContentsNew/index.js +13 -0
  85. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.js +62 -0
  86. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.test.js +45 -0
  87. data/{locale/de/foreman_openscap.edit.po → webpack/routes/OvalContents/OvalContentsShow/OvalContentsShowHelper.js} +0 -0
  88. data/webpack/routes/OvalContents/OvalContentsShow/index.js +35 -0
  89. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js +18 -2
  90. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js +34 -4
  91. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.fixtures.js +101 -0
  92. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.test.js +117 -0
  93. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js +71 -21
  94. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js +34 -2
  95. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js +7 -1
  96. data/webpack/routes/OvalPolicies/OvalPoliciesNew/HostgroupSelect.js +135 -0
  97. data/webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyForm.js +119 -0
  98. data/webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyFormHelpers.js +107 -0
  99. data/webpack/routes/OvalPolicies/OvalPoliciesNew/OvalPoliciesNew.js +32 -0
  100. data/webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.fixtures.js +147 -0
  101. data/webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.test.js +172 -0
  102. data/webpack/routes/OvalPolicies/OvalPoliciesNew/index.js +11 -0
  103. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js +1 -0
  104. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js +2 -2
  105. data/webpack/routes/OvalPolicies/OvalPoliciesShow/DetailsTab.js +87 -0
  106. data/webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTab.js +49 -0
  107. data/webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTable.js +38 -0
  108. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js +15 -11
  109. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js +80 -2
  110. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.fixtures.js +48 -0
  111. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.test.js +202 -0
  112. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js +50 -4
  113. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js +64 -4
  114. data/webpack/routes/OvalPolicies/OvalPoliciesShow/index.js +4 -0
  115. data/webpack/routes/routes.js +21 -0
  116. data/webpack/testHelper.js +64 -2
  117. metadata +76 -35
  118. data/locale/en_GB/foreman_openscap.edit.po +0 -0
  119. data/locale/es/foreman_openscap.edit.po +0 -0
  120. data/locale/fr/foreman_openscap.edit.po +0 -0
  121. data/locale/gl/foreman_openscap.edit.po +0 -0
  122. data/locale/it/foreman_openscap.edit.po +0 -0
  123. data/locale/ja/foreman_openscap.edit.po +0 -0
  124. data/locale/ko/foreman_openscap.edit.po +0 -0
  125. data/locale/pt_BR/foreman_openscap.edit.po +0 -0
  126. data/locale/ru/foreman_openscap.edit.po +0 -0
  127. data/locale/sv_SE/foreman_openscap.edit.po +0 -0
  128. data/locale/zh_CN/foreman_openscap.edit.po +0 -0
  129. data/locale/zh_TW/foreman_openscap.edit.po +0 -0
@@ -12,17 +12,27 @@ import {
12
12
  resolvePath,
13
13
  } from '../../../../helpers/pathsHelper';
14
14
 
15
- import { withMockedProvider, tick, withRouter } from '../../../../testHelper';
15
+ import {
16
+ withRedux,
17
+ withMockedProvider,
18
+ tick,
19
+ withRouter,
20
+ } from '../../../../testHelper';
16
21
  import {
17
22
  policyDetailMock,
18
23
  historyMock,
19
24
  historyWithSearch,
20
25
  pushMock,
21
26
  policyCvesMock,
27
+ policyHostgroupsMock,
28
+ policyHostgroupsDeniedMock,
22
29
  ovalPolicyId,
30
+ policyUnauthorizedMock,
23
31
  } from './OvalPoliciesShow.fixtures';
24
32
 
25
- const TestComponent = withRouter(withMockedProvider(OvalPoliciesShow));
33
+ const TestComponent = withRedux(
34
+ withRouter(withMockedProvider(OvalPoliciesShow))
35
+ );
26
36
 
27
37
  describe('OvalPoliciesShow', () => {
28
38
  it('should load details by default and handle tab change', async () => {
@@ -36,7 +46,7 @@ describe('OvalPoliciesShow', () => {
36
46
  expect(screen.getByText('Loading')).toBeInTheDocument();
37
47
  await waitFor(tick);
38
48
  expect(screen.queryByText('Loading')).not.toBeInTheDocument();
39
- expect(screen.getByText('Third policy')).toBeInTheDocument();
49
+ expect(screen.getAllByText('Third policy').pop()).toBeInTheDocument();
40
50
  expect(screen.getByText('Weekly, on tuesday')).toBeInTheDocument();
41
51
  expect(screen.getByText('A very strict policy')).toBeInTheDocument();
42
52
  const activeTabHeader = container.querySelector(
@@ -67,6 +77,22 @@ describe('OvalPoliciesShow', () => {
67
77
  expect(screen.queryByText('Loading')).not.toBeInTheDocument();
68
78
  expect(screen.getByText('Weekly, on tuesday')).toBeInTheDocument();
69
79
  });
80
+ it('should not load the page when user does not have permissions', async () => {
81
+ render(
82
+ <TestComponent
83
+ history={historyMock}
84
+ match={{ params: { id: ovalPolicyId }, path: ovalPoliciesShowPath }}
85
+ mocks={policyUnauthorizedMock}
86
+ />
87
+ );
88
+ await waitFor(tick);
89
+ expect(screen.queryByText('Loading')).not.toBeInTheDocument();
90
+ expect(
91
+ screen.getByText(
92
+ 'You are not authorized to view the page. Request the following permissions from administrator: view_oval_policies.'
93
+ )
94
+ ).toBeInTheDocument();
95
+ });
70
96
  it('should load CVEs tab when specified in URL', async () => {
71
97
  const mocks = policyDetailMock.concat(policyCvesMock);
72
98
  render(
@@ -88,7 +114,7 @@ describe('OvalPoliciesShow', () => {
88
114
  it('should have button for scanning all hostgroups', async () => {
89
115
  const btnText = 'Scan All Hostgroups';
90
116
 
91
- const WithProvider = withMockedProvider(OvalPoliciesShow);
117
+ const WithProvider = withRedux(withMockedProvider(OvalPoliciesShow));
92
118
  const history = createMemoryHistory();
93
119
  history.push = jest.fn();
94
120
 
@@ -109,4 +135,38 @@ describe('OvalPoliciesShow', () => {
109
135
  '/job_invocations/new?feature=foreman_openscap_run_oval_scans&host_ids=hostgroup_id+%5E+%284+10+12+11%29&inputs%5Boval_policies%5D=3'
110
136
  );
111
137
  });
138
+ it('should load hostgroups tab when specified in URL', async () => {
139
+ const mocks = policyDetailMock.concat(policyHostgroupsMock);
140
+ render(
141
+ <TestComponent
142
+ history={historyWithSearch}
143
+ match={{
144
+ params: { id: ovalPolicyId, tab: 'hostgroups' },
145
+ path: ovalPoliciesShowPath,
146
+ }}
147
+ mocks={mocks}
148
+ />
149
+ );
150
+ expect(screen.getByText('Loading')).toBeInTheDocument();
151
+ await waitFor(tick);
152
+ await waitFor(tick);
153
+ expect(screen.queryByText('Loading')).not.toBeInTheDocument();
154
+ expect(screen.getByText('first hostgroup')).toBeInTheDocument();
155
+ });
156
+ it('should not show hostgroups for a user without permissions', async () => {
157
+ const mocks = policyDetailMock.concat(policyHostgroupsDeniedMock);
158
+ render(
159
+ <TestComponent
160
+ history={historyWithSearch}
161
+ match={{
162
+ params: { id: ovalPolicyId, tab: 'hostgroups' },
163
+ path: ovalPoliciesShowPath,
164
+ }}
165
+ mocks={mocks}
166
+ />
167
+ );
168
+ await waitFor(tick);
169
+ await waitFor(tick);
170
+ expect(screen.getByText('Permission denied')).toBeInTheDocument();
171
+ });
112
172
  });
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useQuery } from '@apollo/client';
4
+ import { useDispatch } from 'react-redux';
4
5
 
5
6
  import { translate as __ } from 'foremanReact/common/I18n';
7
+ import { showToast } from '../../../helpers/toastHelper';
6
8
 
7
9
  import OvalPoliciesShow from './OvalPoliciesShow';
8
10
  import { encodeId } from '../../../helpers/globalIdHelper';
@@ -24,6 +26,8 @@ const WrappedOvalPoliciesShow = props => {
24
26
  renameData={renameData}
25
27
  resultPath="ovalPolicy"
26
28
  emptyStateTitle={__('No OVAL Policy found')}
29
+ permissions={['view_oval_policies']}
30
+ showToast={showToast(useDispatch())}
27
31
  />
28
32
  );
29
33
  };
@@ -1,12 +1,18 @@
1
1
  import React from 'react';
2
2
  import OvalContentsIndex from './OvalContents/OvalContentsIndex';
3
+ import OvalContentsShow from './OvalContents/OvalContentsShow';
4
+ import OvalContentsNew from './OvalContents/OvalContentsNew';
3
5
  import OvalPoliciesIndex from './OvalPolicies/OvalPoliciesIndex';
6
+ import OvalPoliciesNew from './OvalPolicies/OvalPoliciesNew';
4
7
  import OvalPoliciesShow from './OvalPolicies/OvalPoliciesShow';
5
8
 
6
9
  import {
7
10
  ovalContentsPath,
11
+ ovalContentsShowPath,
12
+ ovalContentsNewPath,
8
13
  ovalPoliciesPath,
9
14
  ovalPoliciesShowPath,
15
+ ovalPoliciesNewPath,
10
16
  } from '../helpers/pathsHelper';
11
17
 
12
18
  export default [
@@ -15,11 +21,26 @@ export default [
15
21
  render: props => <OvalContentsIndex {...props} />,
16
22
  exact: true,
17
23
  },
24
+ {
25
+ path: ovalContentsNewPath,
26
+ render: props => <OvalContentsNew {...props} />,
27
+ exact: true,
28
+ },
29
+ {
30
+ path: ovalContentsShowPath,
31
+ render: props => <OvalContentsShow {...props} />,
32
+ exact: true,
33
+ },
18
34
  {
19
35
  path: ovalPoliciesPath,
20
36
  render: props => <OvalPoliciesIndex {...props} />,
21
37
  exact: true,
22
38
  },
39
+ {
40
+ path: ovalPoliciesNewPath,
41
+ render: props => <OvalPoliciesNew {...props} />,
42
+ exact: true,
43
+ },
23
44
  {
24
45
  path: ovalPoliciesShowPath,
25
46
  render: props => <OvalPoliciesShow {...props} />,
@@ -1,7 +1,16 @@
1
1
  import React from 'react';
2
+ import { Provider } from 'react-redux';
3
+ import store from 'foremanReact/redux';
2
4
  import { MockedProvider } from '@apollo/react-testing';
3
5
  import { MemoryRouter } from 'react-router-dom';
4
6
  import { getForemanContext } from 'foremanReact/Root/Context/ForemanContext';
7
+ import { waitFor } from '@testing-library/react';
8
+
9
+ export const withRedux = Component => props => (
10
+ <Provider store={store}>
11
+ <Component {...props} />
12
+ </Provider>
13
+ );
5
14
 
6
15
  export const withRouter = Component => props => (
7
16
  <MemoryRouter>
@@ -24,7 +33,7 @@ export const withMockedProvider = Component => props => {
24
33
 
25
34
  return (
26
35
  <ForemanContext.Provider value={ctx}>
27
- <MockedProvider mocks={mocks} addTypename={false}>
36
+ <MockedProvider mocks={mocks}>
28
37
  <Component {...rest} />
29
38
  </MockedProvider>
30
39
  </ForemanContext.Provider>
@@ -34,16 +43,65 @@ export const withMockedProvider = Component => props => {
34
43
  // use to resolve async mock requests for apollo MockedProvider
35
44
  export const tick = () => new Promise(resolve => setTimeout(resolve, 0));
36
45
 
46
+ export const wait = async (tickCount = 1) => {
47
+ for (let i = 1; i < tickCount; i++) {
48
+ // eslint-disable-next-line no-await-in-loop
49
+ await waitFor(tick);
50
+ }
51
+ return waitFor(tick);
52
+ };
53
+
37
54
  export const historyMock = {
38
55
  location: {
39
56
  search: '',
40
57
  },
41
58
  };
42
59
 
60
+ export const admin = {
61
+ __typename: 'User',
62
+ id: 'MDE6VXNlci00',
63
+ login: 'admin',
64
+ admin: true,
65
+ permissions: {
66
+ nodes: [],
67
+ },
68
+ };
69
+
70
+ export const userFactory = (login, permissions = []) => ({
71
+ __typename: 'User',
72
+ id: 'MDE6VXNlci01',
73
+ login,
74
+ admin: false,
75
+ permissions: {
76
+ nodes: permissions,
77
+ },
78
+ });
79
+
80
+ export const intruder = userFactory('intruder', [
81
+ {
82
+ __typename: 'Permission',
83
+ id: 'MDE6UGVybWlzc2lvbi0x',
84
+ name: 'view_architectures',
85
+ },
86
+ ]);
87
+
88
+ export const viewer = userFactory('viewer', [
89
+ {
90
+ __typename: 'Permission',
91
+ id: 'MDE6UGVybWlzc2lvbi0yOTY=',
92
+ name: 'view_oval_contents',
93
+ },
94
+ {
95
+ __typename: 'Permission',
96
+ id: 'MDE6UGVybWlzc2lvbi0yNzU=',
97
+ name: 'view_oval_policies',
98
+ },
99
+ ]);
100
+
43
101
  export const mockFactory = (resultName, query) => (
44
102
  variables,
45
103
  modelResults,
46
- errors = []
104
+ { errors = [], currentUser = null } = {}
47
105
  ) => {
48
106
  const mock = {
49
107
  request: {
@@ -60,5 +118,9 @@ export const mockFactory = (resultName, query) => (
60
118
  if (errors.length !== 0) {
61
119
  mock.result.errors = errors;
62
120
  }
121
+
122
+ if (currentUser) {
123
+ mock.result.data.currentUser = currentUser;
124
+ }
63
125
  return [mock];
64
126
  };
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_openscap
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.3
4
+ version: 5.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - slukasik@redhat.com
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-13 00:00:00.000000000 Z
11
+ date: 2022-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -72,7 +72,12 @@ files:
72
72
  - app/controllers/policy_dashboard_controller.rb
73
73
  - app/controllers/scap_contents_controller.rb
74
74
  - app/controllers/tailoring_files_controller.rb
75
+ - app/graphql/mutations/oval_contents/delete.rb
76
+ - app/graphql/mutations/oval_policies/create.rb
77
+ - app/graphql/mutations/oval_policies/delete.rb
78
+ - app/graphql/mutations/oval_policies/update.rb
75
79
  - app/graphql/types/cve.rb
80
+ - app/graphql/types/oval_check.rb
76
81
  - app/graphql/types/oval_content.rb
77
82
  - app/graphql/types/oval_policy.rb
78
83
  - app/helpers/arf_report_dashboard_helper.rb
@@ -301,6 +306,7 @@ files:
301
306
  - db/migrate/20201217130800_add_has_errata_to_cve.rb
302
307
  - db/migrate/20201217161511_add_url_to_oval_content.rb
303
308
  - db/migrate/20210409095625_add_oval_policy_reference_to_cve.rb
309
+ - db/migrate/20210819143316_drop_unused_tables.rb
304
310
  - db/seeds.d/75-job_templates.rb
305
311
  - db/seeds.d/openscap_feature.rb
306
312
  - db/seeds.d/openscap_policy_notification.rb
@@ -315,45 +321,32 @@ files:
315
321
  - locale/Makefile
316
322
  - locale/action_names.rb
317
323
  - locale/de/LC_MESSAGES/foreman_openscap.mo
318
- - locale/de/foreman_openscap.edit.po
319
324
  - locale/de/foreman_openscap.po
320
325
  - locale/en_GB/LC_MESSAGES/foreman_openscap.mo
321
- - locale/en_GB/foreman_openscap.edit.po
322
326
  - locale/en_GB/foreman_openscap.po
323
327
  - locale/es/LC_MESSAGES/foreman_openscap.mo
324
- - locale/es/foreman_openscap.edit.po
325
328
  - locale/es/foreman_openscap.po
326
329
  - locale/foreman_openscap.pot
327
330
  - locale/fr/LC_MESSAGES/foreman_openscap.mo
328
- - locale/fr/foreman_openscap.edit.po
329
331
  - locale/fr/foreman_openscap.po
330
332
  - locale/gl/LC_MESSAGES/foreman_openscap.mo
331
- - locale/gl/foreman_openscap.edit.po
332
333
  - locale/gl/foreman_openscap.po
333
334
  - locale/it/LC_MESSAGES/foreman_openscap.mo
334
- - locale/it/foreman_openscap.edit.po
335
335
  - locale/it/foreman_openscap.po
336
336
  - locale/ja/LC_MESSAGES/foreman_openscap.mo
337
- - locale/ja/foreman_openscap.edit.po
338
337
  - locale/ja/foreman_openscap.po
339
338
  - locale/ko/LC_MESSAGES/foreman_openscap.mo
340
- - locale/ko/foreman_openscap.edit.po
341
339
  - locale/ko/foreman_openscap.po
342
340
  - locale/pt_BR/LC_MESSAGES/foreman_openscap.mo
343
- - locale/pt_BR/foreman_openscap.edit.po
344
341
  - locale/pt_BR/foreman_openscap.po
345
342
  - locale/ru/LC_MESSAGES/foreman_openscap.mo
346
- - locale/ru/foreman_openscap.edit.po
347
343
  - locale/ru/foreman_openscap.po
348
344
  - locale/sv_SE/LC_MESSAGES/foreman_openscap.mo
349
- - locale/sv_SE/foreman_openscap.edit.po
350
345
  - locale/sv_SE/foreman_openscap.po
351
346
  - locale/zanata.xml
352
347
  - locale/zh_CN/LC_MESSAGES/foreman_openscap.mo
353
- - locale/zh_CN/foreman_openscap.edit.po
354
348
  - locale/zh_CN/foreman_openscap.po
355
349
  - locale/zh_TW/LC_MESSAGES/foreman_openscap.mo
356
- - locale/zh_TW/foreman_openscap.edit.po
357
350
  - locale/zh_TW/foreman_openscap.po
358
351
  - package.json
359
352
  - test/factories/arf_report_factory.rb
@@ -387,6 +380,8 @@ files:
387
380
  - test/functional/arf_reports_controller_test.rb
388
381
  - test/functional/openscap_proxies_controller_test.rb
389
382
  - test/functional/tailoring_files_controller_test.rb
383
+ - test/graphql/mutations/oval_policies/delete_mutation_test.rb
384
+ - test/graphql/queries/oval_content_query_test.rb
390
385
  - test/graphql/queries/oval_contents_query_test.rb
391
386
  - test/graphql/queries/oval_policies_query_test.rb
392
387
  - test/helpers/arf_report_dashboard_helper_test.rb
@@ -410,15 +405,21 @@ files:
410
405
  - test/unit/services/hostgroup_overrider_test.rb
411
406
  - test/unit/services/lookup_key_overrider_test.rb
412
407
  - test/unit/services/oval/cves_test.rb
408
+ - test/unit/services/oval/setup_check_test.rb
413
409
  - test/unit/services/oval/setup_test.rb
414
410
  - test/unit/services/report_dashboard/data_test.rb
415
411
  - test/unit/services/tailoring_files_proxy_check_test.rb
416
412
  - test/unit/tailoring_file_test.rb
413
+ - webpack/components/ConfirmModal.js
414
+ - webpack/components/ConfirmModal.scss
415
+ - webpack/components/EditableInput.js
416
+ - webpack/components/EditableInput.scss
417
417
  - webpack/components/EmptyState.js
418
418
  - webpack/components/IndexLayout.js
419
419
  - webpack/components/IndexLayout.scss
420
420
  - webpack/components/IndexTable/IndexTableHelper.js
421
421
  - webpack/components/IndexTable/index.js
422
+ - webpack/components/LinkButton.js
422
423
  - webpack/components/RuleSeverity/RuleSeverity.scss
423
424
  - webpack/components/RuleSeverity/RuleSeverity.test.js
424
425
  - webpack/components/RuleSeverity/__snapshots__/RuleSeverity.test.js.snap
@@ -428,32 +429,69 @@ files:
428
429
  - webpack/components/RuleSeverity/i_severity-med.svg
429
430
  - webpack/components/RuleSeverity/i_unknown.svg
430
431
  - webpack/components/RuleSeverity/index.js
432
+ - webpack/components/withDeleteModal.js
431
433
  - webpack/components/withLoading.js
432
434
  - webpack/global_index.js
435
+ - webpack/graphql/mutations/createOvalPolicy.gql
436
+ - webpack/graphql/mutations/deleteOvalContent.gql
437
+ - webpack/graphql/mutations/deleteOvalPolicy.gql
438
+ - webpack/graphql/mutations/updateOvalPolicy.gql
439
+ - webpack/graphql/queries/currentUserAttributes.gql
433
440
  - webpack/graphql/queries/cves.gql
441
+ - webpack/graphql/queries/hostgroups.gql
442
+ - webpack/graphql/queries/ovalContent.gql
434
443
  - webpack/graphql/queries/ovalContents.gql
435
444
  - webpack/graphql/queries/ovalPolicies.gql
436
445
  - webpack/graphql/queries/ovalPolicy.gql
437
446
  - webpack/helpers/commonHelper.js
447
+ - webpack/helpers/formFieldsHelper.js
438
448
  - webpack/helpers/globalIdHelper.js
449
+ - webpack/helpers/mutationHelper.js
439
450
  - webpack/helpers/pageParamsHelper.js
440
451
  - webpack/helpers/pathsHelper.js
452
+ - webpack/helpers/permissionsHelper.js
441
453
  - webpack/helpers/tableHelper.js
454
+ - webpack/helpers/toastHelper.js
442
455
  - webpack/index.js
443
456
  - webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js
444
457
  - webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js
458
+ - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.fixtures.js
459
+ - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.test.js
445
460
  - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js
446
461
  - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js
447
462
  - webpack/routes/OvalContents/OvalContentsIndex/index.js
463
+ - webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.js
464
+ - webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.scss
465
+ - webpack/routes/OvalContents/OvalContentsNew/OvalContentsNewHelper.js
466
+ - webpack/routes/OvalContents/OvalContentsNew/__tests__/OvalContentsNew.test.js
467
+ - webpack/routes/OvalContents/OvalContentsNew/index.js
468
+ - webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.js
469
+ - webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.test.js
470
+ - webpack/routes/OvalContents/OvalContentsShow/OvalContentsShowHelper.js
471
+ - webpack/routes/OvalContents/OvalContentsShow/index.js
448
472
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js
449
473
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js
474
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.fixtures.js
475
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.test.js
450
476
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js
451
477
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js
452
478
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js
479
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/HostgroupSelect.js
480
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyForm.js
481
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyFormHelpers.js
482
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/OvalPoliciesNew.js
483
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.fixtures.js
484
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.test.js
485
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/index.js
453
486
  - webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js
454
487
  - webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js
488
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/DetailsTab.js
489
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTab.js
490
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTable.js
455
491
  - webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js
456
492
  - webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js
493
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.fixtures.js
494
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.test.js
457
495
  - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js
458
496
  - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js
459
497
  - webpack/routes/OvalPolicies/OvalPoliciesShow/index.js
@@ -463,7 +501,7 @@ homepage: https://github.com/theforeman/foreman_openscap
463
501
  licenses:
464
502
  - GPL-3.0
465
503
  metadata: {}
466
- post_install_message:
504
+ post_install_message:
467
505
  rdoc_options: []
468
506
  require_paths:
469
507
  - lib
@@ -478,20 +516,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
478
516
  - !ruby/object:Gem::Version
479
517
  version: '0'
480
518
  requirements: []
481
- rubygems_version: 3.1.2
482
- signing_key:
519
+ rubygems_version: 3.1.4
520
+ signing_key:
483
521
  specification_version: 4
484
522
  summary: Foreman plug-in for displaying OpenSCAP audit reports
485
523
  test_files:
486
- - test/factories/arf_report_factory.rb
487
524
  - test/factories/asset_factory.rb
488
525
  - test/factories/policy_arf_report_factory.rb
489
526
  - test/factories/policy_factory.rb
490
527
  - test/factories/scap_content_related.rb
491
- - test/factories/compliance_log_factory.rb
492
528
  - test/factories/compliance_host_factory.rb
493
529
  - test/factories/oval_content_factory.rb
494
530
  - test/factories/oval_policy_factory.rb
531
+ - test/factories/arf_report_factory.rb
532
+ - test/factories/compliance_log_factory.rb
495
533
  - test/files/arf_report/arf_report.bz2
496
534
  - test/files/arf_report/arf_report.html
497
535
  - test/files/arf_report/arf_report.json
@@ -501,14 +539,14 @@ test_files:
501
539
  - test/files/tailoring_files/ssg-firefox-ds-tailoring-2.xml
502
540
  - test/files/tailoring_files/ssg-firefox-ds-tailoring.xml
503
541
  - test/files/oval_contents/ansible-2.9.oval.xml.bz2
504
- - test/functional/api/v2/compliance/policies_controller_test.rb
505
542
  - test/functional/api/v2/compliance/scap_content_profiles_controller_test.rb
506
543
  - test/functional/api/v2/compliance/scap_contents_controller_test.rb
507
544
  - test/functional/api/v2/compliance/tailoring_files_controller_test.rb
508
- - test/functional/api/v2/compliance/arf_reports_controller_test.rb
509
545
  - test/functional/api/v2/compliance/oval_contents_controller_test.rb
510
546
  - test/functional/api/v2/compliance/oval_policies_controller_test.rb
547
+ - test/functional/api/v2/compliance/arf_reports_controller_test.rb
511
548
  - test/functional/api/v2/compliance/oval_reports_controller_test.rb
549
+ - test/functional/api/v2/compliance/policies_controller_test.rb
512
550
  - test/functional/api/v2/hosts_controller_test.rb
513
551
  - test/functional/arf_reports_controller_test.rb
514
552
  - test/functional/openscap_proxies_controller_test.rb
@@ -516,28 +554,31 @@ test_files:
516
554
  - test/helpers/arf_report_dashboard_helper_test.rb
517
555
  - test/helpers/policy_dashboard_helper_test.rb
518
556
  - test/lib/foreman_openscap/bulk_upload_test.rb
519
- - test/unit/arf_report_status_calculator_test.rb
520
- - test/unit/arf_report_test.rb
521
- - test/unit/compliance_status_test.rb
522
557
  - test/unit/concerns/host_extensions_test.rb
523
558
  - test/unit/concerns/openscap_proxy_extenstions_test.rb
524
- - test/unit/message_cleaner_test.rb
525
- - test/unit/openscap_host_test.rb
526
- - test/unit/policy_mailer_test.rb
527
- - test/unit/scap_content_test.rb
559
+ - test/unit/services/tailoring_files_proxy_check_test.rb
560
+ - test/unit/services/oval/setup_test.rb
561
+ - test/unit/services/oval/cves_test.rb
562
+ - test/unit/services/oval/setup_check_test.rb
528
563
  - test/unit/services/config_name_service_test.rb
529
- - test/unit/services/hostgroup_overrider_test.rb
530
564
  - test/unit/services/lookup_key_overrider_test.rb
531
565
  - test/unit/services/report_dashboard/data_test.rb
532
- - test/unit/services/tailoring_files_proxy_check_test.rb
533
- - test/unit/services/oval/cves_test.rb
534
- - test/unit/services/oval/setup_test.rb
566
+ - test/unit/services/hostgroup_overrider_test.rb
567
+ - test/unit/arf_report_status_calculator_test.rb
568
+ - test/unit/compliance_status_test.rb
569
+ - test/unit/policy_mailer_test.rb
570
+ - test/unit/scap_content_test.rb
535
571
  - test/unit/tailoring_file_test.rb
536
- - test/unit/policy_test.rb
537
572
  - test/unit/oval_host_test.rb
538
573
  - test/unit/oval_policy_test.rb
539
574
  - test/unit/oval_status_test.rb
575
+ - test/unit/policy_test.rb
576
+ - test/unit/arf_report_test.rb
577
+ - test/unit/message_cleaner_test.rb
578
+ - test/unit/openscap_host_test.rb
540
579
  - test/fixtures/cve_fixtures.rb
541
580
  - test/graphql/queries/oval_contents_query_test.rb
542
581
  - test/graphql/queries/oval_policies_query_test.rb
582
+ - test/graphql/queries/oval_content_query_test.rb
583
+ - test/graphql/mutations/oval_policies/delete_mutation_test.rb
543
584
  - test/test_plugin_helper.rb
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes