foreman_openscap 4.3.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) 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/helpers/arf_report_dashboard_helper.rb +2 -4
  5. data/app/helpers/compliance_hosts_helper.rb +1 -1
  6. data/app/helpers/policies_helper.rb +1 -1
  7. data/app/services/foreman_openscap/client_config/base.rb +1 -0
  8. data/app/services/foreman_openscap/client_config/puppet.rb +6 -2
  9. data/app/views/api/v2/compliance/oval_contents/destroy.json.rabl +3 -0
  10. data/app/views/arf_reports/_metrics.html.erb +4 -4
  11. data/app/views/compliance_hosts/show.html.erb +4 -6
  12. data/app/views/dashboard/_compliance_reports_breakdown_widget.html.erb +4 -3
  13. data/app/views/policy_dashboard/_policy_chart_widget.html.erb +3 -2
  14. data/db/migrate/20200117135424_migrate_port_overrides_to_int.rb +2 -1
  15. data/db/migrate/20201202110213_update_puppet_port_param_type.rb +2 -1
  16. data/lib/foreman_openscap/engine.rb +0 -7
  17. data/lib/foreman_openscap/version.rb +1 -1
  18. data/package.json +48 -0
  19. data/test/functional/api/v2/compliance/oval_reports_controller_test.rb +1 -1
  20. data/test/functional/api/v2/compliance/policies_controller_test.rb +2 -0
  21. data/test/helpers/arf_report_dashboard_helper_test.rb +9 -10
  22. data/test/helpers/policy_dashboard_helper_test.rb +1 -1
  23. data/test/test_plugin_helper.rb +9 -4
  24. data/test/unit/policy_test.rb +1 -1
  25. data/test/unit/services/config_name_service_test.rb +1 -0
  26. data/test/unit/services/hostgroup_overrider_test.rb +2 -1
  27. data/test/unit/services/lookup_key_overrider_test.rb +4 -1
  28. data/webpack/components/EmptyState.js +73 -0
  29. data/webpack/components/IndexLayout.js +35 -0
  30. data/webpack/components/IndexLayout.scss +3 -0
  31. data/webpack/components/IndexTable/IndexTableHelper.js +9 -0
  32. data/webpack/components/IndexTable/index.js +65 -0
  33. data/webpack/components/RuleSeverity/RuleSeverity.scss +3 -0
  34. data/webpack/components/RuleSeverity/RuleSeverity.test.js +13 -0
  35. data/webpack/components/RuleSeverity/__snapshots__/RuleSeverity.test.js.snap +41 -0
  36. data/webpack/components/RuleSeverity/i_severity-critical.svg +61 -0
  37. data/webpack/components/RuleSeverity/i_severity-high.svg +61 -0
  38. data/webpack/components/RuleSeverity/i_severity-low.svg +62 -0
  39. data/webpack/components/RuleSeverity/i_severity-med.svg +62 -0
  40. data/webpack/components/RuleSeverity/i_unknown.svg +33 -0
  41. data/webpack/components/RuleSeverity/index.js +33 -0
  42. data/webpack/components/withLoading.js +87 -0
  43. data/webpack/global_index.js +5 -0
  44. data/webpack/graphql/queries/currentUserAttributes.gql +11 -0
  45. data/webpack/graphql/queries/cves.gql +23 -0
  46. data/webpack/graphql/queries/ovalContents.gql +16 -0
  47. data/webpack/graphql/queries/ovalPolicies.gql +17 -0
  48. data/webpack/graphql/queries/ovalPolicy.gql +26 -0
  49. data/webpack/helpers/commonHelper.js +1 -0
  50. data/webpack/helpers/globalIdHelper.js +13 -0
  51. data/webpack/helpers/pageParamsHelper.js +31 -0
  52. data/webpack/helpers/pathsHelper.js +22 -0
  53. data/webpack/helpers/permissionsHelper.js +42 -0
  54. data/webpack/helpers/tableHelper.js +9 -0
  55. data/webpack/index.js +8 -0
  56. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js +46 -0
  57. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js +46 -0
  58. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js +120 -0
  59. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js +101 -0
  60. data/webpack/routes/OvalContents/OvalContentsIndex/index.js +7 -0
  61. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js +47 -0
  62. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js +44 -0
  63. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js +95 -0
  64. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js +98 -0
  65. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js +7 -0
  66. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js +49 -0
  67. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js +63 -0
  68. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js +78 -0
  69. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js +39 -0
  70. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js +87 -0
  71. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js +129 -0
  72. data/webpack/routes/OvalPolicies/OvalPoliciesShow/index.js +36 -0
  73. data/webpack/routes/routes.js +28 -0
  74. data/webpack/testHelper.js +96 -0
  75. metadata +56 -7
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useQuery } from '@apollo/client';
4
+
5
+ import { translate as __ } from 'foremanReact/common/I18n';
6
+
7
+ import OvalPoliciesShow from './OvalPoliciesShow';
8
+ import { encodeId } from '../../../helpers/globalIdHelper';
9
+
10
+ import ovalPolicy from '../../../graphql/queries/ovalPolicy.gql';
11
+
12
+ const WrappedOvalPoliciesShow = props => {
13
+ const id = encodeId('ForemanOpenscap::OvalPolicy', props.match.params.id);
14
+
15
+ const useFetchFn = componentProps =>
16
+ useQuery(ovalPolicy, { variables: { id } });
17
+
18
+ const renameData = data => ({ policy: data.ovalPolicy });
19
+
20
+ return (
21
+ <OvalPoliciesShow
22
+ {...props}
23
+ fetchFn={useFetchFn}
24
+ renameData={renameData}
25
+ resultPath="ovalPolicy"
26
+ emptyStateTitle={__('No OVAL Policy found')}
27
+ permissions={['view_oval_policies']}
28
+ />
29
+ );
30
+ };
31
+
32
+ WrappedOvalPoliciesShow.propTypes = {
33
+ match: PropTypes.object.isRequired,
34
+ };
35
+
36
+ export default WrappedOvalPoliciesShow;
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import OvalContentsIndex from './OvalContents/OvalContentsIndex';
3
+ import OvalPoliciesIndex from './OvalPolicies/OvalPoliciesIndex';
4
+ import OvalPoliciesShow from './OvalPolicies/OvalPoliciesShow';
5
+
6
+ import {
7
+ ovalContentsPath,
8
+ ovalPoliciesPath,
9
+ ovalPoliciesShowPath,
10
+ } from '../helpers/pathsHelper';
11
+
12
+ export default [
13
+ {
14
+ path: ovalContentsPath,
15
+ render: props => <OvalContentsIndex {...props} />,
16
+ exact: true,
17
+ },
18
+ {
19
+ path: ovalPoliciesPath,
20
+ render: props => <OvalPoliciesIndex {...props} />,
21
+ exact: true,
22
+ },
23
+ {
24
+ path: ovalPoliciesShowPath,
25
+ render: props => <OvalPoliciesShow {...props} />,
26
+ exact: true,
27
+ },
28
+ ];
@@ -0,0 +1,96 @@
1
+ import React from 'react';
2
+ import { MockedProvider } from '@apollo/react-testing';
3
+ import { MemoryRouter } from 'react-router-dom';
4
+ import { getForemanContext } from 'foremanReact/Root/Context/ForemanContext';
5
+
6
+ export const withRouter = Component => props => (
7
+ <MemoryRouter>
8
+ <Component {...props} />
9
+ </MemoryRouter>
10
+ );
11
+
12
+ export const withMockedProvider = Component => props => {
13
+ const ForemanContext = getForemanContext(ctx);
14
+ // eslint-disable-next-line react/prop-types
15
+ const { mocks, ...rest } = props;
16
+
17
+ const ctx = {
18
+ metadata: {
19
+ UISettings: {
20
+ perPage: 20,
21
+ },
22
+ },
23
+ };
24
+
25
+ return (
26
+ <ForemanContext.Provider value={ctx}>
27
+ <MockedProvider mocks={mocks}>
28
+ <Component {...rest} />
29
+ </MockedProvider>
30
+ </ForemanContext.Provider>
31
+ );
32
+ };
33
+
34
+ // use to resolve async mock requests for apollo MockedProvider
35
+ export const tick = () => new Promise(resolve => setTimeout(resolve, 0));
36
+
37
+ export const historyMock = {
38
+ location: {
39
+ search: '',
40
+ },
41
+ };
42
+
43
+ export const admin = {
44
+ __typename: 'User',
45
+ id: 'MDE6VXNlci00',
46
+ login: 'admin',
47
+ admin: true,
48
+ permissions: {
49
+ nodes: [],
50
+ },
51
+ };
52
+
53
+ export const userFactory = (login, permissions = []) => ({
54
+ __typename: 'User',
55
+ id: 'MDE6VXNlci01',
56
+ login,
57
+ admin: false,
58
+ permissions: {
59
+ nodes: permissions,
60
+ },
61
+ });
62
+
63
+ export const intruder = userFactory('intruder', [
64
+ {
65
+ __typename: 'Permission',
66
+ id: 'MDE6UGVybWlzc2lvbi0x',
67
+ name: 'view_architectures',
68
+ },
69
+ ]);
70
+
71
+ export const mockFactory = (resultName, query) => (
72
+ variables,
73
+ modelResults,
74
+ { errors = [], currentUser = null }
75
+ ) => {
76
+ const mock = {
77
+ request: {
78
+ query,
79
+ variables,
80
+ },
81
+ result: {
82
+ data: {
83
+ [resultName]: modelResults,
84
+ },
85
+ },
86
+ };
87
+
88
+ if (errors.length !== 0) {
89
+ mock.result.errors = errors;
90
+ }
91
+
92
+ if (currentUser) {
93
+ mock.result.data.currentUser = currentUser;
94
+ }
95
+ return [mock];
96
+ };
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.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - slukasik@redhat.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-18 00:00:00.000000000 Z
11
+ date: 2021-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -152,6 +152,7 @@ files:
152
152
  - app/views/api/v2/compliance/common/_org.json.rabl
