foreman_openscap 4.3.2 → 5.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/compliance/arf_reports_controller.rb +0 -6
  3. data/app/controllers/api/v2/compliance/oval_policies_controller.rb +1 -1
  4. data/app/graphql/mutations/oval_contents/delete.rb +9 -0
  5. data/app/graphql/mutations/oval_policies/create.rb +33 -0
  6. data/app/graphql/mutations/oval_policies/delete.rb +9 -0
  7. data/app/graphql/mutations/oval_policies/update.rb +15 -0
  8. data/app/graphql/types/oval_check.rb +11 -0
  9. data/app/graphql/types/oval_content.rb +2 -0
  10. data/app/graphql/types/oval_policy.rb +3 -0
  11. data/app/helpers/arf_report_dashboard_helper.rb +2 -4
  12. data/app/helpers/compliance_hosts_helper.rb +1 -1
  13. data/app/helpers/policies_helper.rb +2 -2
  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/oval_content.rb +2 -0
  18. data/app/services/foreman_openscap/client_config/base.rb +1 -0
  19. data/app/services/foreman_openscap/client_config/puppet.rb +6 -2
  20. data/app/services/foreman_openscap/oval/configure.rb +16 -13
  21. data/app/services/foreman_openscap/oval/setup.rb +5 -5
  22. data/app/services/foreman_openscap/oval/setup_check.rb +5 -2
  23. data/app/views/api/v2/compliance/oval_contents/destroy.json.rabl +3 -0
  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 +6 -7
  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/helpers/toastsHelper.js +3 -0
  74. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js +26 -0
  75. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js +50 -5
  76. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.fixtures.js +105 -0
  77. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.test.js +124 -0
  78. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js +98 -77
  79. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js +53 -6
  80. data/webpack/routes/OvalContents/OvalContentsIndex/index.js +7 -1
  81. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.js +138 -0
  82. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.scss +3 -0
  83. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNewHelper.js +73 -0
  84. data/webpack/routes/OvalContents/OvalContentsNew/__tests__/OvalContentsNew.test.js +104 -0
  85. data/webpack/routes/OvalContents/OvalContentsNew/index.js +13 -0
  86. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.js +62 -0
  87. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.test.js +45 -0
  88. data/{locale/de/foreman_openscap.edit.po → webpack/routes/OvalContents/OvalContentsShow/OvalContentsShowHelper.js} +0 -0
  89. data/webpack/routes/OvalContents/OvalContentsShow/index.js +35 -0
  90. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js +18 -2
  91. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js +34 -4
  92. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.fixtures.js +101 -0
  93. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.test.js +117 -0
  94. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js +71 -21
  95. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js +34 -2
  96. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js +7 -1
  97. data/webpack/routes/OvalPolicies/OvalPoliciesNew/HostgroupSelect.js +135 -0
  98. data/webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyForm.js +119 -0
  99. data/webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyFormHelpers.js +107 -0
  100. data/webpack/routes/OvalPolicies/OvalPoliciesNew/OvalPoliciesNew.js +32 -0
  101. data/webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.fixtures.js +147 -0
  102. data/webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.test.js +172 -0
  103. data/webpack/routes/OvalPolicies/OvalPoliciesNew/index.js +11 -0
  104. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js +1 -0
  105. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js +2 -2
  106. data/webpack/routes/OvalPolicies/OvalPoliciesShow/DetailsTab.js +87 -0
  107. data/webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTab.js +49 -0
  108. data/webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTable.js +38 -0
  109. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js +15 -11
  110. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js +80 -2
  111. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.fixtures.js +48 -0
  112. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.test.js +202 -0
  113. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js +50 -4
  114. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js +64 -4
  115. data/webpack/routes/OvalPolicies/OvalPoliciesShow/index.js +4 -0
  116. data/webpack/routes/routes.js +21 -0
  117. data/webpack/testHelper.js +64 -2
  118. metadata +80 -37
  119. data/locale/en_GB/foreman_openscap.edit.po +0 -0
  120. data/locale/es/foreman_openscap.edit.po +0 -0
  121. data/locale/fr/foreman_openscap.edit.po +0 -0
  122. data/locale/gl/foreman_openscap.edit.po +0 -0
  123. data/locale/it/foreman_openscap.edit.po +0 -0
  124. data/locale/ja/foreman_openscap.edit.po +0 -0
  125. data/locale/ko/foreman_openscap.edit.po +0 -0
  126. data/locale/pt_BR/foreman_openscap.edit.po +0 -0
  127. data/locale/ru/foreman_openscap.edit.po +0 -0
  128. data/locale/sv_SE/foreman_openscap.edit.po +0 -0
  129. data/locale/zh_CN/foreman_openscap.edit.po +0 -0
  130. 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.2
