@webiny/app-audit-logs 5.43.2 → 6.0.0-alpha.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/components/Text.js +6 -13
- package/components/Text.js.map +1 -1
- package/config/list/AuditLogsListConfig.js +17 -28
- package/config/list/AuditLogsListConfig.js.map +1 -1
- package/config/list/Browser/Filter.js +20 -29
- package/config/list/Browser/Filter.js.map +1 -1
- package/config/list/Browser/FiltersToWhere.js +7 -13
- package/config/list/Browser/FiltersToWhere.js.map +1 -1
- package/config/list/Browser/index.js +5 -11
- package/config/list/Browser/index.js.map +1 -1
- package/config/list/index.js +1 -16
- package/config/list/index.js.map +1 -1
- package/constants/index.js +1 -7
- package/constants/index.js.map +1 -1
- package/graphql.js +25 -12
- package/graphql.js.map +1 -1
- package/hooks/index.js +1 -16
- package/hooks/index.js.map +1 -1
- package/hooks/useAuditLogsList.js +65 -75
- package/hooks/useAuditLogsList.js.map +1 -1
- package/index.js +43 -41
- package/index.js.map +1 -1
- package/package.json +15 -15
- package/plugins/permissionRenderer/AuditLogsPermissions.js +53 -70
- package/plugins/permissionRenderer/AuditLogsPermissions.js.map +1 -1
- package/plugins/permissionRenderer/index.js +20 -27
- package/plugins/permissionRenderer/index.js.map +1 -1
- package/types.js +1 -7
- package/types.js.map +1 -1
- package/utils/transformCmsContentEntriesToRecordEntries.js +12 -25
- package/utils/transformCmsContentEntriesToRecordEntries.js.map +1 -1
- package/views/Logs/Filters/FilterByAction.js +21 -35
- package/views/Logs/Filters/FilterByAction.js.map +1 -1
- package/views/Logs/Filters/FilterByApp.js +16 -25
- package/views/Logs/Filters/FilterByApp.js.map +1 -1
- package/views/Logs/Filters/FilterByEntity.js +20 -32
- package/views/Logs/Filters/FilterByEntity.js.map +1 -1
- package/views/Logs/Filters/FilterByInitiator.js +19 -29
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -1
- package/views/Logs/Filters/FilterByTimestamp.js +15 -22
- package/views/Logs/Filters/FilterByTimestamp.js.map +1 -1
- package/views/Logs/Filters/Filters.js +16 -25
- package/views/Logs/Filters/Filters.js.map +1 -1
- package/views/Logs/Filters/index.js +6 -71
- package/views/Logs/Filters/index.js.map +1 -1
- package/views/Logs/Filters/styled.js +2 -9
- package/views/Logs/Filters/styled.js.map +1 -1
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js +20 -26
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -1
- package/views/Logs/Header/ButtonFilters/index.js +1 -16
- package/views/Logs/Header/ButtonFilters/index.js.map +1 -1
- package/views/Logs/Header/Header.js +23 -29
- package/views/Logs/Header/Header.js.map +1 -1
- package/views/Logs/Header/index.js +1 -16
- package/views/Logs/Header/index.js.map +1 -1
- package/views/Logs/LoadMoreButton/LoadMoreButton.js +14 -22
- package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -1
- package/views/Logs/LoadMoreButton/index.js +1 -16
- package/views/Logs/LoadMoreButton/index.js.map +1 -1
- package/views/Logs/LoadMoreButton/styled.js +2 -9
- package/views/Logs/LoadMoreButton/styled.js.map +1 -1
- package/views/Logs/LoadingMore/index.js +10 -19
- package/views/Logs/LoadingMore/index.js.map +1 -1
- package/views/Logs/LoadingMore/styled.js +3 -10
- package/views/Logs/LoadingMore/styled.js.map +1 -1
- package/views/Logs/Logs.js +48 -70
- package/views/Logs/Logs.js.map +1 -1
- package/views/Logs/LogsModule.js +17 -22
- package/views/Logs/LogsModule.js.map +1 -1
- package/views/Logs/Preview/Preview.js +47 -53
- package/views/Logs/Preview/Preview.js.map +1 -1
- package/views/Logs/Preview/index.js +1 -16
- package/views/Logs/Preview/index.js.map +1 -1
- package/views/Logs/Preview/styled.js +9 -13
- package/views/Logs/Preview/styled.js.map +1 -1
- package/views/Logs/Table/Table.js +84 -97
- package/views/Logs/Table/Table.js.map +1 -1
- package/views/Logs/Table/index.js +1 -16
- package/views/Logs/Table/index.js.map +1 -1
- package/views/Logs/Table/styled.js +37 -27
- package/views/Logs/Table/styled.js.map +1 -1
- package/views/Logs/styled.js +3 -10
- package/views/Logs/styled.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useQuery","debounce","useRouter","useAcoList","createSort","transformCmsContentEntriesToRecordEntries","LIST_USERS","useAuditLogsList","hasAccessToUsers","history","isListLoading","isListLoadingMore","isSearch","listMoreRecords","listTitle","meta","records","initialRecords","setSearchQuery","setListSort","setFilters","showFilters","hideFilters","showingFilters","sorting","setSorting","search","setSearch","query","URLSearchParams","location","searchQuery","get","data","listUsers","loading","usersLoading","skip","updateSearch","delete","set","push","toString","users","adminUsers","length","sort"],"sources":["useAuditLogsList.ts"],"sourcesContent":["import { useCallback, useEffect, useState, useMemo } from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport debounce from \"lodash/debounce\";\n\nimport { useRouter } from \"@webiny/react-router\";\nimport { OnSortingChange, Sorting } from \"@webiny/ui/DataTable\";\nimport { useAcoList, createSort } from \"@webiny/app-aco\";\nimport { ListMeta, SearchRecordItem } from \"@webiny/app-aco/types\";\n\nimport {\n Entry,\n transformCmsContentEntriesToRecordEntries\n} from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { LIST_USERS } from \"~/graphql\";\nimport { AuditLog, User } from \"~/types\";\n\ninterface UpdateSearchCallableParams {\n search: string;\n query: URLSearchParams;\n}\ninterface UpdateSearchCallable {\n (params: UpdateSearchCallableParams): void;\n}\n\nexport interface UseAuditLogs {\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: Entry[];\n search: string;\n setSearch: (value: string) => void;\n setSorting: OnSortingChange;\n showFilters: () => void;\n showingFilters: boolean;\n sorting: Sorting;\n setFilters: (data: Record<string, any>) => void;\n}\n\nexport const useAuditLogsList = (hasAccessToUsers: boolean): UseAuditLogs => {\n const { history } = useRouter();\n\n const {\n isListLoading,\n isListLoadingMore,\n isSearch,\n listMoreRecords,\n listTitle,\n meta,\n records: initialRecords,\n setSearchQuery,\n setListSort,\n setFilters,\n showFilters,\n hideFilters,\n showingFilters\n } = useAcoList<SearchRecordItem<AuditLog>>();\n\n const [sorting, setSorting] = useState<Sorting>([]);\n const [search, setSearch] = useState<string>(\"\");\n const query = new URLSearchParams(location.search);\n const searchQuery = query.get(\"search\") || \"\";\n\n const { data: listUsers, loading: usersLoading } = useQuery(LIST_USERS, {\n skip: !hasAccessToUsers\n });\n\n // Search-related logics: update `searchQuery` state and querystring\n const updateSearch = useCallback(\n debounce<UpdateSearchCallable>(({ search, query }) => {\n const searchQuery = query.get(\"search\");\n\n if (typeof searchQuery !== \"string\" && !search) {\n return;\n }\n\n setSearchQuery(search);\n\n if (searchQuery !== search) {\n if (!search) {\n // In case of empty `search` - remove it from `querystring`\n query.delete(\"search\");\n } else {\n // Otherwise, add it to `querystring`\n query.set(\"search\", search);\n }\n history.push(`/audit-logs?${query.toString()}`);\n }\n }, 500),\n []\n );\n\n // Set \"search\" from search \"query\" on page load.\n useEffect(() => {\n setSearch(searchQuery);\n }, [searchQuery]);\n\n // When \"search\" changes, trigger search-related logics\n useEffect(() => {\n updateSearch({ search, query });\n }, [search]);\n\n const records = useMemo(() => {\n const users: User[] = listUsers?.adminUsers?.users?.data || [];\n\n return transformCmsContentEntriesToRecordEntries(initialRecords, users);\n }, [initialRecords, listUsers]);\n\n useEffect(() => {\n if (!sorting?.length) {\n return;\n }\n const sort = createSort(sorting);\n if (!sort) {\n return;\n }\n setListSort(sort);\n }, [sorting]);\n\n return {\n isListLoading: isListLoading || usersLoading,\n isListLoadingMore,\n isSearch,\n listTitle,\n listMoreRecords,\n meta,\n records,\n search,\n setSearch,\n sorting,\n setSorting,\n showingFilters,\n showFilters,\n hideFilters,\n setFilters\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/index.js
CHANGED
|
@@ -1,50 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var wcp = (0, _appAdmin.useWcp)();
|
|
23
|
-
var createNavigateFolderStorageKey = (0, _react.useCallback)(function () {
|
|
24
|
-
return _constants.LOCAL_STORAGE_LATEST_VISITED_FOLDER;
|
|
1
|
+
import React, { useCallback } from "react";
|
|
2
|
+
import { useApolloClient } from "@apollo/react-hooks";
|
|
3
|
+
import { ReactComponent as Icon } from "@webiny/icons/manage_search.svg";
|
|
4
|
+
import { Layout, useWcp } from "@webiny/app-admin";
|
|
5
|
+
import { HasPermission } from "@webiny/app-security";
|
|
6
|
+
import { AcoProvider } from "@webiny/app-aco";
|
|
7
|
+
import { AuditLogsListWithConfig } from "./config/list";
|
|
8
|
+
import { LogsModule } from "./views/Logs/LogsModule";
|
|
9
|
+
import { AuditLogsPermissions } from "./plugins/permissionRenderer";
|
|
10
|
+
import AuditLogsView from "./views/Logs/Logs";
|
|
11
|
+
import { LOCAL_STORAGE_LATEST_VISITED_FOLDER } from "./constants";
|
|
12
|
+
import { AdminConfig } from "@webiny/app-admin";
|
|
13
|
+
const {
|
|
14
|
+
Menu,
|
|
15
|
+
Route
|
|
16
|
+
} = AdminConfig;
|
|
17
|
+
export const AuditLogs = () => {
|
|
18
|
+
const client = useApolloClient();
|
|
19
|
+
const wcp = useWcp();
|
|
20
|
+
const createNavigateFolderStorageKey = useCallback(() => {
|
|
21
|
+
return LOCAL_STORAGE_LATEST_VISITED_FOLDER;
|
|
25
22
|
}, []);
|
|
26
23
|
if (!wcp.canUseAuditLogs()) {
|
|
27
24
|
return null;
|
|
28
25
|
}
|
|
29
|
-
return /*#__PURE__*/
|
|
26
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LogsModule, null), /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(HasPermission, {
|
|
30
27
|
any: ["al.*"]
|
|
31
|
-
}, /*#__PURE__*/
|
|
28
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
29
|
+
name: "auditLogs",
|
|
30
|
+
element: /*#__PURE__*/React.createElement(Menu.Link, {
|
|
31
|
+
text: "Audit Logs",
|
|
32
|
+
icon: /*#__PURE__*/React.createElement(Menu.Link.Icon, {
|
|
33
|
+
element: /*#__PURE__*/React.createElement(Icon, null),
|
|
34
|
+
label: "Audit Logs"
|
|
35
|
+
}),
|
|
36
|
+
to: "/audit-logs"
|
|
37
|
+
})
|
|
38
|
+
}), /*#__PURE__*/React.createElement(Route, {
|
|
32
39
|
name: "auditLogs",
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}, /*#__PURE__*/_react.default.createElement(_list.AuditLogsListWithConfig, null, /*#__PURE__*/_react.default.createElement(_appAco.AcoProvider, {
|
|
44
|
-
id: "AuditLogs",
|
|
45
|
-
client: client,
|
|
46
|
-
createNavigateFolderStorageKey: createNavigateFolderStorageKey
|
|
47
|
-
}, /*#__PURE__*/_react.default.createElement(_Logs.default, null))))))), /*#__PURE__*/_react.default.createElement(_permissionRenderer.AuditLogsPermissions, null));
|
|
40
|
+
exact: true,
|
|
41
|
+
path: "/audit-logs",
|
|
42
|
+
element: /*#__PURE__*/React.createElement(Layout, {
|
|
43
|
+
title: "Audit Logs - Logs"
|
|
44
|
+
}, /*#__PURE__*/React.createElement(AuditLogsListWithConfig, null, /*#__PURE__*/React.createElement(AcoProvider, {
|
|
45
|
+
id: "AuditLogs",
|
|
46
|
+
client: client,
|
|
47
|
+
createNavigateFolderStorageKey: createNavigateFolderStorageKey
|
|
48
|
+
}, /*#__PURE__*/React.createElement(AuditLogsView, null))))
|
|
49
|
+
}))), /*#__PURE__*/React.createElement(AuditLogsPermissions, null));
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useCallback","useApolloClient","ReactComponent","Icon","Layout","useWcp","HasPermission","AcoProvider","AuditLogsListWithConfig","LogsModule","AuditLogsPermissions","AuditLogsView","LOCAL_STORAGE_LATEST_VISITED_FOLDER","AdminConfig","Menu","Route","AuditLogs","client","wcp","createNavigateFolderStorageKey","canUseAuditLogs","createElement","Fragment","any","name","element","Link","text","icon","label","to","exact","path","title","id"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { ReactComponent as Icon } from \"@webiny/icons/manage_search.svg\";\nimport { Layout, useWcp } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport { AcoProvider } from \"@webiny/app-aco\";\n\nimport { AuditLogsListWithConfig } from \"~/config/list\";\nimport { LogsModule } from \"~/views/Logs/LogsModule\";\nimport { AuditLogsPermissions } from \"~/plugins/permissionRenderer\";\nimport AuditLogsView from \"~/views/Logs/Logs\";\nimport { LOCAL_STORAGE_LATEST_VISITED_FOLDER } from \"~/constants\";\nimport { AdminConfig } from \"@webiny/app-admin\";\n\nconst { Menu, Route } = AdminConfig;\n\nexport const AuditLogs = () => {\n const client = useApolloClient();\n const wcp = useWcp();\n\n const createNavigateFolderStorageKey = useCallback(() => {\n return LOCAL_STORAGE_LATEST_VISITED_FOLDER;\n }, []);\n\n if (!wcp.canUseAuditLogs()) {\n return null;\n }\n\n return (\n <>\n <LogsModule />\n <AdminConfig>\n <HasPermission any={[\"al.*\"]}>\n <Menu\n name=\"auditLogs\"\n element={\n <Menu.Link\n text={\"Audit Logs\"}\n icon={<Menu.Link.Icon element={<Icon />} label={\"Audit Logs\"} />}\n to={\"/audit-logs\"}\n />\n }\n />\n <Route\n name={\"auditLogs\"}\n exact\n path={\"/audit-logs\"}\n element={\n <Layout title={\"Audit Logs - Logs\"}>\n <AuditLogsListWithConfig>\n <AcoProvider\n id=\"AuditLogs\"\n client={client}\n createNavigateFolderStorageKey={\n createNavigateFolderStorageKey\n }\n >\n <AuditLogsView />\n </AcoProvider>\n </AuditLogsListWithConfig>\n </Layout>\n }\n />\n </HasPermission>\n </AdminConfig>\n <AuditLogsPermissions />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,cAAc,IAAIC,IAAI,QAAQ,iCAAiC;AACxE,SAASC,MAAM,EAAEC,MAAM,QAAQ,mBAAmB;AAClD,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,uBAAuB;AAChC,SAASC,UAAU;AACnB,SAASC,oBAAoB;AAC7B,OAAOC,aAAa;AACpB,SAASC,mCAAmC;AAC5C,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,MAAM;EAAEC,IAAI;EAAEC;AAAM,CAAC,GAAGF,WAAW;AAEnC,OAAO,MAAMG,SAAS,GAAGA,CAAA,KAAM;EAC3B,MAAMC,MAAM,GAAGhB,eAAe,CAAC,CAAC;EAChC,MAAMiB,GAAG,GAAGb,MAAM,CAAC,CAAC;EAEpB,MAAMc,8BAA8B,GAAGnB,WAAW,CAAC,MAAM;IACrD,OAAOY,mCAAmC;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAACM,GAAG,CAACE,eAAe,CAAC,CAAC,EAAE;IACxB,OAAO,IAAI;EACf;EAEA,oBACIrB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,qBACIvB,KAAA,CAAAsB,aAAA,CAACZ,UAAU,MAAE,CAAC,eACdV,KAAA,CAAAsB,aAAA,CAACR,WAAW,qBACRd,KAAA,CAAAsB,aAAA,CAACf,aAAa;IAACiB,GAAG,EAAE,CAAC,MAAM;EAAE,gBACzBxB,KAAA,CAAAsB,aAAA,CAACP,IAAI;IACDU,IAAI,EAAC,WAAW;IAChBC,OAAO,eACH1B,KAAA,CAAAsB,aAAA,CAACP,IAAI,CAACY,IAAI;MACNC,IAAI,EAAE,YAAa;MACnBC,IAAI,eAAE7B,KAAA,CAAAsB,aAAA,CAACP,IAAI,CAACY,IAAI,CAACvB,IAAI;QAACsB,OAAO,eAAE1B,KAAA,CAAAsB,aAAA,CAAClB,IAAI,MAAE,CAAE;QAAC0B,KAAK,EAAE;MAAa,CAAE,CAAE;MACjEC,EAAE,EAAE;IAAc,CACrB;EACJ,CACJ,CAAC,eACF/B,KAAA,CAAAsB,aAAA,CAACN,KAAK;IACFS,IAAI,EAAE,WAAY;IAClBO,KAAK;IACLC,IAAI,EAAE,aAAc;IACpBP,OAAO,eACH1B,KAAA,CAAAsB,aAAA,CAACjB,MAAM;MAAC6B,KAAK,EAAE;IAAoB,gBAC/BlC,KAAA,CAAAsB,aAAA,CAACb,uBAAuB,qBACpBT,KAAA,CAAAsB,aAAA,CAACd,WAAW;MACR2B,EAAE,EAAC,WAAW;MACdjB,MAAM,EAAEA,MAAO;MACfE,8BAA8B,EAC1BA;IACH,gBAEDpB,KAAA,CAAAsB,aAAA,CAACV,aAAa,MAAE,CACP,CACQ,CACrB;EACX,CACJ,CACU,CACN,CAAC,eACdZ,KAAA,CAAAsB,aAAA,CAACX,oBAAoB,MAAE,CACzB,CAAC;AAEX,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-audit-logs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-alpha.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,16 +12,18 @@
|
|
|
12
12
|
"@apollo/react-hooks": "3.1.5",
|
|
13
13
|
"@emotion/react": "11.10.8",
|
|
14
14
|
"@emotion/styled": "11.10.6",
|
|
15
|
-
"@webiny/
|
|
16
|
-
"@webiny/
|
|
17
|
-
"@webiny/app
|
|
18
|
-
"@webiny/app-
|
|
19
|
-
"@webiny/app-
|
|
20
|
-
"@webiny/
|
|
21
|
-
"@webiny/
|
|
22
|
-
"@webiny/
|
|
23
|
-
"@webiny/
|
|
24
|
-
"@webiny/
|
|
15
|
+
"@webiny/admin-ui": "6.0.0-alpha.0",
|
|
16
|
+
"@webiny/api-audit-logs": "6.0.0-alpha.0",
|
|
17
|
+
"@webiny/app": "6.0.0-alpha.0",
|
|
18
|
+
"@webiny/app-aco": "6.0.0-alpha.0",
|
|
19
|
+
"@webiny/app-admin": "6.0.0-alpha.0",
|
|
20
|
+
"@webiny/app-security": "6.0.0-alpha.0",
|
|
21
|
+
"@webiny/form": "6.0.0-alpha.0",
|
|
22
|
+
"@webiny/icons": "6.0.0-alpha.0",
|
|
23
|
+
"@webiny/plugins": "6.0.0-alpha.0",
|
|
24
|
+
"@webiny/react-properties": "6.0.0-alpha.0",
|
|
25
|
+
"@webiny/react-router": "6.0.0-alpha.0",
|
|
26
|
+
"@webiny/ui": "6.0.0-alpha.0",
|
|
25
27
|
"date-fns": "2.29.3",
|
|
26
28
|
"emotion": "10.0.27",
|
|
27
29
|
"graphql-tag": "2.12.6",
|
|
@@ -31,10 +33,8 @@
|
|
|
31
33
|
"react": "18.2.0"
|
|
32
34
|
},
|
|
33
35
|
"devDependencies": {
|
|
34
|
-
"@material-design-icons/svg": "0.14.13",
|
|
35
|
-
"@material-symbols/svg-400": "0.4.3",
|
|
36
36
|
"@types/react": "18.2.79",
|
|
37
|
-
"@webiny/project-utils": "
|
|
37
|
+
"@webiny/project-utils": "6.0.0-alpha.0",
|
|
38
38
|
"execa": "5.1.1",
|
|
39
39
|
"rimraf": "6.0.1",
|
|
40
40
|
"typescript": "5.3.3"
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"build": "node ../cli/bin.js run build",
|
|
48
48
|
"watch": "node ../cli/bin.js run watch"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "a5b28fed7a242d8f56712197a8ea83aa6d2ed101"
|
|
51
51
|
}
|
|
@@ -1,43 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var FULL_ACCESS = "full";
|
|
22
|
-
var NO_ACCESS = "no";
|
|
23
|
-
var CUSTOM_ACCESS = "custom";
|
|
24
|
-
var AuditLogsPermissions = exports.AuditLogsPermissions = function AuditLogsPermissions(_ref) {
|
|
25
|
-
var value = _ref.value,
|
|
26
|
-
onChange = _ref.onChange;
|
|
27
|
-
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
28
|
-
getPermission = _useSecurity.getPermission;
|
|
1
|
+
import React, { Fragment, useCallback, useMemo } from "react";
|
|
2
|
+
import { Grid, Cell } from "@webiny/ui/Grid";
|
|
3
|
+
import { Select } from "@webiny/ui/Select";
|
|
4
|
+
import { i18n } from "@webiny/app/i18n";
|
|
5
|
+
import { CannotUseAaclAlert, PermissionInfo, gridWithPaddingClass } from "@webiny/app-admin/components/Permissions";
|
|
6
|
+
import { Form } from "@webiny/form";
|
|
7
|
+
import { useSecurity } from "@webiny/app-security";
|
|
8
|
+
const t = i18n.ns("app-audit-logs/plugins/permissionRenderer");
|
|
9
|
+
const AUDIT_LOGS = "al";
|
|
10
|
+
const AUDIT_LOGS_FULL_ACCESS = "al.*";
|
|
11
|
+
const FULL_ACCESS = "full";
|
|
12
|
+
const NO_ACCESS = "no";
|
|
13
|
+
const CUSTOM_ACCESS = "custom";
|
|
14
|
+
export const AuditLogsPermissions = ({
|
|
15
|
+
value,
|
|
16
|
+
onChange
|
|
17
|
+
}) => {
|
|
18
|
+
const {
|
|
19
|
+
getPermission
|
|
20
|
+
} = useSecurity();
|
|
29
21
|
|
|
30
22
|
// We disable form elements for custom permissions if AACL cannot be used.
|
|
31
|
-
|
|
23
|
+
const cannotUseAAcl = useMemo(() => {
|
|
32
24
|
return !getPermission("aacl", true);
|
|
33
25
|
}, []);
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
const onFormChange = useCallback(formData => {
|
|
27
|
+
let newValue = [];
|
|
36
28
|
if (Array.isArray(value)) {
|
|
37
29
|
// Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.
|
|
38
|
-
newValue = value.filter(
|
|
39
|
-
return !item.name.startsWith(AUDIT_LOGS);
|
|
40
|
-
});
|
|
30
|
+
newValue = value.filter(item => !item.name.startsWith(AUDIT_LOGS));
|
|
41
31
|
}
|
|
42
32
|
if (formData.accessLevel === NO_ACCESS) {
|
|
43
33
|
onChange(newValue);
|
|
@@ -55,63 +45,56 @@ var AuditLogsPermissions = exports.AuditLogsPermissions = function AuditLogsPerm
|
|
|
55
45
|
|
|
56
46
|
onChange(newValue);
|
|
57
47
|
}, [value]);
|
|
58
|
-
|
|
48
|
+
const formData = useMemo(() => {
|
|
59
49
|
if (!Array.isArray(value)) {
|
|
60
50
|
return {
|
|
61
51
|
accessLevel: NO_ACCESS
|
|
62
52
|
};
|
|
63
53
|
}
|
|
64
|
-
|
|
65
|
-
return item.name === AUDIT_LOGS_FULL_ACCESS || item.name === "*";
|
|
66
|
-
});
|
|
54
|
+
const hasFullAccess = value.find(item => item.name === AUDIT_LOGS_FULL_ACCESS || item.name === "*");
|
|
67
55
|
if (hasFullAccess) {
|
|
68
56
|
return {
|
|
69
57
|
accessLevel: FULL_ACCESS
|
|
70
58
|
};
|
|
71
59
|
}
|
|
72
|
-
|
|
73
|
-
return item.name.startsWith(AUDIT_LOGS);
|
|
74
|
-
});
|
|
60
|
+
const permissions = value.filter(item => item.name.startsWith(AUDIT_LOGS));
|
|
75
61
|
if (!permissions.length) {
|
|
76
62
|
return {
|
|
77
63
|
accessLevel: NO_ACCESS
|
|
78
64
|
};
|
|
79
65
|
}
|
|
80
|
-
|
|
66
|
+
const formData = {
|
|
81
67
|
accessLevel: CUSTOM_ACCESS
|
|
82
68
|
};
|
|
83
69
|
return formData;
|
|
84
70
|
}, []);
|
|
85
|
-
return /*#__PURE__*/
|
|
71
|
+
return /*#__PURE__*/React.createElement(Form, {
|
|
86
72
|
data: formData,
|
|
87
73
|
onChange: onFormChange
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
});
|
|
74
|
+
}, ({
|
|
75
|
+
data,
|
|
76
|
+
Bind
|
|
77
|
+
}) => /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Grid, {
|
|
78
|
+
className: gridWithPaddingClass
|
|
79
|
+
}, /*#__PURE__*/React.createElement(Cell, {
|
|
80
|
+
span: 12
|
|
81
|
+
}, data.accessLevel === "custom" && cannotUseAAcl && /*#__PURE__*/React.createElement(CannotUseAaclAlert, null))), /*#__PURE__*/React.createElement(Grid, {
|
|
82
|
+
className: gridWithPaddingClass
|
|
83
|
+
}, /*#__PURE__*/React.createElement(Cell, {
|
|
84
|
+
span: 6
|
|
85
|
+
}, /*#__PURE__*/React.createElement(PermissionInfo, {
|
|
86
|
+
title: t`Access Level`
|
|
87
|
+
})), /*#__PURE__*/React.createElement(Cell, {
|
|
88
|
+
span: 6
|
|
89
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
90
|
+
name: "accessLevel"
|
|
91
|
+
}, /*#__PURE__*/React.createElement(Select, null, /*#__PURE__*/React.createElement("option", {
|
|
92
|
+
value: NO_ACCESS
|
|
93
|
+
}, t`No access`), /*#__PURE__*/React.createElement("option", {
|
|
94
|
+
value: FULL_ACCESS
|
|
95
|
+
}, t`Full access`), /*#__PURE__*/React.createElement("option", {
|
|
96
|
+
value: CUSTOM_ACCESS
|
|
97
|
+
}, t`Custom access`))))), data.accessLevel === CUSTOM_ACCESS && /*#__PURE__*/React.createElement(React.Fragment, null)));
|
|
115
98
|
};
|
|
116
99
|
|
|
117
100
|
//# sourceMappingURL=AuditLogsPermissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","Fragment","useCallback","useMemo","Grid","Cell","Select","i18n","CannotUseAaclAlert","PermissionInfo","gridWithPaddingClass","Form","useSecurity","t","ns","AUDIT_LOGS","AUDIT_LOGS_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","AuditLogsPermissions","value","onChange","getPermission","cannotUseAAcl","onFormChange","formData","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","hasFullAccess","find","permissions","length","createElement","data","Bind","className","span","title"],"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 gridWithPaddingClass\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 = ({ value, onChange }: PageBuilderPermissionsProps) => {\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: SecurityPermission) => {\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={gridWithPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAAcl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridWithPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select>\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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","ignoreList":[]}
|
|
@@ -1,37 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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() {
|
|
1
|
+
import React, { useEffect } from "react";
|
|
2
|
+
import { ReactComponent as PermissionsIcon } from "@webiny/icons/manage_search.svg";
|
|
3
|
+
import { i18n } from "@webiny/app/i18n";
|
|
4
|
+
import { plugins } from "@webiny/plugins";
|
|
5
|
+
import { Accordion } from "@webiny/admin-ui";
|
|
6
|
+
import { AuditLogsPermissions as AuditLogsPermissionsComponent } from "./AuditLogsPermissions";
|
|
7
|
+
const t = i18n.ns("app-audit-logs/plugins/permissionRenderer");
|
|
8
|
+
const createPermissions = () => {
|
|
19
9
|
return {
|
|
20
10
|
type: "admin-app-permissions-renderer",
|
|
21
11
|
name: "admin-app-permissions-renderer-audit-logs",
|
|
22
|
-
render
|
|
23
|
-
return /*#__PURE__*/
|
|
24
|
-
icon: /*#__PURE__*/
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
render(props) {
|
|
13
|
+
return /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
14
|
+
icon: /*#__PURE__*/React.createElement(Accordion.Item.Icon, {
|
|
15
|
+
icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
|
|
16
|
+
label: "Audit Logs Permissions"
|
|
17
|
+
}),
|
|
18
|
+
title: t`Audit Logs`,
|
|
19
|
+
description: t`Manage Audit Logs app access permissions.`,
|
|
27
20
|
"data-testid": "permission.al"
|
|
28
|
-
}, /*#__PURE__*/
|
|
21
|
+
}, /*#__PURE__*/React.createElement(AuditLogsPermissionsComponent, props));
|
|
29
22
|
}
|
|
30
23
|
};
|
|
31
24
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
export const AuditLogsPermissions = () => {
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
plugins.register(createPermissions());
|
|
35
28
|
}, []);
|
|
36
29
|
return null;
|
|
37
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useEffect","ReactComponent","PermissionsIcon","i18n","plugins","Accordion","AuditLogsPermissions","AuditLogsPermissionsComponent","t","ns","createPermissions","type","name","render","props","createElement","Item","icon","Icon","label","title","description","register"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/manage_search.svg\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Accordion } from \"@webiny/admin-ui\";\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 <Accordion.Item\n icon={\n <Accordion.Item.Icon\n icon={<PermissionsIcon />}\n label={\"Audit Logs Permissions\"}\n />\n }\n title={t`Audit Logs`}\n description={t`Manage Audit Logs app access permissions.`}\n data-testid={\"permission.al\"}\n >\n <AuditLogsPermissionsComponent {...props} />\n </Accordion.Item>\n );\n }\n };\n};\n\nexport const AuditLogsPermissions = () => {\n useEffect(() => {\n plugins.register(createPermissions());\n }, []);\n return null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,cAAc,IAAIC,eAAe,QAAQ,iCAAiC;AAEnF,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,SAAS,QAAQ,kBAAkB;AAG5C,SAASC,oBAAoB,IAAIC,6BAA6B;AAE9D,MAAMC,CAAC,GAAGL,IAAI,CAACM,EAAE,CAAC,2CAA2C,CAAC;AAE9D,MAAMC,iBAAiB,GAAGA,CAAA,KAAwC;EAC9D,OAAO;IACHC,IAAI,EAAE,gCAAgC;IACtCC,IAAI,EAAE,2CAA2C;IACjDC,MAAMA,CAACC,KAAK,EAAE;MACV,oBACIf,KAAA,CAAAgB,aAAA,CAACV,SAAS,CAACW,IAAI;QACXC,IAAI,eACAlB,KAAA,CAAAgB,aAAA,CAACV,SAAS,CAACW,IAAI,CAACE,IAAI;UAChBD,IAAI,eAAElB,KAAA,CAAAgB,aAAA,CAACb,eAAe,MAAE,CAAE;UAC1BiB,KAAK,EAAE;QAAyB,CACnC,CACJ;QACDC,KAAK,EAAEZ,CAAC,YAAa;QACrBa,WAAW,EAAEb,CAAC,2CAA4C;QAC1D,eAAa;MAAgB,gBAE7BT,KAAA,CAAAgB,aAAA,CAACR,6BAA6B,EAAKO,KAAQ,CAC/B,CAAC;IAEzB;EACJ,CAAC;AACL,CAAC;AAED,OAAO,MAAMR,oBAAoB,GAAGA,CAAA,KAAM;EACtCN,SAAS,CAAC,MAAM;IACZI,OAAO,CAACkB,QAAQ,CAACZ,iBAAiB,CAAC,CAAC,CAAC;EACzC,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
package/types.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ActionType = void 0;
|
|
7
|
-
var ActionType = exports.ActionType = /*#__PURE__*/function (ActionType) {
|
|
1
|
+
export let ActionType = /*#__PURE__*/function (ActionType) {
|
|
8
2
|
ActionType["CREATE"] = "CREATE";
|
|
9
3
|
ActionType["UPDATE"] = "UPDATE";
|
|
10
4
|
ActionType["DELETE"] = "DELETE";
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ActionType"
|
|
1
|
+
{"version":3,"names":["ActionType"],"sources":["types.ts"],"sourcesContent":["export enum ActionType {\n CREATE = \"CREATE\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n MOVE_TO_TRASH = \"MOVE_TO_TRASH\",\n RESTORE_FROM_TRASH = \"RESTORE_FROM_TRASH\",\n PUBLISH = \"PUBLISH\",\n UNPUBLISH = \"UNPUBLISH\",\n IMPORT = \"IMPORT\",\n EXPORT = \"EXPORT\"\n}\n\nexport interface AuditLog {\n id: string;\n message: string;\n app: string;\n entity: string;\n entityId: string;\n action: ActionType;\n data: string;\n timestamp: Date;\n initiator: string;\n}\n\nexport interface User {\n id: string;\n firstName: string;\n lastName: string;\n group?: {\n name: string;\n };\n}\n"],"mappings":"AAAA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
|