153
153
  - app/views/api/v2/compliance/oval_contents/base.json.rabl
154
154
  - app/views/api/v2/compliance/oval_contents/create.json.rabl
155
+ - app/views/api/v2/compliance/oval_contents/destroy.json.rabl
155
156
  - app/views/api/v2/compliance/oval_contents/index.json.rabl
156
157
  - app/views/api/v2/compliance/oval_contents/show.json.rabl
157
158
  - app/views/api/v2/compliance/oval_contents/sync.json.rabl
@@ -354,6 +355,7 @@ files:
354
355
  - locale/zh_TW/LC_MESSAGES/foreman_openscap.mo
355
356
  - locale/zh_TW/foreman_openscap.edit.po
356
357
  - locale/zh_TW/foreman_openscap.po
358
+ - package.json
357
359
  - test/factories/arf_report_factory.rb
358
360
  - test/factories/asset_factory.rb
359
361
  - test/factories/compliance_host_factory.rb
@@ -412,6 +414,53 @@ files:
412
414
  - test/unit/services/report_dashboard/data_test.rb
413
415
  - test/unit/services/tailoring_files_proxy_check_test.rb
414
416
  - test/unit/tailoring_file_test.rb
417
+ - webpack/components/EmptyState.js
418
+ - webpack/components/IndexLayout.js
419
+ - webpack/components/IndexLayout.scss
420
+ - webpack/components/IndexTable/IndexTableHelper.js
421
+ - webpack/components/IndexTable/index.js
422
+ - webpack/components/RuleSeverity/RuleSeverity.scss
423
+ - webpack/components/RuleSeverity/RuleSeverity.test.js
424
+ - webpack/components/RuleSeverity/__snapshots__/RuleSeverity.test.js.snap
425
+ - webpack/components/RuleSeverity/i_severity-critical.svg
426
+ - webpack/components/RuleSeverity/i_severity-high.svg
427
+ - webpack/components/RuleSeverity/i_severity-low.svg
428
+ - webpack/components/RuleSeverity/i_severity-med.svg
429
+ - webpack/components/RuleSeverity/i_unknown.svg
430
+ - webpack/components/RuleSeverity/index.js
431
+ - webpack/components/withLoading.js
432
+ - webpack/global_index.js
433
+ - webpack/graphql/queries/currentUserAttributes.gql
434
+ - webpack/graphql/queries/cves.gql
435
+ - webpack/graphql/queries/ovalContents.gql
436
+ - webpack/graphql/queries/ovalPolicies.gql
437
+ - webpack/graphql/queries/ovalPolicy.gql
438
+ - webpack/helpers/commonHelper.js
439
+ - webpack/helpers/globalIdHelper.js
440
+ - webpack/helpers/pageParamsHelper.js
441
+ - webpack/helpers/pathsHelper.js
442
+ - webpack/helpers/permissionsHelper.js
443
+ - webpack/helpers/tableHelper.js
444
+ - webpack/index.js
445
+ - webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js
446
+ - webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js
447
+ - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js
448
+ - webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js
449
+ - webpack/routes/OvalContents/OvalContentsIndex/index.js
450
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js
451
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js
452
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js
453
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js
454
+ - webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js
455
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js
456
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js
457
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js
458
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js
459
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js
460
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js
461
+ - webpack/routes/OvalPolicies/OvalPoliciesShow/index.js
462
+ - webpack/routes/routes.js
463
+ - webpack/testHelper.js
415
464
  homepage: https://github.com/theforeman/foreman_openscap