4
+ version: 5.1.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-06-09 00:00:00.000000000 Z
11
+ date: 2022-02-07 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
@@ -152,6 +157,7 @@ files:
152
157
  - app/views/api/v2/compliance/common/_org.json.rabl
153
158
  - app/views/api/v2/compliance/oval_contents/base.json.rabl
154
159
  - app/views/api/v2/compliance/oval_contents/create.json.rabl
160
+ - app/views/api/v2/compliance/oval_contents/destroy.json.rabl
155
161
  - app/views/api/v2/compliance/oval_contents/index.json.rabl
156
162
  - app/views/api/v2/compliance/oval_contents/show.json.rabl
157
163
  - app/views/api/v2/compliance/oval_contents/sync.json.rabl
@@ -300,6 +306,7 @@ files:
300
306
  - db/migrate/20201217130800_add_has_errata_to_cve.rb
301
307
  - db/migrate/20201217161511_add_url_to_oval_content.rb
302
308
  - db/migrate/20210409095625_add_oval_policy_reference_to_cve.rb
309
+ - db/migrate/20210819143316_drop_unused_tables.rb
303
310
  - db/seeds.d/75-job_templates.rb
304
311
  - db/seeds.d/openscap_feature.rb
305
312
  - db/seeds.d/openscap_policy_notification.rb
@@ -314,45 +321,32 @@ files:
314
321
  - locale/Makefile
315
322
  - locale/action_names.rb
316
323
  - locale/de/LC_MESSAGES/foreman_openscap.mo
317
- - locale/de/foreman_openscap.edit.po
318
324
  - locale/de/foreman_openscap.po
319
325
  - locale/en_GB/LC_MESSAGES/foreman_openscap.mo
320
- - locale/en_GB/foreman_openscap.edit.po
321
326
  - locale/en_GB/foreman_openscap.po
322
327
  - locale/es/LC_MESSAGES/foreman_openscap.mo
323
- - locale/es/foreman_openscap.edit.po
324
328
  - locale/es/foreman_openscap.po
325
329
  - locale/foreman_openscap.pot
326
330
  - locale/fr/LC_MESSAGES/foreman_openscap.mo
327
- - locale/fr/foreman_openscap.edit.po
328
331
  - locale/fr/foreman_openscap.po
329
332
  - locale/gl/LC_MESSAGES/foreman_openscap.mo
330
- - locale/gl/foreman_openscap.edit.po
331
333
  - locale/gl/foreman_openscap.po
332
334
  - locale/it/LC_MESSAGES/foreman_openscap.mo
333
- - locale/it/foreman_openscap.edit.po
334
335
  - locale/it/foreman_openscap.po
335
336
  - locale/ja/LC_MESSAGES/foreman_openscap.mo
336
- - locale/ja/foreman_openscap.edit.po
337
337
  - locale/ja/foreman_openscap.po
338
338
  - locale/ko/LC_MESSAGES/foreman_openscap.mo
339
- - locale/ko/foreman_openscap.edit.po
340
339
  - locale/ko/foreman_openscap.po
341
340
  - locale/pt_BR/LC_MESSAGES/foreman_openscap.mo
342
- - locale/pt_BR/foreman_openscap.edit.po
343
341
  - locale/pt_BR/foreman_openscap.po
344
342
  - locale/ru/LC_MESSAGES/foreman_openscap.mo
345
- - locale/ru/foreman_openscap.edit.po
346
343
  - locale/ru/foreman_openscap.po
347
344
  - locale/sv_SE/LC_MESSAGES/foreman_openscap.mo
348
- - locale/sv_SE/foreman_openscap.edit.po
349
345
  - locale/sv_SE/foreman_openscap.po
350
346
  - locale/zanata.xml
351
347
  - locale/zh_CN/LC_MESSAGES/foreman_openscap.mo
352
- - locale/zh_CN/foreman_openscap.edit.po
353
348
  - locale/zh_CN/foreman_openscap.po
354
349
  - locale/zh_TW/LC_MESSAGES/foreman_openscap.mo
355
- - locale/zh_TW/foreman_openscap.edit.po
356
350
  - locale/zh_TW/foreman_openscap.po
357
351
  - package.json
358
352
  - test/factories/arf_report_factory.rb
@@ -386,6 +380,8 @@ files:
386
380
  - test/functional/arf_reports_controller_test.rb
387
381
  - test/functional/openscap_proxies_controller_test.rb
388
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
389
385
  - test/graphql/queries/oval_contents_query_test.rb
390
386
  - test/graphql/queries/oval_policies_query_test.rb
391
387
  - test/helpers/arf_report_dashboard_helper_test.rb
@@ -409,15 +405,21 @@ files:
409
405
  - test/unit/services/hostgroup_overrider_test.rb
410
406
  - test/unit/services/lookup_key_overrider_test.rb
411
407
  - test/unit/services/oval/cves_test.rb
