@strapi/admin 5.50.2 → 5.51.1
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/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +14 -6
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +14 -6
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js +77 -2
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs +76 -3
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +23 -1
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +23 -1
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +38 -7
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +18 -7
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js +4 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs +4 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +17 -6
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs +18 -7
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js +23 -26
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs +23 -26
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js +10 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs +10 -2
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-domain.js +42 -0
- package/dist/admin/shared/utils/auth-cookie-domain.js.map +1 -0
- package/dist/admin/shared/utils/auth-cookie-domain.mjs +39 -0
- package/dist/admin/shared/utils/auth-cookie-domain.mjs.map +1 -0
- package/dist/admin/shared/utils/auth-cookie-name.js +2 -2
- package/dist/admin/shared/utils/auth-cookie-name.js.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-name.mjs +2 -2
- package/dist/admin/shared/utils/auth-cookie-name.mjs.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-path.js +40 -0
- package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -0
- package/dist/admin/shared/utils/auth-cookie-path.mjs +37 -0
- package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -0
- package/dist/admin/src/utils/cookies.d.ts +21 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.d.ts +6 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +5 -3
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +8 -4
- package/dist/ee/admin/src/services/auditLogs.d.ts +5 -2
- package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts +1 -0
- package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +16 -0
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -0
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +1 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/services/auth.d.ts.map +1 -1
- package/dist/ee/server/src/services/user.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js +10 -0
- package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs +11 -1
- package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js +24 -32
- package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs +24 -32
- package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js +33 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs +33 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js +8 -0
- package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs +8 -1
- package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +9 -3
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +10 -4
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js +5 -5
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs +5 -5
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/user.js +1 -0
- package/dist/server/ee/server/src/services/user.js.map +1 -1
- package/dist/server/ee/server/src/services/user.mjs +1 -0
- package/dist/server/ee/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/content-types/User.js +6 -0
- package/dist/server/server/src/content-types/User.js.map +1 -1
- package/dist/server/server/src/content-types/User.mjs +6 -0
- package/dist/server/server/src/content-types/User.mjs.map +1 -1
- package/dist/server/server/src/controllers/authentication.js +12 -10
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +10 -8
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js +17 -4
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs +17 -4
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js +51 -6
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs +46 -6
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/index.js +1 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/user.js +1 -0
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +1 -0
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/shared/utils/auth-cookie-domain.js +42 -0
- package/dist/server/shared/utils/auth-cookie-domain.js.map +1 -0
- package/dist/server/shared/utils/auth-cookie-domain.mjs +39 -0
- package/dist/server/shared/utils/auth-cookie-domain.mjs.map +1 -0
- package/dist/server/shared/utils/auth-cookie-name.js +2 -2
- package/dist/server/shared/utils/auth-cookie-name.js.map +1 -1
- package/dist/server/shared/utils/auth-cookie-name.mjs +2 -2
- package/dist/server/shared/utils/auth-cookie-name.mjs.map +1 -1
- package/dist/server/shared/utils/auth-cookie-path.js +40 -0
- package/dist/server/shared/utils/auth-cookie-path.js.map +1 -0
- package/dist/server/shared/utils/auth-cookie-path.mjs +37 -0
- package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -0
- package/dist/server/shared/utils/session-auth.js +54 -3
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/shared/utils/session-auth.mjs +51 -4
- package/dist/server/shared/utils/session-auth.mjs.map +1 -1
- package/dist/server/src/content-types/User.d.ts +6 -0
- package/dist/server/src/content-types/User.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +6 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts +1 -0
- package/dist/server/src/domain/user.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +6 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/services/auth.d.ts +18 -0
- package/dist/server/src/services/auth.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/api-token.d.ts +2 -2
- package/dist/shared/contracts/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/audit-logs.d.ts +19 -1
- package/dist/shared/contracts/audit-logs.d.ts.map +1 -1
- package/dist/shared/contracts/authentication.d.ts +1 -1
- package/dist/shared/contracts/authentication.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +2 -2
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/dist/shared/contracts/shared.d.ts +2 -1
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/dist/shared/contracts/user.d.ts +1 -1
- package/dist/shared/contracts/user.d.ts.map +1 -1
- package/dist/shared/utils/__tests__/auth-cookie-domain.test.d.ts +1 -0
- package/dist/shared/utils/__tests__/auth-cookie-domain.test.d.ts.map +1 -0
- package/dist/shared/utils/__tests__/auth-cookie-path.test.d.ts +1 -0
- package/dist/shared/utils/__tests__/auth-cookie-path.test.d.ts.map +1 -0
- package/dist/shared/utils/auth-cookie-domain.d.ts +21 -0
- package/dist/shared/utils/auth-cookie-domain.d.ts.map +1 -0
- package/dist/shared/utils/auth-cookie-name.d.ts +1 -1
- package/dist/shared/utils/auth-cookie-name.d.ts.map +1 -1
- package/dist/shared/utils/auth-cookie-path.d.ts +17 -0
- package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -0
- package/dist/shared/utils/session-auth.d.ts +15 -0
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +10 -10
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js
CHANGED
|
@@ -4,7 +4,6 @@ var React = require('react');
|
|
|
4
4
|
var Notifications = require('../../../../../../../../admin/src/features/Notifications.js');
|
|
5
5
|
var useAPIErrorHandler = require('../../../../../../../../admin/src/hooks/useAPIErrorHandler.js');
|
|
6
6
|
var useQueryParams = require('../../../../../../../../admin/src/hooks/useQueryParams.js');
|
|
7
|
-
var users = require('../../../../../../../../admin/src/services/users.js');
|
|
8
7
|
var auditLogs = require('../../../../../services/auditLogs.js');
|
|
9
8
|
|
|
10
9
|
function _interopNamespace(e) {
|
|
@@ -27,14 +26,24 @@ function _interopNamespace(e) {
|
|
|
27
26
|
|
|
28
27
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
28
|
|
|
30
|
-
const useAuditLogsData = ({ canReadAuditLogs,
|
|
29
|
+
const useAuditLogsData = ({ canReadAuditLogs, usersPageSize })=>{
|
|
31
30
|
const { toggleNotification } = Notifications.useNotification();
|
|
32
31
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler.useAPIErrorHandler();
|
|
33
32
|
const [{ query }] = useQueryParams.useQueryParams();
|
|
34
|
-
const { data, error, isError: isUsersError, isLoading: isLoadingUsers } =
|
|
35
|
-
|
|
33
|
+
const { data, error, isError: isUsersError, isLoading: isLoadingUsers } = auditLogs.useGetAuditLogUsersQuery({
|
|
34
|
+
pageSize: usersPageSize
|
|
35
|
+
}, {
|
|
36
|
+
skip: !canReadAuditLogs,
|
|
36
37
|
refetchOnMountOrArgChange: true
|
|
37
38
|
});
|
|
39
|
+
const [usersData, setUsersData] = React__namespace.useState();
|
|
40
|
+
React__namespace.useEffect(()=>{
|
|
41
|
+
if (data) {
|
|
42
|
+
setUsersData(data);
|
|
43
|
+
}
|
|
44
|
+
}, [
|
|
45
|
+
data
|
|
46
|
+
]);
|
|
38
47
|
React__namespace.useEffect(()=>{
|
|
39
48
|
if (error) {
|
|
40
49
|
toggleNotification({
|
|
@@ -65,8 +74,10 @@ const useAuditLogsData = ({ canReadAuditLogs, canReadUsers })=>{
|
|
|
65
74
|
]);
|
|
66
75
|
return {
|
|
67
76
|
auditLogs: auditLogs$1,
|
|
68
|
-
users:
|
|
69
|
-
|
|
77
|
+
users: usersData?.results ?? [],
|
|
78
|
+
usersPagination: usersData?.pagination ?? undefined,
|
|
79
|
+
isLoadingUsers,
|
|
80
|
+
isLoading: isLoadingUsers && !usersData || isLoadingAuditLogs,
|
|
70
81
|
hasError: isAuditLogsError || isUsersError
|
|
71
82
|
};
|
|
72
83
|
};
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuditLogsData.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport {
|
|
1
|
+
{"version":3,"file":"useAuditLogsData.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useGetAuditLogsQuery, useGetAuditLogUsersQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n usersPageSize,\n}: {\n canReadAuditLogs: boolean;\n usersPageSize: number;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useGetAuditLogUsersQuery(\n { pageSize: usersPageSize },\n {\n skip: !canReadAuditLogs,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [usersData, setUsersData] = React.useState<typeof data>();\n\n React.useEffect(() => {\n if (data) {\n setUsersData(data);\n }\n }, [data]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: usersData?.results ?? [],\n usersPagination: usersData?.pagination ?? undefined,\n isLoadingUsers,\n isLoading: (isLoadingUsers && !usersData) || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n"],"names":["useAuditLogsData","canReadAuditLogs","usersPageSize","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","query","useQueryParams","data","error","isError","isUsersError","isLoading","isLoadingUsers","useGetAuditLogUsersQuery","pageSize","skip","refetchOnMountOrArgChange","usersData","setUsersData","React","useState","useEffect","type","message","auditLogs","isLoadingAuditLogs","isAuditLogsError","auditLogsError","useGetAuditLogsQuery","users","results","usersPagination","pagination","undefined","hasError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOaA,gBAAAA,GAAmB,CAAC,EAC/BC,gBAAgB,EAChBC,aAAa,EAId,GAAA;IACC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,qCAAAA,EAAAA;AACpD,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,6BAAAA,EAAAA;AAEpB,IAAA,MAAM,EACJC,IAAI,EACJC,KAAK,EACLC,OAAAA,EAASC,YAAY,EACrBC,SAAAA,EAAWC,cAAc,EAC1B,GAAGC,kCAAAA,CACF;QAAEC,QAAAA,EAAUf;KAAc,EAC1B;AACEgB,QAAAA,IAAAA,EAAM,CAACjB,gBAAAA;QACPkB,yBAAAA,EAA2B;AAC7B,KAAA,CAAA;AAGF,IAAA,MAAM,CAACC,SAAAA,EAAWC,YAAAA,CAAa,GAAGC,iBAAMC,QAAQ,EAAA;AAEhDD,IAAAA,gBAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,IAAId,IAAAA,EAAM;YACRW,YAAAA,CAAaX,IAAAA,CAAAA;AACf,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA;AAAK,KAAA,CAAA;AAETY,IAAAA,gBAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,IAAIb,KAAAA,EAAO;YACTR,kBAAAA,CAAmB;gBAAEsB,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,OAAAA,EAASpB,cAAAA,CAAeK,KAAAA;AAAO,aAAA,CAAA;AACtE,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,KAAAA;AAAOR,QAAAA,kBAAAA;AAAoBG,QAAAA;AAAe,KAAA,CAAA;AAE9C,IAAA,MAAM,EACJI,IAAAA,EAAMiB,WAAS,EACfb,WAAWc,kBAAkB,EAC7BhB,OAAAA,EAASiB,gBAAgB,EACzBlB,KAAAA,EAAOmB,cAAc,EACtB,GAAGC,+BAAqBvB,KAAAA,EAAO;QAC9BW,yBAAAA,EAA2B,IAAA;AAC3BD,QAAAA,IAAAA,EAAM,CAACjB;AACT,KAAA,CAAA;AAEAqB,IAAAA,gBAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,IAAIM,cAAAA,EAAgB;YAClB3B,kBAAAA,CAAmB;gBAAEsB,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,OAAAA,EAASpB,cAAAA,CAAewB,cAAAA;AAAgB,aAAA,CAAA;AAC/E,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,cAAAA;AAAgB3B,QAAAA,kBAAAA;AAAoBG,QAAAA;AAAe,KAAA,CAAA;IAEvD,OAAO;AACLqB,mBAAAA,WAAAA;QACAK,KAAAA,EAAOZ,SAAAA,EAAWa,WAAW,EAAE;AAC/BC,QAAAA,eAAAA,EAAiBd,WAAWe,UAAAA,IAAcC,SAAAA;AAC1CrB,QAAAA,cAAAA;QACAD,SAAAA,EAAYC,cAAAA,IAAkB,CAACK,SAAAA,IAAcQ,kBAAAA;AAC7CS,QAAAA,QAAAA,EAAUR,gBAAAA,IAAoBhB;AAChC,KAAA;AACF;;;;"}
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs
CHANGED
|
@@ -2,17 +2,26 @@ import * as React from 'react';
|
|
|
2
2
|
import { useNotification } from '../../../../../../../../admin/src/features/Notifications.mjs';
|
|
3
3
|
import { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler.mjs';
|
|
4
4
|
import { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams.mjs';
|
|
5
|
-
import {
|
|
6
|
-
import { useGetAuditLogsQuery } from '../../../../../services/auditLogs.mjs';
|
|
5
|
+
import { useGetAuditLogUsersQuery, useGetAuditLogsQuery } from '../../../../../services/auditLogs.mjs';
|
|
7
6
|
|
|
8
|
-
const useAuditLogsData = ({ canReadAuditLogs,
|
|
7
|
+
const useAuditLogsData = ({ canReadAuditLogs, usersPageSize })=>{
|
|
9
8
|
const { toggleNotification } = useNotification();
|
|
10
9
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
|
11
10
|
const [{ query }] = useQueryParams();
|
|
12
|
-
const { data, error, isError: isUsersError, isLoading: isLoadingUsers } =
|
|
13
|
-
|
|
11
|
+
const { data, error, isError: isUsersError, isLoading: isLoadingUsers } = useGetAuditLogUsersQuery({
|
|
12
|
+
pageSize: usersPageSize
|
|
13
|
+
}, {
|
|
14
|
+
skip: !canReadAuditLogs,
|
|
14
15
|
refetchOnMountOrArgChange: true
|
|
15
16
|
});
|
|
17
|
+
const [usersData, setUsersData] = React.useState();
|
|
18
|
+
React.useEffect(()=>{
|
|
19
|
+
if (data) {
|
|
20
|
+
setUsersData(data);
|
|
21
|
+
}
|
|
22
|
+
}, [
|
|
23
|
+
data
|
|
24
|
+
]);
|
|
16
25
|
React.useEffect(()=>{
|
|
17
26
|
if (error) {
|
|
18
27
|
toggleNotification({
|
|
@@ -43,8 +52,10 @@ const useAuditLogsData = ({ canReadAuditLogs, canReadUsers })=>{
|
|
|
43
52
|
]);
|
|
44
53
|
return {
|
|
45
54
|
auditLogs,
|
|
46
|
-
users:
|
|
47
|
-
|
|
55
|
+
users: usersData?.results ?? [],
|
|
56
|
+
usersPagination: usersData?.pagination ?? undefined,
|
|
57
|
+
isLoadingUsers,
|
|
58
|
+
isLoading: isLoadingUsers && !usersData || isLoadingAuditLogs,
|
|
48
59
|
hasError: isAuditLogsError || isUsersError
|
|
49
60
|
};
|
|
50
61
|
};
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuditLogsData.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport {
|
|
1
|
+
{"version":3,"file":"useAuditLogsData.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useGetAuditLogsQuery, useGetAuditLogUsersQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n usersPageSize,\n}: {\n canReadAuditLogs: boolean;\n usersPageSize: number;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useGetAuditLogUsersQuery(\n { pageSize: usersPageSize },\n {\n skip: !canReadAuditLogs,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [usersData, setUsersData] = React.useState<typeof data>();\n\n React.useEffect(() => {\n if (data) {\n setUsersData(data);\n }\n }, [data]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: usersData?.results ?? [],\n usersPagination: usersData?.pagination ?? undefined,\n isLoadingUsers,\n isLoading: (isLoadingUsers && !usersData) || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n"],"names":["useAuditLogsData","canReadAuditLogs","usersPageSize","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","query","useQueryParams","data","error","isError","isUsersError","isLoading","isLoadingUsers","useGetAuditLogUsersQuery","pageSize","skip","refetchOnMountOrArgChange","usersData","setUsersData","React","useState","useEffect","type","message","auditLogs","isLoadingAuditLogs","isAuditLogsError","auditLogsError","useGetAuditLogsQuery","users","results","usersPagination","pagination","undefined","hasError"],"mappings":";;;;;;MAOaA,gBAAAA,GAAmB,CAAC,EAC/BC,gBAAgB,EAChBC,aAAa,EAId,GAAA;IACC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;AACpD,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AAEpB,IAAA,MAAM,EACJC,IAAI,EACJC,KAAK,EACLC,OAAAA,EAASC,YAAY,EACrBC,SAAAA,EAAWC,cAAc,EAC1B,GAAGC,wBAAAA,CACF;QAAEC,QAAAA,EAAUf;KAAc,EAC1B;AACEgB,QAAAA,IAAAA,EAAM,CAACjB,gBAAAA;QACPkB,yBAAAA,EAA2B;AAC7B,KAAA,CAAA;AAGF,IAAA,MAAM,CAACC,SAAAA,EAAWC,YAAAA,CAAa,GAAGC,MAAMC,QAAQ,EAAA;AAEhDD,IAAAA,KAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,IAAId,IAAAA,EAAM;YACRW,YAAAA,CAAaX,IAAAA,CAAAA;AACf,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA;AAAK,KAAA,CAAA;AAETY,IAAAA,KAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,IAAIb,KAAAA,EAAO;YACTR,kBAAAA,CAAmB;gBAAEsB,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,OAAAA,EAASpB,cAAAA,CAAeK,KAAAA;AAAO,aAAA,CAAA;AACtE,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,KAAAA;AAAOR,QAAAA,kBAAAA;AAAoBG,QAAAA;AAAe,KAAA,CAAA;AAE9C,IAAA,MAAM,EACJI,IAAAA,EAAMiB,SAAS,EACfb,WAAWc,kBAAkB,EAC7BhB,OAAAA,EAASiB,gBAAgB,EACzBlB,KAAAA,EAAOmB,cAAc,EACtB,GAAGC,qBAAqBvB,KAAAA,EAAO;QAC9BW,yBAAAA,EAA2B,IAAA;AAC3BD,QAAAA,IAAAA,EAAM,CAACjB;AACT,KAAA,CAAA;AAEAqB,IAAAA,KAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,IAAIM,cAAAA,EAAgB;YAClB3B,kBAAAA,CAAmB;gBAAEsB,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,OAAAA,EAASpB,cAAAA,CAAewB,cAAAA;AAAgB,aAAA,CAAA;AAC/E,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,cAAAA;AAAgB3B,QAAAA,kBAAAA;AAAoBG,QAAAA;AAAe,KAAA,CAAA;IAEvD,OAAO;AACLqB,QAAAA,SAAAA;QACAK,KAAAA,EAAOZ,SAAAA,EAAWa,WAAW,EAAE;AAC/BC,QAAAA,eAAAA,EAAiBd,WAAWe,UAAAA,IAAcC,SAAAA;AAC1CrB,QAAAA,cAAAA;QACAD,SAAAA,EAAYC,cAAAA,IAAkB,CAACK,SAAAA,IAAcQ,kBAAAA;AAC7CS,QAAAA,QAAAA,EAAUR,gBAAAA,IAAoBhB;AAChC,KAAA;AACF;;;;"}
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var users = require('../../../../../../../../admin/src/utils/users.js');
|
|
4
3
|
var ComboboxFilter = require('../components/ComboboxFilter.js');
|
|
5
4
|
var getActionTypesDefaultMessages = require('./getActionTypesDefaultMessages.js');
|
|
6
5
|
|
|
7
|
-
const getDisplayedFilters = ({ formatMessage, users
|
|
6
|
+
const getDisplayedFilters = ({ formatMessage, users, usersFilter })=>{
|
|
8
7
|
const operators = [
|
|
9
8
|
{
|
|
10
9
|
label: formatMessage({
|
|
@@ -50,30 +49,28 @@ const getDisplayedFilters = ({ formatMessage, users: users$1, canReadUsers })=>{
|
|
|
50
49
|
type: 'datetime'
|
|
51
50
|
}
|
|
52
51
|
];
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
return filters;
|
|
52
|
+
return [
|
|
53
|
+
...filters,
|
|
54
|
+
{
|
|
55
|
+
input: ComboboxFilter.ComboboxFilter,
|
|
56
|
+
label: formatMessage({
|
|
57
|
+
id: 'Settings.permissions.auditLogs.user',
|
|
58
|
+
defaultMessage: 'User'
|
|
59
|
+
}),
|
|
60
|
+
mainField: {
|
|
61
|
+
name: 'id',
|
|
62
|
+
type: 'integer'
|
|
63
|
+
},
|
|
64
|
+
name: 'user',
|
|
65
|
+
operators,
|
|
66
|
+
options: users.map((user)=>({
|
|
67
|
+
label: user.displayName,
|
|
68
|
+
value: user.id.toString()
|
|
69
|
+
})),
|
|
70
|
+
type: 'relation',
|
|
71
|
+
...usersFilter
|
|
72
|
+
}
|
|
73
|
+
];
|
|
77
74
|
};
|
|
78
75
|
|
|
79
76
|
exports.getDisplayedFilters = getDisplayedFilters;
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDisplayedFilters.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts"],"sourcesContent":["import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport {
|
|
1
|
+
{"version":3,"file":"getDisplayedFilters.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts"],"sourcesContent":["import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { GetUsers } from '../../../../../../../../shared/contracts/audit-logs';\nimport { ComboboxFilter, ComboboxFilterProps } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\ntype UsersFilterProps = Pick<ComboboxFilterProps, 'loading' | 'hasMoreItems' | 'onLoadMore'>;\n\ntype AuditLogUser = NonNullable<GetUsers.Response['results']>[number];\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n usersFilter,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: AuditLogUser[];\n usersFilter?: UsersFilterProps;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: user.displayName,\n value: user.id.toString(),\n })),\n type: 'relation',\n ...usersFilter,\n } satisfies Filters.Filter & UsersFilterProps,\n ];\n};\n"],"names":["getDisplayedFilters","formatMessage","users","usersFilter","operators","label","id","defaultMessage","value","filters","input","ComboboxFilter","name","options","Object","keys","actionTypes","map","action","getDefaultMessage","model","undefined","type","mainField","user","displayName","toString"],"mappings":";;;;;AAYO,MAAMA,sBAAsB,CAAC,EAClCC,aAAa,EACbC,KAAK,EACLC,WAAW,EAKZ,GAAA;AACC,IAAA,MAAMC,SAAAA,GAAY;AAChB,QAAA;AACEC,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,2CAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAC,KAAAA,EAAO;AACT,SAAA;AACA,QAAA;AACEH,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,2CAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAC,KAAAA,EAAO;AACT;AACD,KAAA;AAED,IAAA,MAAMC,OAAAA,GAAU;AACd,QAAA;YACEC,KAAAA,EAAOC,6BAAAA;AACPN,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,uCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAK,IAAAA,EAAM,QAAA;AACNR,YAAAA,SAAAA;YACAS,OAAAA,EAAUC,OAAOC,IAAI,CAACC,2CAA8CC,GAAG,CAAC,CAACC,MAAAA,IAAY;AACnFb,oBAAAA,KAAAA,EAAOJ,aAAAA,CACL;wBACEK,EAAAA,EAAI,CAAC,+BAA+B,EAAEY,MAAAA,CAAAA,CAAQ;AAC9CX,wBAAAA,cAAAA,EAAgBY,+CAAAA,CAAkBD,MAAAA;qBACpC,EACA;wBAAEE,KAAAA,EAAOC;AAAU,qBAAA,CAAA;oBAErBb,KAAAA,EAAOU;iBACT,CAAA,CAAA;YACAI,IAAAA,EAAM;AACR,SAAA;AACA,QAAA;AACEjB,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,qCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAK,IAAAA,EAAM,MAAA;YACNU,IAAAA,EAAM;AACR;AACD,KAAA;IAED,OAAO;AACFb,QAAAA,GAAAA,OAAAA;AACH,QAAA;YACEC,KAAAA,EAAOC,6BAAAA;AACPN,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,qCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAgB,SAAAA,EAAW;gBAAEX,IAAAA,EAAM,IAAA;gBAAMU,IAAAA,EAAM;AAAU,aAAA;YACzCV,IAAAA,EAAM,MAAA;AACNR,YAAAA,SAAAA;AACAS,YAAAA,OAAAA,EAASX,KAAAA,CAAMe,GAAG,CAAC,CAACO,QAAU;AAC5BnB,oBAAAA,KAAAA,EAAOmB,KAAKC,WAAW;oBACvBjB,KAAAA,EAAOgB,IAAAA,CAAKlB,EAAE,CAACoB,QAAQ;iBACzB,CAAA,CAAA;YACAJ,IAAAA,EAAM,UAAA;AACN,YAAA,GAAGnB;AACL;AACD,KAAA;AACH;;;;"}
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { getDisplayName } from '../../../../../../../../admin/src/utils/users.mjs';
|
|
2
1
|
import { ComboboxFilter } from '../components/ComboboxFilter.mjs';
|
|
3
2
|
import { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages.mjs';
|
|
4
3
|
|
|
5
|
-
const getDisplayedFilters = ({ formatMessage, users,
|
|
4
|
+
const getDisplayedFilters = ({ formatMessage, users, usersFilter })=>{
|
|
6
5
|
const operators = [
|
|
7
6
|
{
|
|
8
7
|
label: formatMessage({
|
|
@@ -48,30 +47,28 @@ const getDisplayedFilters = ({ formatMessage, users, canReadUsers })=>{
|
|
|
48
47
|
type: 'datetime'
|
|
49
48
|
}
|
|
50
49
|
];
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
return filters;
|
|
50
|
+
return [
|
|
51
|
+
...filters,
|
|
52
|
+
{
|
|
53
|
+
input: ComboboxFilter,
|
|
54
|
+
label: formatMessage({
|
|
55
|
+
id: 'Settings.permissions.auditLogs.user',
|
|
56
|
+
defaultMessage: 'User'
|
|
57
|
+
}),
|
|
58
|
+
mainField: {
|
|
59
|
+
name: 'id',
|
|
60
|
+
type: 'integer'
|
|
61
|
+
},
|
|
62
|
+
name: 'user',
|
|
63
|
+
operators,
|
|
64
|
+
options: users.map((user)=>({
|
|
65
|
+
label: user.displayName,
|
|
66
|
+
value: user.id.toString()
|
|
67
|
+
})),
|
|
68
|
+
type: 'relation',
|
|
69
|
+
...usersFilter
|
|
70
|
+
}
|
|
71
|
+
];
|
|
75
72
|
};
|
|
76
73
|
|
|
77
74
|
export { getDisplayedFilters };
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDisplayedFilters.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts"],"sourcesContent":["import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport {
|
|
1
|
+
{"version":3,"file":"getDisplayedFilters.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts"],"sourcesContent":["import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { GetUsers } from '../../../../../../../../shared/contracts/audit-logs';\nimport { ComboboxFilter, ComboboxFilterProps } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\ntype UsersFilterProps = Pick<ComboboxFilterProps, 'loading' | 'hasMoreItems' | 'onLoadMore'>;\n\ntype AuditLogUser = NonNullable<GetUsers.Response['results']>[number];\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n usersFilter,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: AuditLogUser[];\n usersFilter?: UsersFilterProps;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: user.displayName,\n value: user.id.toString(),\n })),\n type: 'relation',\n ...usersFilter,\n } satisfies Filters.Filter & UsersFilterProps,\n ];\n};\n"],"names":["getDisplayedFilters","formatMessage","users","usersFilter","operators","label","id","defaultMessage","value","filters","input","ComboboxFilter","name","options","Object","keys","actionTypes","map","action","getDefaultMessage","model","undefined","type","mainField","user","displayName","toString"],"mappings":";;;AAYO,MAAMA,sBAAsB,CAAC,EAClCC,aAAa,EACbC,KAAK,EACLC,WAAW,EAKZ,GAAA;AACC,IAAA,MAAMC,SAAAA,GAAY;AAChB,QAAA;AACEC,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,2CAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAC,KAAAA,EAAO;AACT,SAAA;AACA,QAAA;AACEH,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,2CAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAC,KAAAA,EAAO;AACT;AACD,KAAA;AAED,IAAA,MAAMC,OAAAA,GAAU;AACd,QAAA;YACEC,KAAAA,EAAOC,cAAAA;AACPN,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,uCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAK,IAAAA,EAAM,QAAA;AACNR,YAAAA,SAAAA;YACAS,OAAAA,EAAUC,OAAOC,IAAI,CAACC,aAA8CC,GAAG,CAAC,CAACC,MAAAA,IAAY;AACnFb,oBAAAA,KAAAA,EAAOJ,aAAAA,CACL;wBACEK,EAAAA,EAAI,CAAC,+BAA+B,EAAEY,MAAAA,CAAAA,CAAQ;AAC9CX,wBAAAA,cAAAA,EAAgBY,iBAAAA,CAAkBD,MAAAA;qBACpC,EACA;wBAAEE,KAAAA,EAAOC;AAAU,qBAAA,CAAA;oBAErBb,KAAAA,EAAOU;iBACT,CAAA,CAAA;YACAI,IAAAA,EAAM;AACR,SAAA;AACA,QAAA;AACEjB,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,qCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAK,IAAAA,EAAM,MAAA;YACNU,IAAAA,EAAM;AACR;AACD,KAAA;IAED,OAAO;AACFb,QAAAA,GAAAA,OAAAA;AACH,QAAA;YACEC,KAAAA,EAAOC,cAAAA;AACPN,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,qCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAgB,SAAAA,EAAW;gBAAEX,IAAAA,EAAM,IAAA;gBAAMU,IAAAA,EAAM;AAAU,aAAA;YACzCV,IAAAA,EAAM,MAAA;AACNR,YAAAA,SAAAA;AACAS,YAAAA,OAAAA,EAASX,KAAAA,CAAMe,GAAG,CAAC,CAACO,QAAU;AAC5BnB,oBAAAA,KAAAA,EAAOmB,KAAKC,WAAW;oBACvBjB,KAAAA,EAAOgB,IAAAA,CAAKlB,EAAE,CAACoB,QAAQ;iBACzB,CAAA,CAAA;YACAJ,IAAAA,EAAM,UAAA;AACN,YAAA,GAAGnB;AACL;AACD,KAAA;AACH;;;;"}
|
|
@@ -14,12 +14,21 @@ const auditLogsService = api.adminApi.injectEndpoints({
|
|
|
14
14
|
}),
|
|
15
15
|
getAuditLog: builder.query({
|
|
16
16
|
query: (id)=>`/admin/audit-logs/${id}`
|
|
17
|
+
}),
|
|
18
|
+
getAuditLogUsers: builder.query({
|
|
19
|
+
query: (params)=>({
|
|
20
|
+
url: `/admin/audit-logs/users`,
|
|
21
|
+
config: {
|
|
22
|
+
params
|
|
23
|
+
}
|
|
24
|
+
})
|
|
17
25
|
})
|
|
18
26
|
}),
|
|
19
27
|
overrideExisting: false
|
|
20
28
|
});
|
|
21
|
-
const { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;
|
|
29
|
+
const { useGetAuditLogsQuery, useGetAuditLogQuery, useGetAuditLogUsersQuery } = auditLogsService;
|
|
22
30
|
|
|
23
31
|
exports.useGetAuditLogQuery = useGetAuditLogQuery;
|
|
32
|
+
exports.useGetAuditLogUsersQuery = useGetAuditLogUsersQuery;
|
|
24
33
|
exports.useGetAuditLogsQuery = useGetAuditLogsQuery;
|
|
25
34
|
//# sourceMappingURL=auditLogs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditLogs.js","sources":["../../../../../../ee/admin/src/services/auditLogs.ts"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n"],"names":["auditLogsService","adminApi","injectEndpoints","endpoints","builder","getAuditLogs","query","params","url","config","getAuditLog","id","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery"],"mappings":";;;;AAGA,MAAMA,gBAAAA,GAAmBC,YAAAA,CAASC,eAAe,CAAC;IAChDC,SAAAA,EAAW,CAACC,WAAa;YACvBC,YAAAA,EAAcD,OAAAA,CAAQE,KAAK,CAA+D;gBACxFA,KAAAA,EAAO,CAACC,UAAY;wBAClBC,GAAAA,EAAK,CAAC,iBAAiB,CAAC;wBACxBC,MAAAA,EAAQ;AACNF,4BAAAA;AACF;qBACF;AACF,aAAA,CAAA;YACAG,WAAAA,EAAaN,OAAAA,CAAQE,KAAK,CAAqD;AAC7EA,gBAAAA,KAAAA,EAAO,CAACK,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAAA,CAAAA;AACtC,aAAA;SACF,CAAA;
|
|
1
|
+
{"version":3,"file":"auditLogs.js","sources":["../../../../../../ee/admin/src/services/auditLogs.ts"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n getAuditLogUsers: builder.query<\n AuditLogs.GetUsers.Response,\n AuditLogs.GetUsers.Request['query']\n >({\n query: (params) => ({\n url: `/admin/audit-logs/users`,\n config: {\n params,\n },\n }),\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery, useGetAuditLogUsersQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery, useGetAuditLogUsersQuery };\n"],"names":["auditLogsService","adminApi","injectEndpoints","endpoints","builder","getAuditLogs","query","params","url","config","getAuditLog","id","getAuditLogUsers","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery","useGetAuditLogUsersQuery"],"mappings":";;;;AAGA,MAAMA,gBAAAA,GAAmBC,YAAAA,CAASC,eAAe,CAAC;IAChDC,SAAAA,EAAW,CAACC,WAAa;YACvBC,YAAAA,EAAcD,OAAAA,CAAQE,KAAK,CAA+D;gBACxFA,KAAAA,EAAO,CAACC,UAAY;wBAClBC,GAAAA,EAAK,CAAC,iBAAiB,CAAC;wBACxBC,MAAAA,EAAQ;AACNF,4BAAAA;AACF;qBACF;AACF,aAAA,CAAA;YACAG,WAAAA,EAAaN,OAAAA,CAAQE,KAAK,CAAqD;AAC7EA,gBAAAA,KAAAA,EAAO,CAACK,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAAA,CAAAA;AACtC,aAAA,CAAA;YACAC,gBAAAA,EAAkBR,OAAAA,CAAQE,KAAK,CAG7B;gBACAA,KAAAA,EAAO,CAACC,UAAY;wBAClBC,GAAAA,EAAK,CAAC,uBAAuB,CAAC;wBAC9BC,MAAAA,EAAQ;AACNF,4BAAAA;AACF;qBACF;AACF,aAAA;SACF,CAAA;IACAM,gBAAAA,EAAkB;AACpB,CAAA,CAAA;AAEA,MAAM,EAAEC,oBAAoB,EAAEC,mBAAmB,EAAEC,wBAAwB,EAAE,GAAGhB;;;;;;"}
|
|
@@ -12,11 +12,19 @@ const auditLogsService = adminApi.injectEndpoints({
|
|
|
12
12
|
}),
|
|
13
13
|
getAuditLog: builder.query({
|
|
14
14
|
query: (id)=>`/admin/audit-logs/${id}`
|
|
15
|
+
}),
|
|
16
|
+
getAuditLogUsers: builder.query({
|
|
17
|
+
query: (params)=>({
|
|
18
|
+
url: `/admin/audit-logs/users`,
|
|
19
|
+
config: {
|
|
20
|
+
params
|
|
21
|
+
}
|
|
22
|
+
})
|
|
15
23
|
})
|
|
16
24
|
}),
|
|
17
25
|
overrideExisting: false
|
|
18
26
|
});
|
|
19
|
-
const { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;
|
|
27
|
+
const { useGetAuditLogsQuery, useGetAuditLogQuery, useGetAuditLogUsersQuery } = auditLogsService;
|
|
20
28
|
|
|
21
|
-
export { useGetAuditLogQuery, useGetAuditLogsQuery };
|
|
29
|
+
export { useGetAuditLogQuery, useGetAuditLogUsersQuery, useGetAuditLogsQuery };
|
|
22
30
|
//# sourceMappingURL=auditLogs.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditLogs.mjs","sources":["../../../../../../ee/admin/src/services/auditLogs.ts"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n"],"names":["auditLogsService","adminApi","injectEndpoints","endpoints","builder","getAuditLogs","query","params","url","config","getAuditLog","id","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery"],"mappings":";;AAGA,MAAMA,gBAAAA,GAAmBC,QAAAA,CAASC,eAAe,CAAC;IAChDC,SAAAA,EAAW,CAACC,WAAa;YACvBC,YAAAA,EAAcD,OAAAA,CAAQE,KAAK,CAA+D;gBACxFA,KAAAA,EAAO,CAACC,UAAY;wBAClBC,GAAAA,EAAK,CAAC,iBAAiB,CAAC;wBACxBC,MAAAA,EAAQ;AACNF,4BAAAA;AACF;qBACF;AACF,aAAA,CAAA;YACAG,WAAAA,EAAaN,OAAAA,CAAQE,KAAK,CAAqD;AAC7EA,gBAAAA,KAAAA,EAAO,CAACK,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAAA,CAAAA;AACtC,aAAA;SACF,CAAA;
|
|
1
|
+
{"version":3,"file":"auditLogs.mjs","sources":["../../../../../../ee/admin/src/services/auditLogs.ts"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n getAuditLogUsers: builder.query<\n AuditLogs.GetUsers.Response,\n AuditLogs.GetUsers.Request['query']\n >({\n query: (params) => ({\n url: `/admin/audit-logs/users`,\n config: {\n params,\n },\n }),\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery, useGetAuditLogUsersQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery, useGetAuditLogUsersQuery };\n"],"names":["auditLogsService","adminApi","injectEndpoints","endpoints","builder","getAuditLogs","query","params","url","config","getAuditLog","id","getAuditLogUsers","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery","useGetAuditLogUsersQuery"],"mappings":";;AAGA,MAAMA,gBAAAA,GAAmBC,QAAAA,CAASC,eAAe,CAAC;IAChDC,SAAAA,EAAW,CAACC,WAAa;YACvBC,YAAAA,EAAcD,OAAAA,CAAQE,KAAK,CAA+D;gBACxFA,KAAAA,EAAO,CAACC,UAAY;wBAClBC,GAAAA,EAAK,CAAC,iBAAiB,CAAC;wBACxBC,MAAAA,EAAQ;AACNF,4BAAAA;AACF;qBACF;AACF,aAAA,CAAA;YACAG,WAAAA,EAAaN,OAAAA,CAAQE,KAAK,CAAqD;AAC7EA,gBAAAA,KAAAA,EAAO,CAACK,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAAA,CAAAA;AACtC,aAAA,CAAA;YACAC,gBAAAA,EAAkBR,OAAAA,CAAQE,KAAK,CAG7B;gBACAA,KAAAA,EAAO,CAACC,UAAY;wBAClBC,GAAAA,EAAK,CAAC,uBAAuB,CAAC;wBAC9BC,MAAAA,EAAQ;AACNF,4BAAAA;AACF;qBACF;AACF,aAAA;SACF,CAAA;IACAM,gBAAAA,EAAkB;AACpB,CAAA,CAAA;AAEA,MAAM,EAAEC,oBAAoB,EAAEC,mBAAmB,EAAEC,wBAAwB,EAAE,GAAGhB;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Domain attribute of the admin auth (access) token cookie, configurable
|
|
5
|
+
* through `admin.auth.cookie.domain` (falling back to `admin.auth.domain`) so
|
|
6
|
+
* multiple Strapi instances under the same parent domain share, or stay
|
|
7
|
+
* isolated to, the intended host.
|
|
8
|
+
*
|
|
9
|
+
* Browser-safe single source for both sides of the handoff: the admin panel
|
|
10
|
+
* cannot read server config, so the build transports the config value into
|
|
11
|
+
* the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN` variable
|
|
12
|
+
* (see create-build-context.ts in @strapi/strapi); the server resolves the
|
|
13
|
+
* same config at runtime. Changing the domain requires an admin rebuild, like
|
|
14
|
+
* any other admin config change.
|
|
15
|
+
*
|
|
16
|
+
* Defaults to `undefined` (host-only cookie) to match the browser default and
|
|
17
|
+
* the refresh-cookie behaviour in `getRefreshCookieOptions` when no domain is
|
|
18
|
+
* configured. A host-only cookie and a `Domain`-scoped cookie are distinct
|
|
19
|
+
* entries in the browser cookie store, so set and delete must agree on the
|
|
20
|
+
* domain or logout leaves a colliding copy behind.
|
|
21
|
+
*/ const DEFAULT_AUTH_COOKIE_DOMAIN = undefined;
|
|
22
|
+
const isValidCookieDomain = (domain)=>{
|
|
23
|
+
// RFC 6265 domain-av: a host name. No leading dot required, no scheme, no
|
|
24
|
+
// path, no port, and none of the control/attribute-separator characters.
|
|
25
|
+
// eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids
|
|
26
|
+
return !/[\x00-\x1F\x7F;,\s/:]/.test(domain);
|
|
27
|
+
};
|
|
28
|
+
const resolveAuthCookieDomain = (configuredDomain, warn = console.warn)=>{
|
|
29
|
+
const cookieDomain = (configuredDomain || '').trim();
|
|
30
|
+
if (!cookieDomain) {
|
|
31
|
+
return DEFAULT_AUTH_COOKIE_DOMAIN;
|
|
32
|
+
}
|
|
33
|
+
if (!isValidCookieDomain(cookieDomain)) {
|
|
34
|
+
warn(`Ignoring invalid admin auth cookie domain "${cookieDomain}" (must be a bare host name); using a host-only cookie instead.`);
|
|
35
|
+
return DEFAULT_AUTH_COOKIE_DOMAIN;
|
|
36
|
+
}
|
|
37
|
+
return cookieDomain;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.DEFAULT_AUTH_COOKIE_DOMAIN = DEFAULT_AUTH_COOKIE_DOMAIN;
|
|
41
|
+
exports.resolveAuthCookieDomain = resolveAuthCookieDomain;
|
|
42
|
+
//# sourceMappingURL=auth-cookie-domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-cookie-domain.js","sources":["../../../../shared/utils/auth-cookie-domain.ts"],"sourcesContent":["/**\n * Domain attribute of the admin auth (access) token cookie, configurable\n * through `admin.auth.cookie.domain` (falling back to `admin.auth.domain`) so\n * multiple Strapi instances under the same parent domain share, or stay\n * isolated to, the intended host.\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the config value into\n * the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN` variable\n * (see create-build-context.ts in @strapi/strapi); the server resolves the\n * same config at runtime. Changing the domain requires an admin rebuild, like\n * any other admin config change.\n *\n * Defaults to `undefined` (host-only cookie) to match the browser default and\n * the refresh-cookie behaviour in `getRefreshCookieOptions` when no domain is\n * configured. A host-only cookie and a `Domain`-scoped cookie are distinct\n * entries in the browser cookie store, so set and delete must agree on the\n * domain or logout leaves a colliding copy behind.\n */\nexport const DEFAULT_AUTH_COOKIE_DOMAIN = undefined;\n\nconst isValidCookieDomain = (domain: string): boolean => {\n // RFC 6265 domain-av: a host name. No leading dot required, no scheme, no\n // path, no port, and none of the control/attribute-separator characters.\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;,\\s/:]/.test(domain);\n};\n\nexport const resolveAuthCookieDomain = (\n configuredDomain?: string,\n warn: (message: string) => void = console.warn\n): string | undefined => {\n const cookieDomain = (configuredDomain || '').trim();\n\n if (!cookieDomain) {\n return DEFAULT_AUTH_COOKIE_DOMAIN;\n }\n\n if (!isValidCookieDomain(cookieDomain)) {\n warn(\n `Ignoring invalid admin auth cookie domain \"${cookieDomain}\" (must be a bare host name); using a host-only cookie instead.`\n );\n return DEFAULT_AUTH_COOKIE_DOMAIN;\n }\n\n return cookieDomain;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_DOMAIN","undefined","isValidCookieDomain","domain","test","resolveAuthCookieDomain","configuredDomain","warn","console","cookieDomain","trim"],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;IAmBO,MAAMA,0BAAAA,GAA6BC;AAE1C,MAAMC,sBAAsB,CAACC,MAAAA,GAAAA;;;;IAI3B,OAAO,CAAC,uBAAA,CAAwBC,IAAI,CAACD,MAAAA,CAAAA;AACvC,CAAA;MAEaE,uBAAAA,GAA0B,CACrCC,gBAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,eAAe,CAACH,gBAAAA,IAAoB,EAAC,EAAGI,IAAI,EAAA;AAElD,IAAA,IAAI,CAACD,YAAAA,EAAc;QACjB,OAAOT,0BAAAA;AACT,IAAA;IAEA,IAAI,CAACE,oBAAoBO,YAAAA,CAAAA,EAAe;AACtCF,QAAAA,IAAAA,CACE,CAAC,2CAA2C,EAAEE,YAAAA,CAAa,+DAA+D,CAAC,CAAA;QAE7H,OAAOT,0BAAAA;AACT,IAAA;IAEA,OAAOS,YAAAA;AACT;;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain attribute of the admin auth (access) token cookie, configurable
|
|
3
|
+
* through `admin.auth.cookie.domain` (falling back to `admin.auth.domain`) so
|
|
4
|
+
* multiple Strapi instances under the same parent domain share, or stay
|
|
5
|
+
* isolated to, the intended host.
|
|
6
|
+
*
|
|
7
|
+
* Browser-safe single source for both sides of the handoff: the admin panel
|
|
8
|
+
* cannot read server config, so the build transports the config value into
|
|
9
|
+
* the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN` variable
|
|
10
|
+
* (see create-build-context.ts in @strapi/strapi); the server resolves the
|
|
11
|
+
* same config at runtime. Changing the domain requires an admin rebuild, like
|
|
12
|
+
* any other admin config change.
|
|
13
|
+
*
|
|
14
|
+
* Defaults to `undefined` (host-only cookie) to match the browser default and
|
|
15
|
+
* the refresh-cookie behaviour in `getRefreshCookieOptions` when no domain is
|
|
16
|
+
* configured. A host-only cookie and a `Domain`-scoped cookie are distinct
|
|
17
|
+
* entries in the browser cookie store, so set and delete must agree on the
|
|
18
|
+
* domain or logout leaves a colliding copy behind.
|
|
19
|
+
*/ const DEFAULT_AUTH_COOKIE_DOMAIN = undefined;
|
|
20
|
+
const isValidCookieDomain = (domain)=>{
|
|
21
|
+
// RFC 6265 domain-av: a host name. No leading dot required, no scheme, no
|
|
22
|
+
// path, no port, and none of the control/attribute-separator characters.
|
|
23
|
+
// eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids
|
|
24
|
+
return !/[\x00-\x1F\x7F;,\s/:]/.test(domain);
|
|
25
|
+
};
|
|
26
|
+
const resolveAuthCookieDomain = (configuredDomain, warn = console.warn)=>{
|
|
27
|
+
const cookieDomain = (configuredDomain || '').trim();
|
|
28
|
+
if (!cookieDomain) {
|
|
29
|
+
return DEFAULT_AUTH_COOKIE_DOMAIN;
|
|
30
|
+
}
|
|
31
|
+
if (!isValidCookieDomain(cookieDomain)) {
|
|
32
|
+
warn(`Ignoring invalid admin auth cookie domain "${cookieDomain}" (must be a bare host name); using a host-only cookie instead.`);
|
|
33
|
+
return DEFAULT_AUTH_COOKIE_DOMAIN;
|
|
34
|
+
}
|
|
35
|
+
return cookieDomain;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { DEFAULT_AUTH_COOKIE_DOMAIN, resolveAuthCookieDomain };
|
|
39
|
+
//# sourceMappingURL=auth-cookie-domain.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-cookie-domain.mjs","sources":["../../../../shared/utils/auth-cookie-domain.ts"],"sourcesContent":["/**\n * Domain attribute of the admin auth (access) token cookie, configurable\n * through `admin.auth.cookie.domain` (falling back to `admin.auth.domain`) so\n * multiple Strapi instances under the same parent domain share, or stay\n * isolated to, the intended host.\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the config value into\n * the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN` variable\n * (see create-build-context.ts in @strapi/strapi); the server resolves the\n * same config at runtime. Changing the domain requires an admin rebuild, like\n * any other admin config change.\n *\n * Defaults to `undefined` (host-only cookie) to match the browser default and\n * the refresh-cookie behaviour in `getRefreshCookieOptions` when no domain is\n * configured. A host-only cookie and a `Domain`-scoped cookie are distinct\n * entries in the browser cookie store, so set and delete must agree on the\n * domain or logout leaves a colliding copy behind.\n */\nexport const DEFAULT_AUTH_COOKIE_DOMAIN = undefined;\n\nconst isValidCookieDomain = (domain: string): boolean => {\n // RFC 6265 domain-av: a host name. No leading dot required, no scheme, no\n // path, no port, and none of the control/attribute-separator characters.\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;,\\s/:]/.test(domain);\n};\n\nexport const resolveAuthCookieDomain = (\n configuredDomain?: string,\n warn: (message: string) => void = console.warn\n): string | undefined => {\n const cookieDomain = (configuredDomain || '').trim();\n\n if (!cookieDomain) {\n return DEFAULT_AUTH_COOKIE_DOMAIN;\n }\n\n if (!isValidCookieDomain(cookieDomain)) {\n warn(\n `Ignoring invalid admin auth cookie domain \"${cookieDomain}\" (must be a bare host name); using a host-only cookie instead.`\n );\n return DEFAULT_AUTH_COOKIE_DOMAIN;\n }\n\n return cookieDomain;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_DOMAIN","undefined","isValidCookieDomain","domain","test","resolveAuthCookieDomain","configuredDomain","warn","console","cookieDomain","trim"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;IAmBO,MAAMA,0BAAAA,GAA6BC;AAE1C,MAAMC,sBAAsB,CAACC,MAAAA,GAAAA;;;;IAI3B,OAAO,CAAC,uBAAA,CAAwBC,IAAI,CAACD,MAAAA,CAAAA;AACvC,CAAA;MAEaE,uBAAAA,GAA0B,CACrCC,gBAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,eAAe,CAACH,gBAAAA,IAAoB,EAAC,EAAGI,IAAI,EAAA;AAElD,IAAA,IAAI,CAACD,YAAAA,EAAc;QACjB,OAAOT,0BAAAA;AACT,IAAA;IAEA,IAAI,CAACE,oBAAoBO,YAAAA,CAAAA,EAAe;AACtCF,QAAAA,IAAAA,CACE,CAAC,2CAA2C,EAAEE,YAAAA,CAAa,+DAA+D,CAAC,CAAA;QAE7H,OAAOT,0BAAAA;AACT,IAAA;IAEA,OAAOS,YAAAA;AACT;;;;"}
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
*/ const DEFAULT_AUTH_COOKIE_NAME = 'jwtToken';
|
|
15
15
|
// RFC 6265 cookie-name token characters.
|
|
16
16
|
const VALID_COOKIE_NAME = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
17
|
-
const resolveAuthCookieName = (configuredName)=>{
|
|
17
|
+
const resolveAuthCookieName = (configuredName, warn = console.warn)=>{
|
|
18
18
|
const cookieName = (configuredName || '').trim();
|
|
19
19
|
if (!cookieName) {
|
|
20
20
|
return DEFAULT_AUTH_COOKIE_NAME;
|
|
21
21
|
}
|
|
22
22
|
if (!VALID_COOKIE_NAME.test(cookieName)) {
|
|
23
|
-
|
|
23
|
+
warn(`Ignoring invalid admin auth cookie name "${cookieName}" (must only contain RFC 6265 cookie-name characters); using "${DEFAULT_AUTH_COOKIE_NAME}" instead.`);
|
|
24
24
|
return DEFAULT_AUTH_COOKIE_NAME;
|
|
25
25
|
}
|
|
26
26
|
return cookieName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-cookie-name.js","sources":["../../../../shared/utils/auth-cookie-name.ts"],"sourcesContent":["/**\n * Name of the cookie holding the admin auth (access) token, configurable\n * through `admin.auth.cookie.name` so it cannot collide with a same-named\n * cookie set by another application on a shared parent domain.\n *\n * Browser-safe single source for both sides of the SSO handoff: the admin\n * panel cannot read server config, so the build transports the config value\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_NAME`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Renaming the cookie requires an admin\n * rebuild, like any other admin config change.\n */\nexport const DEFAULT_AUTH_COOKIE_NAME = 'jwtToken';\n\n// RFC 6265 cookie-name token characters.\nconst VALID_COOKIE_NAME = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\nexport const resolveAuthCookieName = (configuredName?: string): string => {\n const cookieName = (configuredName || '').trim();\n\n if (!cookieName) {\n return DEFAULT_AUTH_COOKIE_NAME;\n }\n\n if (!VALID_COOKIE_NAME.test(cookieName)) {\n
|
|
1
|
+
{"version":3,"file":"auth-cookie-name.js","sources":["../../../../shared/utils/auth-cookie-name.ts"],"sourcesContent":["/**\n * Name of the cookie holding the admin auth (access) token, configurable\n * through `admin.auth.cookie.name` so it cannot collide with a same-named\n * cookie set by another application on a shared parent domain.\n *\n * Browser-safe single source for both sides of the SSO handoff: the admin\n * panel cannot read server config, so the build transports the config value\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_NAME`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Renaming the cookie requires an admin\n * rebuild, like any other admin config change.\n */\nexport const DEFAULT_AUTH_COOKIE_NAME = 'jwtToken';\n\n// RFC 6265 cookie-name token characters.\nconst VALID_COOKIE_NAME = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\nexport const resolveAuthCookieName = (\n configuredName?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookieName = (configuredName || '').trim();\n\n if (!cookieName) {\n return DEFAULT_AUTH_COOKIE_NAME;\n }\n\n if (!VALID_COOKIE_NAME.test(cookieName)) {\n warn(\n `Ignoring invalid admin auth cookie name \"${cookieName}\" (must only contain RFC 6265 cookie-name characters); using \"${DEFAULT_AUTH_COOKIE_NAME}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_NAME;\n }\n\n return cookieName;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_NAME","VALID_COOKIE_NAME","resolveAuthCookieName","configuredName","warn","console","cookieName","trim","test"],"mappings":";;AAAA;;;;;;;;;;;IAYO,MAAMA,wBAAAA,GAA2B;AAExC;AACA,MAAMC,iBAAAA,GAAoB,gCAAA;MAEbC,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAON,wBAAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACC,iBAAAA,CAAkBO,IAAI,CAACF,UAAAA,CAAAA,EAAa;QACvCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,8DAA8D,EAAEN,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAE7J,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOM,UAAAA;AACT;;;;;"}
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
*/ const DEFAULT_AUTH_COOKIE_NAME = 'jwtToken';
|
|
13
13
|
// RFC 6265 cookie-name token characters.
|
|
14
14
|
const VALID_COOKIE_NAME = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
15
|
-
const resolveAuthCookieName = (configuredName)=>{
|
|
15
|
+
const resolveAuthCookieName = (configuredName, warn = console.warn)=>{
|
|
16
16
|
const cookieName = (configuredName || '').trim();
|
|
17
17
|
if (!cookieName) {
|
|
18
18
|
return DEFAULT_AUTH_COOKIE_NAME;
|
|
19
19
|
}
|
|
20
20
|
if (!VALID_COOKIE_NAME.test(cookieName)) {
|
|
21
|
-
|
|
21
|
+
warn(`Ignoring invalid admin auth cookie name "${cookieName}" (must only contain RFC 6265 cookie-name characters); using "${DEFAULT_AUTH_COOKIE_NAME}" instead.`);
|
|
22
22
|
return DEFAULT_AUTH_COOKIE_NAME;
|
|
23
23
|
}
|
|
24
24
|
return cookieName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-cookie-name.mjs","sources":["../../../../shared/utils/auth-cookie-name.ts"],"sourcesContent":["/**\n * Name of the cookie holding the admin auth (access) token, configurable\n * through `admin.auth.cookie.name` so it cannot collide with a same-named\n * cookie set by another application on a shared parent domain.\n *\n * Browser-safe single source for both sides of the SSO handoff: the admin\n * panel cannot read server config, so the build transports the config value\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_NAME`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Renaming the cookie requires an admin\n * rebuild, like any other admin config change.\n */\nexport const DEFAULT_AUTH_COOKIE_NAME = 'jwtToken';\n\n// RFC 6265 cookie-name token characters.\nconst VALID_COOKIE_NAME = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\nexport const resolveAuthCookieName = (configuredName?: string): string => {\n const cookieName = (configuredName || '').trim();\n\n if (!cookieName) {\n return DEFAULT_AUTH_COOKIE_NAME;\n }\n\n if (!VALID_COOKIE_NAME.test(cookieName)) {\n
|
|
1
|
+
{"version":3,"file":"auth-cookie-name.mjs","sources":["../../../../shared/utils/auth-cookie-name.ts"],"sourcesContent":["/**\n * Name of the cookie holding the admin auth (access) token, configurable\n * through `admin.auth.cookie.name` so it cannot collide with a same-named\n * cookie set by another application on a shared parent domain.\n *\n * Browser-safe single source for both sides of the SSO handoff: the admin\n * panel cannot read server config, so the build transports the config value\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_NAME`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Renaming the cookie requires an admin\n * rebuild, like any other admin config change.\n */\nexport const DEFAULT_AUTH_COOKIE_NAME = 'jwtToken';\n\n// RFC 6265 cookie-name token characters.\nconst VALID_COOKIE_NAME = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\nexport const resolveAuthCookieName = (\n configuredName?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookieName = (configuredName || '').trim();\n\n if (!cookieName) {\n return DEFAULT_AUTH_COOKIE_NAME;\n }\n\n if (!VALID_COOKIE_NAME.test(cookieName)) {\n warn(\n `Ignoring invalid admin auth cookie name \"${cookieName}\" (must only contain RFC 6265 cookie-name characters); using \"${DEFAULT_AUTH_COOKIE_NAME}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_NAME;\n }\n\n return cookieName;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_NAME","VALID_COOKIE_NAME","resolveAuthCookieName","configuredName","warn","console","cookieName","trim","test"],"mappings":"AAAA;;;;;;;;;;;IAYO,MAAMA,wBAAAA,GAA2B;AAExC;AACA,MAAMC,iBAAAA,GAAoB,gCAAA;MAEbC,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAON,wBAAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACC,iBAAAA,CAAkBO,IAAI,CAACF,UAAAA,CAAAA,EAAa;QACvCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,8DAA8D,EAAEN,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAE7J,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOM,UAAAA;AACT;;;;"}
|