416
465
  licenses:
417
466
  - GPL-3.0
@@ -454,7 +503,6 @@ test_files:
454
503
  - test/files/tailoring_files/ssg-firefox-ds-tailoring-2.xml
455
504
  - test/files/tailoring_files/ssg-firefox-ds-tailoring.xml
456
505
  - test/files/oval_contents/ansible-2.9.oval.xml.bz2
457
- - test/functional/api/v2/compliance/policies_controller_test.rb
458
506
  - test/functional/api/v2/compliance/scap_content_profiles_controller_test.rb
459
507
  - test/functional/api/v2/compliance/scap_contents_controller_test.rb
460
508
  - test/functional/api/v2/compliance/tailoring_files_controller_test.rb
@@ -462,6 +510,7 @@ test_files:
462
510
  - test/functional/api/v2/compliance/oval_contents_controller_test.rb
463
511
  - test/functional/api/v2/compliance/oval_policies_controller_test.rb
464
512
  - test/functional/api/v2/compliance/oval_reports_controller_test.rb
513
+ - test/functional/api/v2/compliance/policies_controller_test.rb
465
514
  - test/functional/api/v2/hosts_controller_test.rb
466
515
  - test/functional/arf_reports_controller_test.rb
467
516
  - test/functional/openscap_proxies_controller_test.rb