408
+ - test/unit/services/oval/setup_check_test.rb
412
409
  - test/unit/services/oval/setup_test.rb
413
410
  - test/unit/services/report_dashboard/data_test.rb
414
411
  - test/unit/services/tailoring_files_proxy_check_test.rb
415
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
416
417
  - webpack/components/EmptyState.js
417
418
  - webpack/components/IndexLayout.js
418
419
  - webpack/components/IndexLayout.scss
419
420
  - webpack/components/IndexTable/IndexTableHelper.js
420
421
  - webpack/components/IndexTable/index.js
422
+ - webpack/components/LinkButton.js
421
423
  - webpack/components/RuleSeverity/RuleSeverity.scss
422
424
  - webpack/components/RuleSeverity/RuleSeverity.test.js
423
425
  - webpack/components/RuleSeverity/__snapshots__/RuleSeverity.test.js.snap
@@ -427,32 +429,70 @@ files:
427
429
  - webpack/components/RuleSeverity/i_severity-med.svg
428
430
  - webpack/components/RuleSeverity/i_unknown.svg
429
431
  - webpack/components/RuleSeverity/index.js
432
+ - webpack/components/withDeleteModal.js
430
433
  - webpack/components/withLoading.js
431
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
432
440
  - webpack/graphql/queries/cves.gql
441
+ - webpack/graphql/queries/hostgroups.gql
442
+ - webpack/graphql/queries/ovalContent.gql
433
443
  - webpack/graphql/queries/ovalContents.gql
434
444
  - webpack/graphql/queries/ovalPolicies.gql
435
445
  - webpack/graphql/queries/ovalPolicy.gql
436
446
  - webpack/helpers/commonHelper.js
447
+ - webpack/helpers/formFieldsHelper.js
437
448
  - webpack/helpers/globalIdHelper.js
449
+ - webpack/helpers/mutationHelper.js
438
450
  - webpack/helpers/pageParamsHelper.js
439
451
  - webpack/helpers/pathsHelper.js
452
+ - webpack/helpers/permissionsHelper.js
440
453
  - webpack/helpers/tableHelper.js
454
+ - webpack/helpers/toastHelper.js
455
+ - webpack/helpers/toastsHelper.js
441
456
  - webpack/index.js
442
457
  - webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js
443
458
  - webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js
459
+ - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.fixtures.js
460
+ - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.test.js
444
461
  - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js
445
462
  - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js
446
463
  - webpack/routes/OvalContents/OvalContentsIndex/index.js
464
+ - webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.js
465
+ - webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.scss
466
+ - webpack/routes/OvalContents/OvalContentsNew/OvalContentsNewHelper.js
467
+ - webpack/routes/OvalContents/OvalContentsNew/__tests__/OvalContentsNew.test.js
468
+ - webpack/routes/OvalContents/OvalContentsNew/index.js
469
+ - webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.js
470
+ - webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.test.js
471
+ - webpack/routes/OvalContents/OvalContentsShow/OvalContentsShowHelper.js
472
+ - webpack/routes/OvalContents/OvalContentsShow/index.js
447
473
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js
448
474
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js
475
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.fixtures.js
476
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.test.js
449
477
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js
450
478
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js
451
479
  - webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js
480
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/HostgroupSelect.js
481
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyForm.js
482
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyFormHelpers.js
483
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/OvalPoliciesNew.js
484
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.fixtures.js
485
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.test.js
486
+ - webpack/routes/OvalPolicies/OvalPoliciesNew/index.js
452
487
  - webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js
453
488
  - webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js
489
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/DetailsTab.js
490
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTab.js
491
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTable.js
454
492
  - webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js
455
493
  - webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js
494
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.fixtures.js
495
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.test.js
456
496
  - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js
457
497
  - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js
458
498
  - webpack/routes/OvalPolicies/OvalPoliciesShow/index.js
@@ -462,7 +502,7 @@ homepage: https://github.com/theforeman/foreman_openscap
462
502
  licenses:
463
503
  - GPL-3.0
464
504
  metadata: {}
465
- post_install_message:
505
+ post_install_message:
466
506
  rdoc_options: []
467
507
  require_paths:
468
508
  - lib
@@ -477,41 +517,46 @@ required_rubygems_version: !ruby/object:Gem::Requirement
477
517
  - !ruby/object:Gem::Version
478
518
  version: '0'
479
519
  requirements: []
480
- rubygems_version: 3.1.2
481
- signing_key:
520
+ rubygems_version: 3.1.6
521
+ signing_key:
482
522
  specification_version: 4
483
523
  summary: Foreman plug-in for displaying OpenSCAP audit reports
484
524
  test_files:
485
525
  - test/factories/arf_report_factory.rb
486
526
  - test/factories/asset_factory.rb
