@webiny/app-audit-logs 5.38.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/components/Text.d.ts +6 -0
- package/components/Text.js +16 -0
- package/components/Text.js.map +1 -0
- package/config/list/AuditLogsListConfig.d.ts +22 -0
- package/config/list/AuditLogsListConfig.js +34 -0
- package/config/list/AuditLogsListConfig.js.map +1 -0
- package/config/list/Browser/Filter.d.ts +17 -0
- package/config/list/Browser/Filter.js +54 -0
- package/config/list/Browser/Filter.js.map +1 -0
- package/config/list/Browser/FiltersToWhere.d.ts +7 -0
- package/config/list/Browser/FiltersToWhere.js +23 -0
- package/config/list/Browser/FiltersToWhere.js.map +1 -0
- package/config/list/Browser/index.d.ts +17 -0
- package/config/list/Browser/index.js +15 -0
- package/config/list/Browser/index.js.map +1 -0
- package/config/list/index.d.ts +1 -0
- package/config/list/index.js +18 -0
- package/config/list/index.js.map +1 -0
- package/constants/index.d.ts +1 -0
- package/constants/index.js +10 -0
- package/constants/index.js.map +1 -0
- package/graphql.d.ts +1 -0
- package/graphql.js +15 -0
- package/graphql.js.map +1 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +18 -0
- package/hooks/index.js.map +1 -0
- package/hooks/useAuditLogsList.d.ts +21 -0
- package/hooks/useAuditLogsList.js +117 -0
- package/hooks/useAuditLogsList.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +53 -0
- package/index.js.map +1 -0
- package/package.json +59 -0
- package/plugins/permissionRenderer/AuditLogsPermissions.d.ts +8 -0
- package/plugins/permissionRenderer/AuditLogsPermissions.js +118 -0
- package/plugins/permissionRenderer/AuditLogsPermissions.js.map +1 -0
- package/plugins/permissionRenderer/index.d.ts +2 -0
- package/plugins/permissionRenderer/index.js +40 -0
- package/plugins/permissionRenderer/index.js.map +1 -0
- package/types.d.ts +19 -0
- package/types.js +7 -0
- package/types.js.map +1 -0
- package/utils/transformCmsContentEntriesToRecordEntries.d.ts +25 -0
- package/utils/transformCmsContentEntriesToRecordEntries.js +51 -0
- package/utils/transformCmsContentEntriesToRecordEntries.js.map +1 -0
- package/views/Logs/Filters/FilterByAction.d.ts +2 -0
- package/views/Logs/Filters/FilterByAction.js +64 -0
- package/views/Logs/Filters/FilterByAction.js.map +1 -0
- package/views/Logs/Filters/FilterByApp.d.ts +2 -0
- package/views/Logs/Filters/FilterByApp.js +46 -0
- package/views/Logs/Filters/FilterByApp.js.map +1 -0
- package/views/Logs/Filters/FilterByEntity.d.ts +2 -0
- package/views/Logs/Filters/FilterByEntity.js +62 -0
- package/views/Logs/Filters/FilterByEntity.js.map +1 -0
- package/views/Logs/Filters/FilterByInitiator.d.ts +2 -0
- package/views/Logs/Filters/FilterByInitiator.js +51 -0
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -0
- package/views/Logs/Filters/FilterByTimestamp.d.ts +2 -0
- package/views/Logs/Filters/FilterByTimestamp.js +48 -0
- package/views/Logs/Filters/FilterByTimestamp.js.map +1 -0
- package/views/Logs/Filters/Filters.d.ts +8 -0
- package/views/Logs/Filters/Filters.js +43 -0
- package/views/Logs/Filters/Filters.js.map +1 -0
- package/views/Logs/Filters/index.d.ts +6 -0
- package/views/Logs/Filters/index.js +73 -0
- package/views/Logs/Filters/index.js.map +1 -0
- package/views/Logs/Filters/styled.d.ts +7 -0
- package/views/Logs/Filters/styled.js +15 -0
- package/views/Logs/Filters/styled.js.map +1 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.d.ts +8 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js +44 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -0
- package/views/Logs/Header/ButtonFilters/index.d.ts +1 -0
- package/views/Logs/Header/ButtonFilters/index.js +18 -0
- package/views/Logs/Header/ButtonFilters/index.js.map +1 -0
- package/views/Logs/Header/Header.d.ts +11 -0
- package/views/Logs/Header/Header.js +55 -0
- package/views/Logs/Header/Header.js.map +1 -0
- package/views/Logs/Header/index.d.ts +1 -0
- package/views/Logs/Header/index.js +18 -0
- package/views/Logs/Header/index.js.map +1 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.d.ts +9 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.js +32 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -0
- package/views/Logs/LoadMoreButton/index.d.ts +1 -0
- package/views/Logs/LoadMoreButton/index.js +18 -0
- package/views/Logs/LoadMoreButton/index.js.map +1 -0
- package/views/Logs/LoadMoreButton/styled.d.ts +7 -0
- package/views/Logs/LoadMoreButton/styled.js +15 -0
- package/views/Logs/LoadMoreButton/styled.js.map +1 -0
- package/views/Logs/LoadingMore/index.d.ts +2 -0
- package/views/Logs/LoadingMore/index.js +26 -0
- package/views/Logs/LoadingMore/index.js.map +1 -0
- package/views/Logs/LoadingMore/styled.d.ts +11 -0
- package/views/Logs/LoadingMore/styled.js +20 -0
- package/views/Logs/LoadingMore/styled.js.map +1 -0
- package/views/Logs/Logs.d.ts +3 -0
- package/views/Logs/Logs.js +108 -0
- package/views/Logs/Logs.js.map +1 -0
- package/views/Logs/LogsModule.d.ts +2 -0
- package/views/Logs/LogsModule.js +32 -0
- package/views/Logs/LogsModule.js.map +1 -0
- package/views/Logs/Preview/Preview.d.ts +9 -0
- package/views/Logs/Preview/Preview.js +97 -0
- package/views/Logs/Preview/Preview.js.map +1 -0
- package/views/Logs/Preview/index.d.ts +1 -0
- package/views/Logs/Preview/index.js +18 -0
- package/views/Logs/Preview/index.js.map +1 -0
- package/views/Logs/Preview/styled.d.ts +8 -0
- package/views/Logs/Preview/styled.js +18 -0
- package/views/Logs/Preview/styled.js.map +1 -0
- package/views/Logs/Table/Table.d.ts +19 -0
- package/views/Logs/Table/Table.js +145 -0
- package/views/Logs/Table/Table.js.map +1 -0
- package/views/Logs/Table/index.d.ts +1 -0
- package/views/Logs/Table/index.js +18 -0
- package/views/Logs/Table/index.js.map +1 -0
- package/views/Logs/Table/styled.d.ts +22 -0
- package/views/Logs/Table/styled.js +49 -0
- package/views/Logs/Table/styled.js.map +1 -0
- package/views/Logs/styled.d.ts +11 -0
- package/views/Logs/styled.js +20 -0
- package/views/Logs/styled.js.map +1 -0
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webiny/app-audit-logs",
|
|
3
|
+
"version": "5.38.0-beta.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/webiny/webiny-js.git"
|
|
8
|
+
},
|
|
9
|
+
"description": "",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@apollo/react-hooks": "3.1.5",
|
|
13
|
+
"@babel/runtime": "7.22.6",
|
|
14
|
+
"@emotion/react": "11.10.8",
|
|
15
|
+
"@emotion/styled": "11.10.6",
|
|
16
|
+
"@webiny/api-audit-logs": "5.38.0-beta.0",
|
|
17
|
+
"@webiny/app": "5.38.0-beta.0",
|
|
18
|
+
"@webiny/app-aco": "5.38.0-beta.0",
|
|
19
|
+
"@webiny/app-admin": "5.38.0-beta.0",
|
|
20
|
+
"@webiny/app-security": "5.38.0-beta.0",
|
|
21
|
+
"@webiny/form": "5.38.0-beta.0",
|
|
22
|
+
"@webiny/plugins": "5.38.0-beta.0",
|
|
23
|
+
"@webiny/react-properties": "5.38.0-beta.0",
|
|
24
|
+
"@webiny/react-router": "5.38.0-beta.0",
|
|
25
|
+
"@webiny/ui": "5.38.0-beta.0",
|
|
26
|
+
"date-fns": "2.29.3",
|
|
27
|
+
"emotion": "10.0.27",
|
|
28
|
+
"graphql-tag": "2.12.6",
|
|
29
|
+
"lodash": "4.17.21"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"react": "^17.0.2"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@babel/cli": "7.22.9",
|
|
36
|
+
"@babel/core": "7.22.9",
|
|
37
|
+
"@babel/preset-env": "7.20.2",
|
|
38
|
+
"@babel/preset-react": "7.18.6",
|
|
39
|
+
"@babel/preset-typescript": "7.18.6",
|
|
40
|
+
"@material-design-icons/svg": "0.14.3",
|
|
41
|
+
"@material-symbols/svg-400": "0.4.3",
|
|
42
|
+
"@types/react": "17.0.39",
|
|
43
|
+
"@webiny/cli": "5.38.0-beta.0",
|
|
44
|
+
"@webiny/project-utils": "5.38.0-beta.0",
|
|
45
|
+
"execa": "5.1.1",
|
|
46
|
+
"rimraf": "3.0.2",
|
|
47
|
+
"ttypescript": "1.5.15",
|
|
48
|
+
"typescript": "4.7.4"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public",
|
|
52
|
+
"directory": "dist"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "yarn webiny run build",
|
|
56
|
+
"watch": "yarn webiny run watch"
|
|
57
|
+
},
|
|
58
|
+
"gitHead": "5746389d4988626b50e2523ccfa0a9a5e398e0ed"
|
|
59
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SecurityPermission } from "@webiny/app-security/types";
|
|
3
|
+
interface PageBuilderPermissionsProps {
|
|
4
|
+
value: SecurityPermission;
|
|
5
|
+
onChange: (value: SecurityPermission[]) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const AuditLogsPermissions: React.FC<PageBuilderPermissionsProps>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.AuditLogsPermissions = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _Grid = require("@webiny/ui/Grid");
|
|
12
|
+
var _Select = require("@webiny/ui/Select");
|
|
13
|
+
var _i18n = require("@webiny/app/i18n");
|
|
14
|
+
var _Permissions = require("@webiny/app-admin/components/Permissions");
|
|
15
|
+
var _form = require("@webiny/form");
|
|
16
|
+
var _appSecurity = require("@webiny/app-security");
|
|
17
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
18
|
+
var t = _i18n.i18n.ns("app-audit-logs/plugins/permissionRenderer");
|
|
19
|
+
var AUDIT_LOGS = "al";
|
|
20
|
+
var AUDIT_LOGS_FULL_ACCESS = "al.*";
|
|
21
|
+
var FULL_ACCESS = "full";
|
|
22
|
+
var NO_ACCESS = "no";
|
|
23
|
+
var CUSTOM_ACCESS = "custom";
|
|
24
|
+
var AuditLogsPermissions = function AuditLogsPermissions(_ref) {
|
|
25
|
+
var value = _ref.value,
|
|
26
|
+
onChange = _ref.onChange;
|
|
27
|
+
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
28
|
+
getPermission = _useSecurity.getPermission;
|
|
29
|
+
|
|
30
|
+
// We disable form elements for custom permissions if AACL cannot be used.
|
|
31
|
+
var cannotUseAAcl = (0, _react.useMemo)(function () {
|
|
32
|
+
return !getPermission("aacl", true);
|
|
33
|
+
}, []);
|
|
34
|
+
var onFormChange = (0, _react.useCallback)(function (formData) {
|
|
35
|
+
var newValue = [];
|
|
36
|
+
if (Array.isArray(value)) {
|
|
37
|
+
// Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.
|
|
38
|
+
newValue = value.filter(function (item) {
|
|
39
|
+
return !item.name.startsWith(AUDIT_LOGS);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (formData.accessLevel === NO_ACCESS) {
|
|
43
|
+
onChange(newValue);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (formData.accessLevel === FULL_ACCESS) {
|
|
47
|
+
newValue.push({
|
|
48
|
+
name: AUDIT_LOGS_FULL_ACCESS
|
|
49
|
+
});
|
|
50
|
+
onChange(newValue);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Handling custom access level.
|
|
55
|
+
|
|
56
|
+
onChange(newValue);
|
|
57
|
+
}, [value]);
|
|
58
|
+
var formData = (0, _react.useMemo)(function () {
|
|
59
|
+
if (!Array.isArray(value)) {
|
|
60
|
+
return {
|
|
61
|
+
accessLevel: NO_ACCESS
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
var hasFullAccess = value.find(function (item) {
|
|
65
|
+
return item.name === AUDIT_LOGS_FULL_ACCESS || item.name === "*";
|
|
66
|
+
});
|
|
67
|
+
if (hasFullAccess) {
|
|
68
|
+
return {
|
|
69
|
+
accessLevel: FULL_ACCESS
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
var permissions = value.filter(function (item) {
|
|
73
|
+
return item.name.startsWith(AUDIT_LOGS);
|
|
74
|
+
});
|
|
75
|
+
if (!permissions.length) {
|
|
76
|
+
return {
|
|
77
|
+
accessLevel: NO_ACCESS
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
var formData = {
|
|
81
|
+
accessLevel: CUSTOM_ACCESS
|
|
82
|
+
};
|
|
83
|
+
return formData;
|
|
84
|
+
}, []);
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
86
|
+
data: formData,
|
|
87
|
+
onChange: onFormChange
|
|
88
|
+
}, function (_ref2) {
|
|
89
|
+
var data = _ref2.data,
|
|
90
|
+
Bind = _ref2.Bind;
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
|
|
92
|
+
className: _Permissions.gridNoPaddingClass
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
94
|
+
span: 12
|
|
95
|
+
}, data.accessLevel === "custom" && cannotUseAAcl && /*#__PURE__*/_react.default.createElement(_Permissions.CannotUseAaclAlert, null))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
|
|
96
|
+
className: _Permissions.gridNoPaddingClass
|
|
97
|
+
}, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
98
|
+
span: 6
|
|
99
|
+
}, /*#__PURE__*/_react.default.createElement(_Permissions.PermissionInfo, {
|
|
100
|
+
title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Access Level"])))
|
|
101
|
+
})), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
102
|
+
span: 6
|
|
103
|
+
}, /*#__PURE__*/_react.default.createElement(Bind, {
|
|
104
|
+
name: "accessLevel"
|
|
105
|
+
}, /*#__PURE__*/_react.default.createElement(_Select.Select, {
|
|
106
|
+
label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Access Level"])))
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement("option", {
|
|
108
|
+
value: NO_ACCESS
|
|
109
|
+
}, t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["No access"])))), /*#__PURE__*/_react.default.createElement("option", {
|
|
110
|
+
value: FULL_ACCESS
|
|
111
|
+
}, t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Full access"])))), /*#__PURE__*/_react.default.createElement("option", {
|
|
112
|
+
value: CUSTOM_ACCESS
|
|
113
|
+
}, t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Custom access"])))))))), data.accessLevel === CUSTOM_ACCESS && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
exports.AuditLogsPermissions = AuditLogsPermissions;
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=AuditLogsPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Grid","_Select","_i18n","_Permissions","_form","_appSecurity","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","t","i18n","ns","AUDIT_LOGS","AUDIT_LOGS_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","AuditLogsPermissions","_ref","value","onChange","_useSecurity","useSecurity","getPermission","cannotUseAAcl","useMemo","onFormChange","useCallback","formData","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","hasFullAccess","find","permissions","length","default","createElement","Form","data","_ref2","Bind","Fragment","Grid","className","gridNoPaddingClass","Cell","span","CannotUseAaclAlert","PermissionInfo","title","_taggedTemplateLiteral2","Select","label","exports"],"sources":["AuditLogsPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridNoPaddingClass\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { AaclPermission } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst AUDIT_LOGS = \"al\";\nconst AUDIT_LOGS_FULL_ACCESS = \"al.*\";\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface PageBuilderPermissionsProps {\n value: SecurityPermission;\n onChange: (value: SecurityPermission[]) => void;\n}\nexport const AuditLogsPermissions: React.FC<PageBuilderPermissionsProps> = ({\n value,\n onChange\n}) => {\n const { getPermission } = useSecurity();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAAcl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const onFormChange = useCallback(\n formData => {\n let newValue: SecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(AUDIT_LOGS));\n }\n\n if (formData.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (formData.accessLevel === FULL_ACCESS) {\n newValue.push({ name: AUDIT_LOGS_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === AUDIT_LOGS_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(AUDIT_LOGS));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const formData = {\n accessLevel: CUSTOM_ACCESS\n };\n\n return formData;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind }) => (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAAcl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && <></>}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.AuditLogsPermissions = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _quick_reference_all = require("@material-symbols/svg-400/outlined/quick_reference_all.svg");
|
|
12
|
+
var _i18n = require("@webiny/app/i18n");
|
|
13
|
+
var _plugins = require("@webiny/plugins");
|
|
14
|
+
var _Accordion = require("@webiny/ui/Accordion");
|
|
15
|
+
var _AuditLogsPermissions = require("./AuditLogsPermissions");
|
|
16
|
+
var _templateObject, _templateObject2;
|
|
17
|
+
var t = _i18n.i18n.ns("app-audit-logs/plugins/permissionRenderer");
|
|
18
|
+
var createPermissions = function createPermissions() {
|
|
19
|
+
return {
|
|
20
|
+
type: "admin-app-permissions-renderer",
|
|
21
|
+
name: "admin-app-permissions-renderer-audit-logs",
|
|
22
|
+
render: function render(props) {
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
|
|
24
|
+
icon: /*#__PURE__*/_react.default.createElement(_quick_reference_all.ReactComponent, null),
|
|
25
|
+
title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Audit Logs"]))),
|
|
26
|
+
description: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Manage Audit Logs app access permissions."]))),
|
|
27
|
+
"data-testid": "permission.al"
|
|
28
|
+
}, /*#__PURE__*/_react.default.createElement(_AuditLogsPermissions.AuditLogsPermissions, props));
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
var AuditLogsPermissions = function AuditLogsPermissions() {
|
|
33
|
+
(0, _react.useEffect)(function () {
|
|
34
|
+
_plugins.plugins.register(createPermissions());
|
|
35
|
+
}, []);
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
exports.AuditLogsPermissions = AuditLogsPermissions;
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_quick_reference_all","_i18n","_plugins","_Accordion","_AuditLogsPermissions","_templateObject","_templateObject2","t","i18n","ns","createPermissions","type","name","render","props","default","createElement","AccordionItem","icon","ReactComponent","title","_taggedTemplateLiteral2","description","AuditLogsPermissions","useEffect","plugins","register","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { ReactComponent as Icon } from \"@material-symbols/svg-400/outlined/quick_reference_all.svg\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\n\nimport { AuditLogsPermissions as AuditLogsPermissionsComponent } from \"./AuditLogsPermissions\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst createPermissions = (): AdminAppPermissionRendererPlugin => {\n return {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-audit-logs\",\n render(props) {\n return (\n <AccordionItem\n icon={<Icon />}\n title={t`Audit Logs`}\n description={t`Manage Audit Logs app access permissions.`}\n data-testid={\"permission.al\"}\n >\n <AuditLogsPermissionsComponent {...props} />\n </AccordionItem>\n );\n }\n };\n};\n\nexport const AuditLogsPermissions: React.FC = () => {\n useEffect(() => {\n plugins.register(createPermissions());\n }, []);\n return null;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAGA,IAAAK,qBAAA,GAAAL,OAAA;AAA+F,IAAAM,eAAA,EAAAC,gBAAA;AAE/F,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,2CAA2C,CAAC;AAE9D,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAA2C;EAC9D,OAAO;IACHC,IAAI,EAAE,gCAAgC;IACtCC,IAAI,EAAE,2CAA2C;IACjDC,MAAM,WAAAA,OAACC,KAAK,EAAE;MACV,oBACIjB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACb,UAAA,CAAAc,aAAa;QACVC,IAAI,eAAErB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAAChB,oBAAA,CAAAmB,cAAI,MAAE,CAAE;QACfC,KAAK,EAAEb,CAAC,CAAAF,eAAA,KAAAA,eAAA,OAAAgB,uBAAA,CAAAN,OAAA,mBAAa;QACrBO,WAAW,EAAEf,CAAC,CAAAD,gBAAA,KAAAA,gBAAA,OAAAe,uBAAA,CAAAN,OAAA,kDAA4C;QAC1D,eAAa;MAAgB,gBAE7BlB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACZ,qBAAA,CAAAmB,oBAA6B,EAAKT,KAAQ,CAChC,CAAC;IAExB;EACJ,CAAC;AACL,CAAC;AAEM,IAAMS,oBAA8B,GAAG,SAAjCA,oBAA8BA,CAAA,EAAS;EAChD,IAAAC,gBAAS,EAAC,YAAM;IACZC,gBAAO,CAACC,QAAQ,CAAChB,iBAAiB,CAAC,CAAC,CAAC;EACzC,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC;AAACiB,OAAA,CAAAJ,oBAAA,GAAAA,oBAAA"}
|
package/types.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare type AuditLog = {
|
|
2
|
+
id: string;
|
|
3
|
+
message: string;
|
|
4
|
+
app: string;
|
|
5
|
+
entity: string;
|
|
6
|
+
entityId: string;
|
|
7
|
+
action: string;
|
|
8
|
+
data: string;
|
|
9
|
+
timestamp: Date;
|
|
10
|
+
initiator: string;
|
|
11
|
+
};
|
|
12
|
+
export declare type User = {
|
|
13
|
+
id: string;
|
|
14
|
+
firstName: string;
|
|
15
|
+
lastName: string;
|
|
16
|
+
group: {
|
|
17
|
+
name: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
package/types.js
ADDED
package/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type AuditLog = {\n id: string;\n message: string;\n app: string;\n entity: string;\n entityId: string;\n action: string;\n data: string;\n timestamp: Date;\n initiator: string;\n};\n\nexport type User = {\n id: string;\n firstName: string;\n lastName: string;\n group: {\n name: string;\n };\n};\n"],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SearchRecordItem } from "@webiny/app-aco/types";
|
|
2
|
+
import { AuditLog, User } from "../types";
|
|
3
|
+
export declare type Entry = {
|
|
4
|
+
id: string;
|
|
5
|
+
message: string;
|
|
6
|
+
app: string;
|
|
7
|
+
entity: {
|
|
8
|
+
value: string;
|
|
9
|
+
label: string;
|
|
10
|
+
link?: string;
|
|
11
|
+
};
|
|
12
|
+
entityId: string;
|
|
13
|
+
action: {
|
|
14
|
+
label: string;
|
|
15
|
+
value: string;
|
|
16
|
+
};
|
|
17
|
+
data: string;
|
|
18
|
+
savedOn: Date;
|
|
19
|
+
initiator: {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
role: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export declare const transformCmsContentEntriesToRecordEntries: (items: SearchRecordItem<AuditLog>[], users: User[]) => Entry[];
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformCmsContentEntriesToRecordEntries = void 0;
|
|
7
|
+
var _config = require("@webiny/api-audit-logs/config");
|
|
8
|
+
var transformCmsContentEntriesToRecordEntries = function transformCmsContentEntriesToRecordEntries(items, users) {
|
|
9
|
+
return items.map(function (_ref) {
|
|
10
|
+
var _app$entities, _entity$actions;
|
|
11
|
+
var id = _ref.id,
|
|
12
|
+
data = _ref.data;
|
|
13
|
+
var app = _config.auditLogsApps.find(function (app) {
|
|
14
|
+
return app.app === data.app;
|
|
15
|
+
});
|
|
16
|
+
var entity = app === null || app === void 0 ? void 0 : (_app$entities = app.entities) === null || _app$entities === void 0 ? void 0 : _app$entities.find(function (entity) {
|
|
17
|
+
return entity.type === data.entity;
|
|
18
|
+
});
|
|
19
|
+
var action = entity === null || entity === void 0 ? void 0 : (_entity$actions = entity.actions) === null || _entity$actions === void 0 ? void 0 : _entity$actions.find(function (action) {
|
|
20
|
+
return action.type === data.action;
|
|
21
|
+
});
|
|
22
|
+
var user = users.find(function (user) {
|
|
23
|
+
return user.id === data.initiator;
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
id: id,
|
|
27
|
+
message: data.message,
|
|
28
|
+
app: (app === null || app === void 0 ? void 0 : app.displayName) || "-",
|
|
29
|
+
entity: {
|
|
30
|
+
label: (entity === null || entity === void 0 ? void 0 : entity.displayName) || "-",
|
|
31
|
+
value: data.entity,
|
|
32
|
+
link: (entity === null || entity === void 0 ? void 0 : entity.linkToEntity) && entity.linkToEntity(encodeURIComponent(data.entityId))
|
|
33
|
+
},
|
|
34
|
+
entityId: data.entityId,
|
|
35
|
+
action: {
|
|
36
|
+
label: (action === null || action === void 0 ? void 0 : action.displayName) || "-",
|
|
37
|
+
value: data.action
|
|
38
|
+
},
|
|
39
|
+
data: data.data,
|
|
40
|
+
savedOn: data.timestamp,
|
|
41
|
+
initiator: {
|
|
42
|
+
id: data.initiator,
|
|
43
|
+
name: "".concat(user === null || user === void 0 ? void 0 : user.firstName, " ").concat(user === null || user === void 0 ? void 0 : user.lastName),
|
|
44
|
+
role: (user === null || user === void 0 ? void 0 : user.group.name) || ""
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
exports.transformCmsContentEntriesToRecordEntries = transformCmsContentEntriesToRecordEntries;
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=transformCmsContentEntriesToRecordEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_config","require","transformCmsContentEntriesToRecordEntries","items","users","map","_ref","_app$entities","_entity$actions","id","data","app","auditLogsApps","find","entity","entities","type","action","actions","user","initiator","message","displayName","label","value","link","linkToEntity","encodeURIComponent","entityId","savedOn","timestamp","name","concat","firstName","lastName","role","group","exports"],"sources":["transformCmsContentEntriesToRecordEntries.ts"],"sourcesContent":["import { SearchRecordItem } from \"@webiny/app-aco/types\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nimport { AuditLog, User } from \"~/types\";\n\nexport type Entry = {\n id: string;\n message: string;\n app: string;\n entity: {\n value: string;\n label: string;\n link?: string;\n };\n entityId: string;\n action: {\n label: string;\n value: string;\n };\n data: string;\n savedOn: Date;\n initiator: {\n id: string;\n name: string;\n role: string;\n };\n};\n\nexport const transformCmsContentEntriesToRecordEntries = (\n items: SearchRecordItem<AuditLog>[],\n users: User[]\n): Entry[] => {\n return items.map(({ id, data }) => {\n const app = auditLogsApps.find(app => app.app === data.app);\n const entity = app?.entities?.find(entity => entity.type === data.entity);\n const action = entity?.actions?.find(action => action.type === data.action);\n const user = users.find(user => user.id === data.initiator);\n\n return {\n id,\n message: data.message,\n app: app?.displayName || \"-\",\n entity: {\n label: entity?.displayName || \"-\",\n value: data.entity,\n link: entity?.linkToEntity && entity.linkToEntity(encodeURIComponent(data.entityId))\n },\n entityId: data.entityId,\n action: {\n label: action?.displayName || \"-\",\n value: data.action\n },\n data: data.data,\n savedOn: data.timestamp,\n initiator: {\n id: data.initiator,\n name: `${user?.firstName} ${user?.lastName}`,\n role: user?.group.name || \"\"\n }\n };\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AA2BO,IAAMC,yCAAyC,GAAG,SAA5CA,yCAAyCA,CAClDC,KAAmC,EACnCC,KAAa,EACH;EACV,OAAOD,KAAK,CAACE,GAAG,CAAC,UAAAC,IAAA,EAAkB;IAAA,IAAAC,aAAA,EAAAC,eAAA;IAAA,IAAfC,EAAE,GAAAH,IAAA,CAAFG,EAAE;MAAEC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACxB,IAAMC,GAAG,GAAGC,qBAAa,CAACC,IAAI,CAAC,UAAAF,GAAG;MAAA,OAAIA,GAAG,CAACA,GAAG,KAAKD,IAAI,CAACC,GAAG;IAAA,EAAC;IAC3D,IAAMG,MAAM,GAAGH,GAAG,aAAHA,GAAG,wBAAAJ,aAAA,GAAHI,GAAG,CAAEI,QAAQ,cAAAR,aAAA,uBAAbA,aAAA,CAAeM,IAAI,CAAC,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAACE,IAAI,KAAKN,IAAI,CAACI,MAAM;IAAA,EAAC;IACzE,IAAMG,MAAM,GAAGH,MAAM,aAANA,MAAM,wBAAAN,eAAA,GAANM,MAAM,CAAEI,OAAO,cAAAV,eAAA,uBAAfA,eAAA,CAAiBK,IAAI,CAAC,UAAAI,MAAM;MAAA,OAAIA,MAAM,CAACD,IAAI,KAAKN,IAAI,CAACO,MAAM;IAAA,EAAC;IAC3E,IAAME,IAAI,GAAGf,KAAK,CAACS,IAAI,CAAC,UAAAM,IAAI;MAAA,OAAIA,IAAI,CAACV,EAAE,KAAKC,IAAI,CAACU,SAAS;IAAA,EAAC;IAE3D,OAAO;MACHX,EAAE,EAAFA,EAAE;MACFY,OAAO,EAAEX,IAAI,CAACW,OAAO;MACrBV,GAAG,EAAE,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEW,WAAW,KAAI,GAAG;MAC5BR,MAAM,EAAE;QACJS,KAAK,EAAE,CAAAT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEQ,WAAW,KAAI,GAAG;QACjCE,KAAK,EAAEd,IAAI,CAACI,MAAM;QAClBW,IAAI,EAAE,CAAAX,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,YAAY,KAAIZ,MAAM,CAACY,YAAY,CAACC,kBAAkB,CAACjB,IAAI,CAACkB,QAAQ,CAAC;MACvF,CAAC;MACDA,QAAQ,EAAElB,IAAI,CAACkB,QAAQ;MACvBX,MAAM,EAAE;QACJM,KAAK,EAAE,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,WAAW,KAAI,GAAG;QACjCE,KAAK,EAAEd,IAAI,CAACO;MAChB,CAAC;MACDP,IAAI,EAAEA,IAAI,CAACA,IAAI;MACfmB,OAAO,EAAEnB,IAAI,CAACoB,SAAS;MACvBV,SAAS,EAAE;QACPX,EAAE,EAAEC,IAAI,CAACU,SAAS;QAClBW,IAAI,KAAAC,MAAA,CAAKb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEc,SAAS,OAAAD,MAAA,CAAIb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEe,QAAQ,CAAE;QAC5CC,IAAI,EAAE,CAAAhB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEiB,KAAK,CAACL,IAAI,KAAI;MAC9B;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAnC,yCAAA,GAAAA,yCAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.FilterByAction = void 0;
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _form = require("@webiny/form");
|
|
12
|
+
var _Select = require("@webiny/ui/Select");
|
|
13
|
+
var _config = require("@webiny/api-audit-logs/config");
|
|
14
|
+
var getValidFilterValue = function getValidFilterValue(value) {
|
|
15
|
+
if (value === "all" || value === "") {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
};
|
|
20
|
+
var FilterByAction = function FilterByAction() {
|
|
21
|
+
var _data$data, _data$data2;
|
|
22
|
+
var _useForm = (0, _form.useForm)(),
|
|
23
|
+
data = _useForm.data;
|
|
24
|
+
var bind = (0, _form.useBind)({
|
|
25
|
+
name: "data.action",
|
|
26
|
+
beforeChange: function beforeChange(value, cb) {
|
|
27
|
+
cb(getValidFilterValue(value));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var appValue = data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.app;
|
|
31
|
+
var entityValue = data === null || data === void 0 ? void 0 : (_data$data2 = data.data) === null || _data$data2 === void 0 ? void 0 : _data$data2.entity;
|
|
32
|
+
var options = (0, _react.useMemo)(function () {
|
|
33
|
+
var _auditLogsApps$find, _entities$find;
|
|
34
|
+
if (!appValue || !entityValue) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
var entities = ((_auditLogsApps$find = _config.auditLogsApps.find(function (app) {
|
|
38
|
+
return app.app === appValue;
|
|
39
|
+
})) === null || _auditLogsApps$find === void 0 ? void 0 : _auditLogsApps$find.entities) || [];
|
|
40
|
+
var actions = ((_entities$find = entities.find(function (entity) {
|
|
41
|
+
return entity.type === entityValue;
|
|
42
|
+
})) === null || _entities$find === void 0 ? void 0 : _entities$find.actions) || [];
|
|
43
|
+
return [{
|
|
44
|
+
label: "All",
|
|
45
|
+
value: "all"
|
|
46
|
+
}].concat((0, _toConsumableArray2.default)(actions.map(function (entity) {
|
|
47
|
+
return {
|
|
48
|
+
label: entity.displayName,
|
|
49
|
+
value: entity.type
|
|
50
|
+
};
|
|
51
|
+
})));
|
|
52
|
+
}, [appValue, entityValue]);
|
|
53
|
+
if (!appValue || !entityValue) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
|
|
57
|
+
size: "medium",
|
|
58
|
+
placeholder: "Filter by Action",
|
|
59
|
+
options: options
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
62
|
+
exports.FilterByAction = FilterByAction;
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=FilterByAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_form","_Select","_config","getValidFilterValue","value","undefined","FilterByAction","_data$data","_data$data2","_useForm","useForm","data","bind","useBind","name","beforeChange","cb","appValue","app","entityValue","entity","options","useMemo","_auditLogsApps$find","_entities$find","entities","auditLogsApps","find","actions","type","label","concat","_toConsumableArray2","default","map","displayName","createElement","Select","Object","assign","size","placeholder","exports"],"sources":["FilterByAction.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport { useBind, useForm } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByAction: React.FC = () => {\n const { data } = useForm();\n const bind = useBind({\n name: \"data.action\",\n beforeChange(value, cb) {\n cb(getValidFilterValue(value));\n }\n });\n\n const appValue = data?.data?.app;\n const entityValue = data?.data?.entity;\n\n const options = useMemo(() => {\n if (!appValue || !entityValue) {\n return [];\n }\n\n const entities = auditLogsApps.find(app => app.app === appValue)?.entities || [];\n const actions = entities.find(entity => entity.type === entityValue)?.actions || [];\n\n return [\n { label: \"All\", value: \"all\" },\n ...actions.map(entity => ({ label: entity.displayName, value: entity.type }))\n ];\n }, [appValue, entityValue]);\n\n if (!appValue || !entityValue) {\n return null;\n }\n\n return <Select {...bind} size={\"medium\"} placeholder={\"Filter by Action\"} options={options} />;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAa,EAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAEM,IAAME,cAAwB,GAAG,SAA3BA,cAAwBA,CAAA,EAAS;EAAA,IAAAC,UAAA,EAAAC,WAAA;EAC1C,IAAAC,QAAA,GAAiB,IAAAC,aAAO,EAAC,CAAC;IAAlBC,IAAI,GAAAF,QAAA,CAAJE,IAAI;EACZ,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,aAAa;IACnBC,YAAY,WAAAA,aAACX,KAAK,EAAEY,EAAE,EAAE;MACpBA,EAAE,CAACb,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,IAAMa,QAAQ,GAAGN,IAAI,aAAJA,IAAI,wBAAAJ,UAAA,GAAJI,IAAI,CAAEA,IAAI,cAAAJ,UAAA,uBAAVA,UAAA,CAAYW,GAAG;EAChC,IAAMC,WAAW,GAAGR,IAAI,aAAJA,IAAI,wBAAAH,WAAA,GAAJG,IAAI,CAAEA,IAAI,cAAAH,WAAA,uBAAVA,WAAA,CAAYY,MAAM;EAEtC,IAAMC,OAAO,GAAG,IAAAC,cAAO,EAAC,YAAM;IAAA,IAAAC,mBAAA,EAAAC,cAAA;IAC1B,IAAI,CAACP,QAAQ,IAAI,CAACE,WAAW,EAAE;MAC3B,OAAO,EAAE;IACb;IAEA,IAAMM,QAAQ,GAAG,EAAAF,mBAAA,GAAAG,qBAAa,CAACC,IAAI,CAAC,UAAAT,GAAG;MAAA,OAAIA,GAAG,CAACA,GAAG,KAAKD,QAAQ;IAAA,EAAC,cAAAM,mBAAA,uBAA/CA,mBAAA,CAAiDE,QAAQ,KAAI,EAAE;IAChF,IAAMG,OAAO,GAAG,EAAAJ,cAAA,GAAAC,QAAQ,CAACE,IAAI,CAAC,UAAAP,MAAM;MAAA,OAAIA,MAAM,CAACS,IAAI,KAAKV,WAAW;IAAA,EAAC,cAAAK,cAAA,uBAApDA,cAAA,CAAsDI,OAAO,KAAI,EAAE;IAEnF,QACI;MAAEE,KAAK,EAAE,KAAK;MAAE1B,KAAK,EAAE;IAAM,CAAC,EAAA2B,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAC3BL,OAAO,CAACM,GAAG,CAAC,UAAAd,MAAM;MAAA,OAAK;QAAEU,KAAK,EAAEV,MAAM,CAACe,WAAW;QAAE/B,KAAK,EAAEgB,MAAM,CAACS;MAAK,CAAC;IAAA,CAAC,CAAC;EAErF,CAAC,EAAE,CAACZ,QAAQ,EAAEE,WAAW,CAAC,CAAC;EAE3B,IAAI,CAACF,QAAQ,IAAI,CAACE,WAAW,EAAE;IAC3B,OAAO,IAAI;EACf;EAEA,oBAAOtB,MAAA,CAAAoC,OAAA,CAAAG,aAAA,CAACnC,OAAA,CAAAoC,MAAM,EAAAC,MAAA,CAAAC,MAAA,KAAK3B,IAAI;IAAE4B,IAAI,EAAE,QAAS;IAACC,WAAW,EAAE,kBAAmB;IAACpB,OAAO,EAAEA;EAAQ,EAAE,CAAC;AAClG,CAAC;AAACqB,OAAA,CAAApC,cAAA,GAAAA,cAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FilterByApp = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _form = require("@webiny/form");
|
|
11
|
+
var _Select = require("@webiny/ui/Select");
|
|
12
|
+
var _config = require("@webiny/api-audit-logs/config");
|
|
13
|
+
var getValidFilterValue = function getValidFilterValue(value) {
|
|
14
|
+
if (value === "all" || value === "") {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
var FilterByApp = function FilterByApp() {
|
|
20
|
+
var _useForm = (0, _form.useForm)(),
|
|
21
|
+
setValue = _useForm.setValue;
|
|
22
|
+
var bind = (0, _form.useBind)({
|
|
23
|
+
name: "data.app",
|
|
24
|
+
beforeChange: function beforeChange(value, cb) {
|
|
25
|
+
setValue("data.entity", undefined);
|
|
26
|
+
setValue("data.action", undefined);
|
|
27
|
+
cb(getValidFilterValue(value));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
|
|
31
|
+
size: "medium",
|
|
32
|
+
placeholder: "Filter by App",
|
|
33
|
+
options: [{
|
|
34
|
+
label: "All",
|
|
35
|
+
value: "all"
|
|
36
|
+
}].concat((0, _toConsumableArray2.default)(_config.auditLogsApps.map(function (app) {
|
|
37
|
+
return {
|
|
38
|
+
label: app.displayName,
|
|
39
|
+
value: app.app
|
|
40
|
+
};
|
|
41
|
+
})))
|
|
42
|
+
}));
|
|
43
|
+
};
|
|
44
|
+
exports.FilterByApp = FilterByApp;
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=FilterByApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_form","_Select","_config","getValidFilterValue","value","undefined","FilterByApp","_useForm","useForm","setValue","bind","useBind","name","beforeChange","cb","default","createElement","Select","Object","assign","size","placeholder","options","label","concat","_toConsumableArray2","auditLogsApps","map","app","displayName","exports"],"sources":["FilterByApp.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { useBind, useForm } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByApp: React.FC = () => {\n const { setValue } = useForm();\n const bind = useBind({\n name: \"data.app\",\n beforeChange(value, cb) {\n setValue(\"data.entity\", undefined);\n setValue(\"data.action\", undefined);\n cb(getValidFilterValue(value));\n }\n });\n\n return (\n <Select\n {...bind}\n size={\"medium\"}\n placeholder={\"Filter by App\"}\n options={[\n { label: \"All\", value: \"all\" },\n ...auditLogsApps.map(app => ({ label: app.displayName, value: app.app }))\n ]}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAa,EAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAEM,IAAME,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA,EAAS;EACvC,IAAAC,QAAA,GAAqB,IAAAC,aAAO,EAAC,CAAC;IAAtBC,QAAQ,GAAAF,QAAA,CAARE,QAAQ;EAChB,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,UAAU;IAChBC,YAAY,WAAAA,aAACT,KAAK,EAAEU,EAAE,EAAE;MACpBL,QAAQ,CAAC,aAAa,EAAEJ,SAAS,CAAC;MAClCI,QAAQ,CAAC,aAAa,EAAEJ,SAAS,CAAC;MAClCS,EAAE,CAACX,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,oBACIP,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACf,OAAA,CAAAgB,MAAM,EAAAC,MAAA,CAAAC,MAAA,KACCT,IAAI;IACRU,IAAI,EAAE,QAAS;IACfC,WAAW,EAAE,eAAgB;IAC7BC,OAAO,GACH;MAAEC,KAAK,EAAE,KAAK;MAAEnB,KAAK,EAAE;IAAM,CAAC,EAAAoB,MAAA,KAAAC,mBAAA,CAAAV,OAAA,EAC3BW,qBAAa,CAACC,GAAG,CAAC,UAAAC,GAAG;MAAA,OAAK;QAAEL,KAAK,EAAEK,GAAG,CAACC,WAAW;QAAEzB,KAAK,EAAEwB,GAAG,CAACA;MAAI,CAAC;IAAA,CAAC,CAAC;EAC3E,EACL,CAAC;AAEV,CAAC;AAACE,OAAA,CAAAxB,WAAA,GAAAA,WAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.FilterByEntity = void 0;
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _form = require("@webiny/form");
|
|
12
|
+
var _Select = require("@webiny/ui/Select");
|
|
13
|
+
var _config = require("@webiny/api-audit-logs/config");
|
|
14
|
+
var getValidFilterValue = function getValidFilterValue(value) {
|
|
15
|
+
if (value === "all" || value === "") {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
};
|
|
20
|
+
var FilterByEntity = function FilterByEntity() {
|
|
21
|
+
var _data$data;
|
|
22
|
+
var _useForm = (0, _form.useForm)(),
|
|
23
|
+
data = _useForm.data,
|
|
24
|
+
setValue = _useForm.setValue;
|
|
25
|
+
var bind = (0, _form.useBind)({
|
|
26
|
+
name: "data.entity",
|
|
27
|
+
beforeChange: function beforeChange(value, cb) {
|
|
28
|
+
setValue("data.action", undefined);
|
|
29
|
+
cb(getValidFilterValue(value));
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
var appValue = data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.app;
|
|
33
|
+
var options = (0, _react.useMemo)(function () {
|
|
34
|
+
var _auditLogsApps$find;
|
|
35
|
+
if (!appValue) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
var entities = ((_auditLogsApps$find = _config.auditLogsApps.find(function (app) {
|
|
39
|
+
return app.app === appValue;
|
|
40
|
+
})) === null || _auditLogsApps$find === void 0 ? void 0 : _auditLogsApps$find.entities) || [];
|
|
41
|
+
return [{
|
|
42
|
+
label: "All",
|
|
43
|
+
value: "all"
|
|
44
|
+
}].concat((0, _toConsumableArray2.default)(entities.map(function (entity) {
|
|
45
|
+
return {
|
|
46
|
+
label: entity.displayName,
|
|
47
|
+
value: entity.type
|
|
48
|
+
};
|
|
49
|
+
})));
|
|
50
|
+
}, [appValue]);
|
|
51
|
+
if (!appValue) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
|
|
55
|
+
size: "medium",
|
|
56
|
+
placeholder: "Filter by Entity",
|
|
57
|
+
options: options
|
|
58
|
+
}));
|
|
59
|
+
};
|
|
60
|
+
exports.FilterByEntity = FilterByEntity;
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=FilterByEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_form","_Select","_config","getValidFilterValue","value","undefined","FilterByEntity","_data$data","_useForm","useForm","data","setValue","bind","useBind","name","beforeChange","cb","appValue","app","options","useMemo","_auditLogsApps$find","entities","auditLogsApps","find","label","concat","_toConsumableArray2","default","map","entity","displayName","type","createElement","Select","Object","assign","size","placeholder","exports"],"sources":["FilterByEntity.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport { useBind, useForm } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByEntity: React.FC = () => {\n const { data, setValue } = useForm();\n const bind = useBind({\n name: \"data.entity\",\n beforeChange(value, cb) {\n setValue(\"data.action\", undefined);\n cb(getValidFilterValue(value));\n }\n });\n\n const appValue = data?.data?.app;\n\n const options = useMemo(() => {\n if (!appValue) {\n return [];\n }\n\n const entities = auditLogsApps.find(app => app.app === appValue)?.entities || [];\n\n return [\n { label: \"All\", value: \"all\" },\n ...entities.map(entity => ({ label: entity.displayName, value: entity.type }))\n ];\n }, [appValue]);\n\n if (!appValue) {\n return null;\n }\n\n return <Select {...bind} size={\"medium\"} placeholder={\"Filter by Entity\"} options={options} />;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAa,EAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAEM,IAAME,cAAwB,GAAG,SAA3BA,cAAwBA,CAAA,EAAS;EAAA,IAAAC,UAAA;EAC1C,IAAAC,QAAA,GAA2B,IAAAC,aAAO,EAAC,CAAC;IAA5BC,IAAI,GAAAF,QAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,QAAA,CAARG,QAAQ;EACtB,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,aAAa;IACnBC,YAAY,WAAAA,aAACX,KAAK,EAAEY,EAAE,EAAE;MACpBL,QAAQ,CAAC,aAAa,EAAEN,SAAS,CAAC;MAClCW,EAAE,CAACb,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,IAAMa,QAAQ,GAAGP,IAAI,aAAJA,IAAI,wBAAAH,UAAA,GAAJG,IAAI,CAAEA,IAAI,cAAAH,UAAA,uBAAVA,UAAA,CAAYW,GAAG;EAEhC,IAAMC,OAAO,GAAG,IAAAC,cAAO,EAAC,YAAM;IAAA,IAAAC,mBAAA;IAC1B,IAAI,CAACJ,QAAQ,EAAE;MACX,OAAO,EAAE;IACb;IAEA,IAAMK,QAAQ,GAAG,EAAAD,mBAAA,GAAAE,qBAAa,CAACC,IAAI,CAAC,UAAAN,GAAG;MAAA,OAAIA,GAAG,CAACA,GAAG,KAAKD,QAAQ;IAAA,EAAC,cAAAI,mBAAA,uBAA/CA,mBAAA,CAAiDC,QAAQ,KAAI,EAAE;IAEhF,QACI;MAAEG,KAAK,EAAE,KAAK;MAAErB,KAAK,EAAE;IAAM,CAAC,EAAAsB,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAC3BN,QAAQ,CAACO,GAAG,CAAC,UAAAC,MAAM;MAAA,OAAK;QAAEL,KAAK,EAAEK,MAAM,CAACC,WAAW;QAAE3B,KAAK,EAAE0B,MAAM,CAACE;MAAK,CAAC;IAAA,CAAC,CAAC;EAEtF,CAAC,EAAE,CAACf,QAAQ,CAAC,CAAC;EAEd,IAAI,CAACA,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EAEA,oBAAOpB,MAAA,CAAA+B,OAAA,CAAAK,aAAA,CAAChC,OAAA,CAAAiC,MAAM,EAAAC,MAAA,CAAAC,MAAA,KAAKxB,IAAI;IAAEyB,IAAI,EAAE,QAAS;IAACC,WAAW,EAAE,kBAAmB;IAACnB,OAAO,EAAEA;EAAQ,EAAE,CAAC;AAClG,CAAC;AAACoB,OAAA,CAAAjC,cAAA,GAAAA,cAAA"}
|