@@ -478,18 +527,18 @@ test_files:
478
527
  - test/unit/openscap_host_test.rb
479
528
  - test/unit/policy_mailer_test.rb
480
529
  - test/unit/scap_content_test.rb
481
- - test/unit/services/config_name_service_test.rb
482
- - test/unit/services/hostgroup_overrider_test.rb
483
- - test/unit/services/lookup_key_overrider_test.rb
484
530
  - test/unit/services/report_dashboard/data_test.rb
485
531
  - test/unit/services/tailoring_files_proxy_check_test.rb
486
532
  - test/unit/services/oval/cves_test.rb
487
533
  - test/unit/services/oval/setup_test.rb
534
+ - test/unit/services/config_name_service_test.rb
535
+ - test/unit/services/hostgroup_overrider_test.rb
536
+ - test/unit/services/lookup_key_overrider_test.rb
488
537
  - test/unit/tailoring_file_test.rb
489
- - test/unit/policy_test.rb
490
538
  - test/unit/oval_host_test.rb
491
539
  - test/unit/oval_policy_test.rb
492
540
  - test/unit/oval_status_test.rb
541
+ - test/unit/policy_test.rb
493
542
  - test/fixtures/cve_fixtures.rb
494
543
  - test/graphql/queries/oval_contents_query_test.rb
495
544
  - test/graphql/queries/oval_policies_query_test.rb