487
- - test/factories/policy_arf_report_factory.rb
488
- - test/factories/policy_factory.rb
489
- - test/factories/scap_content_related.rb
490
- - test/factories/compliance_log_factory.rb
491
527
  - test/factories/compliance_host_factory.rb
528
+ - test/factories/compliance_log_factory.rb
492
529
  - test/factories/oval_content_factory.rb
493
530
  - test/factories/oval_policy_factory.rb
531
+ - test/factories/policy_arf_report_factory.rb
532
+ - test/factories/policy_factory.rb
533
+ - test/factories/scap_content_related.rb
494
534
  - test/files/arf_report/arf_report.bz2
495
535
  - test/files/arf_report/arf_report.html
496
536
  - test/files/arf_report/arf_report.json
497
537
  - test/files/arf_report/arf_report_msg_desc_changed.json
498
538
  - test/files/arf_report/arf_report_msg_value_changed.json
539
+ - test/files/oval_contents/ansible-2.9.oval.xml.bz2
499
540
  - test/files/scap_contents/ssg-fedora-ds.xml
500
541
  - test/files/tailoring_files/ssg-firefox-ds-tailoring-2.xml
501
542
  - test/files/tailoring_files/ssg-firefox-ds-tailoring.xml
502
- - test/files/oval_contents/ansible-2.9.oval.xml.bz2
503
- - test/functional/api/v2/compliance/policies_controller_test.rb
504
- - test/functional/api/v2/compliance/scap_content_profiles_controller_test.rb
505
- - test/functional/api/v2/compliance/scap_contents_controller_test.rb
506
- - test/functional/api/v2/compliance/tailoring_files_controller_test.rb
543
+ - test/fixtures/cve_fixtures.rb
507
544
  - test/functional/api/v2/compliance/arf_reports_controller_test.rb
508
545
  - test/functional/api/v2/compliance/oval_contents_controller_test.rb
509
546
  - test/functional/api/v2/compliance/oval_policies_controller_test.rb
510
547
  - test/functional/api/v2/compliance/oval_reports_controller_test.rb
548
+ - test/functional/api/v2/compliance/policies_controller_test.rb
549
+ - test/functional/api/v2/compliance/scap_content_profiles_controller_test.rb
550
+ - test/functional/api/v2/compliance/scap_contents_controller_test.rb
551
+ - test/functional/api/v2/compliance/tailoring_files_controller_test.rb
511
552
  - test/functional/api/v2/hosts_controller_test.rb
512
553
  - test/functional/arf_reports_controller_test.rb
513
554
  - test/functional/openscap_proxies_controller_test.rb
514
555
  - test/functional/tailoring_files_controller_test.rb
556
+ - test/graphql/mutations/oval_policies/delete_mutation_test.rb
557
+ - test/graphql/queries/oval_content_query_test.rb
558
+ - test/graphql/queries/oval_contents_query_test.rb
559
+ - test/graphql/queries/oval_policies_query_test.rb
515
560
  - test/helpers/arf_report_dashboard_helper_test.rb
516
561
  - test/helpers/policy_dashboard_helper_test.rb
517
562
  - test/lib/foreman_openscap/bulk_upload_test.rb
@@ -522,21 +567,19 @@ test_files:
522
567
  - test/unit/concerns/openscap_proxy_extenstions_test.rb
523
568
  - test/unit/message_cleaner_test.rb
524
569
  - test/unit/openscap_host_test.rb
570
+ - test/unit/oval_host_test.rb
571
+ - test/unit/oval_policy_test.rb
572
+ - test/unit/oval_status_test.rb
525
573
  - test/unit/policy_mailer_test.rb
574
+ - test/unit/policy_test.rb
526
575
  - test/unit/scap_content_test.rb
527
576
  - test/unit/services/config_name_service_test.rb
528
577
  - test/unit/services/hostgroup_overrider_test.rb
529
578
  - test/unit/services/lookup_key_overrider_test.rb
530
- - test/unit/services/report_dashboard/data_test.rb
531
- - test/unit/services/tailoring_files_proxy_check_test.rb
532
579
  - test/unit/services/oval/cves_test.rb
580
+ - test/unit/services/oval/setup_check_test.rb
533
581
  - test/unit/services/oval/setup_test.rb
582
+ - test/unit/services/report_dashboard/data_test.rb
583
+ - test/unit/services/tailoring_files_proxy_check_test.rb
534
584
  - test/unit/tailoring_file_test.rb
535
- - test/unit/policy_test.rb
536
- - test/unit/oval_host_test.rb
537
- - test/unit/oval_policy_test.rb
538
- - test/unit/oval_status_test.rb
539
- - test/fixtures/cve_fixtures.rb
540
- - test/graphql/queries/oval_contents_query_test.rb
541
- - test/graphql/queries/oval_policies_query_test.rb
542
585
  - 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