@strapi/admin 5.55.1 → 5.57.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/dist/admin/admin/src/components/Filters.js +1 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +1 -1
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -2
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -2
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/MediaLibraryBanner.js +38 -2
- package/dist/admin/admin/src/components/MediaLibraryBanner.js.map +1 -1
- package/dist/admin/admin/src/components/MediaLibraryBanner.mjs +18 -2
- package/dist/admin/admin/src/components/MediaLibraryBanner.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +9 -0
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +10 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/TopBanners.js +52 -0
- package/dist/admin/admin/src/components/TopBanners.js.map +1 -0
- package/dist/admin/admin/src/components/TopBanners.mjs +30 -0
- package/dist/admin/admin/src/components/TopBanners.mjs.map +1 -0
- package/dist/admin/admin/src/components/UpsellBanner.js +9 -16
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs +11 -18
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +28 -8
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +29 -10
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +4 -20
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +4 -20
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.js +59 -0
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.js.map +1 -0
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.mjs +37 -0
- package/dist/admin/admin/src/layouts/useAuthenticatedAccessTracking.mjs.map +1 -0
- package/dist/admin/admin/src/render.js +4 -69
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +4 -69
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +15 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +15 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.js +93 -0
- package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -0
- package/dist/admin/admin/src/utils/browserStrapi.mjs +91 -0
- package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -0
- package/dist/admin/admin/src/utils/getFetchClient.js +3 -3
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +2 -2
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.js +2 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.mjs +2 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +16 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +16 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js +3 -1
- 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 +3 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.js +64 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.js.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.mjs +60 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.mjs.map +1 -0
- package/dist/admin/ee/admin/src/services/auditLogs.js +2 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs +2 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/src/components/MediaLibraryBanner.d.ts +10 -1
- package/dist/admin/src/components/SubNav.d.ts +2 -2
- package/dist/admin/src/components/TopBanners.d.ts +8 -0
- package/dist/admin/src/features/Tracking.d.ts +12 -1
- package/dist/admin/src/layouts/useAuthenticatedAccessTracking.d.ts +6 -0
- package/dist/admin/src/utils/browserStrapi.d.ts +11 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +15 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.d.ts +14 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +10 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/admin.d.ts +2 -28
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +8 -2
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +1 -28
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/user.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +6 -30
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/services/auth.d.ts +1 -1
- package/dist/ee/server/src/services/auth.d.ts.map +1 -1
- package/dist/ee/server/src/services/index.d.ts +5 -2
- package/dist/ee/server/src/services/index.d.ts.map +1 -1
- package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
- package/dist/ee/server/src/services/seat-enforcement.d.ts +3 -1
- package/dist/ee/server/src/services/seat-enforcement.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/services/lifecycles.js +37 -21
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +37 -21
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js +8 -7
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +8 -7
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js +2 -2
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs +2 -2
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js +11 -11
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs +11 -11
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js +7 -8
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs +8 -9
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +4 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +4 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js +1 -6
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs +2 -7
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/metrics.js +9 -7
- package/dist/server/ee/server/src/services/metrics.js.map +1 -1
- package/dist/server/ee/server/src/services/metrics.mjs +9 -7
- package/dist/server/ee/server/src/services/metrics.mjs.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.js +3 -4
- package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.mjs +3 -4
- package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
- package/dist/server/ee/server/src/services/role.js +2 -2
- package/dist/server/ee/server/src/services/role.js.map +1 -1
- package/dist/server/ee/server/src/services/role.mjs +1 -1
- package/dist/server/ee/server/src/services/role.mjs.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.js +20 -20
- package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.mjs +20 -20
- package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
- package/dist/server/ee/server/src/services/user.js +37 -6
- package/dist/server/ee/server/src/services/user.js.map +1 -1
- package/dist/server/ee/server/src/services/user.mjs +38 -7
- package/dist/server/ee/server/src/services/user.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.js +2 -2
- package/dist/server/ee/server/src/utils/sso-lock.js.map +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.mjs +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.mjs.map +1 -1
- package/dist/server/server/src/audit-logs/admin-users.js +169 -0
- package/dist/server/server/src/audit-logs/admin-users.js.map +1 -0
- package/dist/server/server/src/audit-logs/admin-users.mjs +157 -0
- package/dist/server/server/src/audit-logs/admin-users.mjs.map +1 -0
- package/dist/server/server/src/audit-logs/tokens.js +3 -3
- package/dist/server/server/src/audit-logs/tokens.js.map +1 -1
- package/dist/server/server/src/audit-logs/tokens.mjs +2 -2
- package/dist/server/server/src/audit-logs/tokens.mjs.map +1 -1
- package/dist/server/server/src/audit-logs/webhooks.js +106 -0
- package/dist/server/server/src/audit-logs/webhooks.js.map +1 -0
- package/dist/server/server/src/audit-logs/webhooks.mjs +100 -0
- package/dist/server/server/src/audit-logs/webhooks.mjs.map +1 -0
- package/dist/server/server/src/bootstrap.js +6 -4
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +6 -4
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin-token.js +8 -8
- package/dist/server/server/src/controllers/admin-token.js.map +1 -1
- package/dist/server/server/src/controllers/admin-token.mjs +4 -4
- package/dist/server/server/src/controllers/admin-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +4 -5
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +3 -4
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/api-token.js +8 -8
- package/dist/server/server/src/controllers/api-token.js.map +1 -1
- package/dist/server/server/src/controllers/api-token.mjs +4 -4
- package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/authentication.js +8 -1
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +8 -1
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/controllers/formatters/conditions.js +2 -2
- package/dist/server/server/src/controllers/formatters/conditions.js.map +1 -1
- package/dist/server/server/src/controllers/formatters/conditions.mjs +2 -2
- package/dist/server/server/src/controllers/formatters/conditions.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js +2 -2
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs +2 -2
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/token.js +8 -8
- package/dist/server/server/src/controllers/transfer/token.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/token.mjs +4 -4
- package/dist/server/server/src/controllers/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/controllers/webhooks.js +26 -0
- package/dist/server/server/src/controllers/webhooks.js.map +1 -1
- package/dist/server/server/src/controllers/webhooks.mjs +27 -1
- package/dist/server/server/src/controllers/webhooks.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js +18 -16
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs +16 -14
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/action/provider.mjs +4 -4
- package/dist/server/server/src/domain/action/provider.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js +7 -4
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs +7 -4
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js +24 -15
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs +21 -12
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js +5 -5
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs +4 -4
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/register.js +6 -0
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs +6 -0
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/services/action.js +1 -2
- package/dist/server/server/src/services/action.js.map +1 -1
- package/dist/server/server/src/services/action.mjs +1 -2
- package/dist/server/server/src/services/action.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +61 -49
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +53 -41
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js +27 -6
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs +28 -8
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/condition.js +2 -2
- package/dist/server/server/src/services/condition.js.map +1 -1
- package/dist/server/server/src/services/condition.mjs +1 -1
- package/dist/server/server/src/services/condition.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js +5 -4
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs +8 -7
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js +2 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +2 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/passport/local-strategy.js +2 -2
- package/dist/server/server/src/services/passport/local-strategy.js.map +1 -1
- package/dist/server/server/src/services/passport/local-strategy.mjs +1 -1
- package/dist/server/server/src/services/passport/local-strategy.mjs.map +1 -1
- package/dist/server/server/src/services/passport.js +1 -2
- package/dist/server/server/src/services/passport.js.map +1 -1
- package/dist/server/server/src/services/passport.mjs +1 -2
- package/dist/server/server/src/services/passport.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +4 -4
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs +2 -2
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js +2 -3
- package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.mjs +1 -2
- package/dist/server/server/src/services/permission/permissions-manager/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js +6 -6
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs +4 -4
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +47 -41
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +44 -38
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.js +30 -26
- package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +28 -24
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +9 -9
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/permission/queries.mjs +9 -9
- package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
- package/dist/server/server/src/services/permission/rename-fields.js +118 -0
- package/dist/server/server/src/services/permission/rename-fields.js.map +1 -0
- package/dist/server/server/src/services/permission/rename-fields.mjs +116 -0
- package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -0
- package/dist/server/server/src/services/permission/sections-builder/index.js +2 -2
- package/dist/server/server/src/services/permission/sections-builder/index.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/index.mjs +2 -2
- package/dist/server/server/src/services/permission/sections-builder/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/section.js +1 -2
- package/dist/server/server/src/services/permission/sections-builder/section.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/section.mjs +1 -2
- package/dist/server/server/src/services/permission/sections-builder/section.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/utils.js +6 -6
- package/dist/server/server/src/services/permission/sections-builder/utils.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/utils.mjs +4 -4
- package/dist/server/server/src/services/permission/sections-builder/utils.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +20 -19
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +20 -19
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js +20 -16
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs +14 -10
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +50 -12
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +52 -14
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/strategies/api-token-utils.js +2 -3
- package/dist/server/server/src/strategies/api-token-utils.js.map +1 -1
- package/dist/server/server/src/strategies/api-token-utils.mjs +2 -3
- package/dist/server/server/src/strategies/api-token-utils.mjs.map +1 -1
- package/dist/server/server/src/strategies/content-api-token.js +3 -3
- package/dist/server/server/src/strategies/content-api-token.js.map +1 -1
- package/dist/server/server/src/strategies/content-api-token.mjs +1 -1
- package/dist/server/server/src/strategies/content-api-token.mjs.map +1 -1
- package/dist/server/server/src/strategies/data-transfer.js +4 -4
- package/dist/server/server/src/strategies/data-transfer.js.map +1 -1
- package/dist/server/server/src/strategies/data-transfer.mjs +3 -3
- package/dist/server/server/src/strategies/data-transfer.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +9 -10
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs +13 -14
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/server/src/validation/user.js +1 -2
- package/dist/server/server/src/validation/user.js.map +1 -1
- package/dist/server/server/src/validation/user.mjs +1 -2
- package/dist/server/server/src/validation/user.mjs.map +1 -1
- package/dist/server/src/audit-logs/admin-users.d.ts +119 -0
- package/dist/server/src/audit-logs/admin-users.d.ts.map +1 -0
- package/dist/server/src/audit-logs/tokens.d.ts.map +1 -1
- package/dist/server/src/audit-logs/webhooks.d.ts +59 -0
- package/dist/server/src/audit-logs/webhooks.d.ts.map +1 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +2 -11
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/api-token.d.ts.map +1 -1
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +1 -1
- package/dist/server/src/controllers/index.d.ts +2 -11
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/index.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/token.d.ts.map +1 -1
- package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
- package/dist/server/src/domain/action/index.d.ts +1 -0
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/condition/index.d.ts +2 -2
- package/dist/server/src/domain/condition/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts +2 -2
- package/dist/server/src/index.d.ts +4 -13
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/services/action.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/auth.d.ts +6 -1
- package/dist/server/src/services/auth.d.ts.map +1 -1
- package/dist/server/src/services/condition.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts +1 -1
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission/rename-fields.d.ts +21 -0
- package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -0
- package/dist/server/src/services/permission/sections-builder/section.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
- package/dist/server/src/validation/user.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +36 -2
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/package.json +13 -13
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import { useIntl } from 'react-intl';
|
|
|
3
3
|
import { useNotification } from '../../../../../../../../admin/src/features/Notifications.mjs';
|
|
4
4
|
import { getFetchClient, isFetchError } from '../../../../../../../../admin/src/utils/getFetchClient.mjs';
|
|
5
5
|
import { AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER, AUDIT_LOGS_EXPORT_UNTIL_HEADER, AUDIT_LOGS_EXPORT_TOKEN_HEADER, AUDIT_LOGS_EXPORT_CURSOR_DONE, AUDIT_LOGS_EXPORT_PART_SIZE_HEADER, AUDIT_LOGS_EXPORT_PART_ROWS } from '../../../../../../../../shared/utils/audit-log-export.mjs';
|
|
6
|
+
import { expandLegacyActionFilters } from '../utils/legacyActions.mjs';
|
|
6
7
|
|
|
7
8
|
const DEFAULT_FILE_NAME = 'audit-logs.csv';
|
|
8
9
|
const getFileName = (contentDisposition)=>{
|
|
@@ -56,7 +57,7 @@ const useExportAuditLogs = ()=>{
|
|
|
56
57
|
const { data, headers } = await get('/admin/audit-logs/export', {
|
|
57
58
|
params: {
|
|
58
59
|
...filters ? {
|
|
59
|
-
filters
|
|
60
|
+
filters: expandLegacyActionFilters(filters)
|
|
60
61
|
} : {},
|
|
61
62
|
...cursor ? {
|
|
62
63
|
cursor
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExportAuditLogs.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport {\n getFetchClient,\n isFetchError,\n type FetchResponse,\n} from '../../../../../../../../admin/src/utils/getFetchClient';\nimport {\n AUDIT_LOGS_EXPORT_CURSOR_DONE,\n AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER,\n AUDIT_LOGS_EXPORT_PART_ROWS,\n AUDIT_LOGS_EXPORT_PART_SIZE_HEADER,\n AUDIT_LOGS_EXPORT_TOKEN_HEADER,\n AUDIT_LOGS_EXPORT_UNTIL_HEADER,\n} from '../../../../../../../../shared/utils/audit-log-export';\n\nconst DEFAULT_FILE_NAME = 'audit-logs.csv';\n\ninterface ExportProgress {\n fetched: number;\n total: number;\n}\n\ninterface ExportResult {\n blob: Blob;\n fileName: string;\n}\n\nconst getFileName = (contentDisposition: string | null) => {\n const match = contentDisposition?.match(/filename=\"([^\"]+)\"/);\n\n return match?.[1] ?? DEFAULT_FILE_NAME;\n};\n\nconst downloadFile = (blob: Blob, fileName: string) => {\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n link.remove();\n\n // Revoking during a later tick to avoid aborting the download\n setTimeout(() => URL.revokeObjectURL(url), 60000);\n};\n\nconst useExportAuditLogs = () => {\n const [isExporting, setIsExporting] = React.useState(false);\n const [progress, setProgress] = React.useState<ExportProgress | null>(null);\n const [exportResult, setExportResult] = React.useState<ExportResult | null>(null);\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n\n const isExportingRef = React.useRef(false);\n\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n const exportAuditLogs = async (filters: unknown, totalEntries: number) => {\n if (isExportingRef.current) {\n return;\n }\n\n isExportingRef.current = true;\n setIsExporting(true);\n setExportResult(null);\n setProgress({ fetched: 0, total: totalEntries });\n\n const { get } = getFetchClient();\n\n let cursor: string | null = null;\n let until: string | null = null;\n let token: string | null = null;\n let fileName = DEFAULT_FILE_NAME;\n const parts: Blob[] = [];\n\n try {\n do {\n const { data, headers }: FetchResponse<Blob> = await get<Blob>('/admin/audit-logs/export', {\n params: {\n ...(filters ? { filters } : {}),\n ...(cursor ? { cursor } : {}),\n ...(until ? { until } : {}),\n ...(token ? { token } : {}),\n },\n responseType: 'blob',\n });\n\n if (!isMountedRef.current) {\n return;\n }\n\n const nextCursorHeader: string | null =\n headers?.get(AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER) ?? null;\n const untilHeader: string | null = headers?.get(AUDIT_LOGS_EXPORT_UNTIL_HEADER) ?? null;\n const tokenHeader: string | null = headers?.get(AUDIT_LOGS_EXPORT_TOKEN_HEADER) ?? null;\n\n if (!nextCursorHeader || !untilHeader || !tokenHeader) {\n throw new Error('The audit logs export part headers are missing');\n }\n\n cursor = nextCursorHeader === AUDIT_LOGS_EXPORT_CURSOR_DONE ? null : nextCursorHeader;\n until = untilHeader;\n token = tokenHeader;\n\n if (parts.length === 0) {\n fileName = getFileName(headers?.get('Content-Disposition') ?? null);\n }\n\n parts.push(data);\n\n const partRows =\n Number(headers?.get(AUDIT_LOGS_EXPORT_PART_SIZE_HEADER)) || AUDIT_LOGS_EXPORT_PART_ROWS;\n setProgress({\n fetched: Math.min(parts.length * partRows, totalEntries),\n total: totalEntries,\n });\n } while (cursor);\n\n setExportResult({ blob: new Blob(parts, { type: 'text/csv;charset=utf-8' }), fileName });\n } catch (error) {\n const message = () => {\n if (isFetchError(error) && error.status === 413) {\n return formatMessage({\n id: 'Settings.permissions.auditLogs.listview.export.error.tooLarge',\n defaultMessage: 'Table too large to export. Please add filters and try again.',\n });\n }\n\n if (isFetchError(error) && error.status === 403) {\n return formatMessage({\n id: 'Settings.permissions.auditLogs.listview.export.error.forbidden',\n defaultMessage: \"You don't have the permissions to export audit logs.\",\n });\n }\n\n return formatMessage({\n id: 'Settings.permissions.auditLogs.listview.export.error',\n defaultMessage: 'The export failed. Please try again.',\n });\n };\n\n toggleNotification({ type: 'danger', message: message() });\n } finally {\n isExportingRef.current = false;\n setIsExporting(false);\n setProgress(null);\n }\n };\n\n const downloadExport = () => {\n if (!exportResult) {\n return;\n }\n\n downloadFile(exportResult.blob, exportResult.fileName);\n setExportResult(null);\n };\n\n const dismissExport = () => {\n setExportResult(null);\n };\n\n return { exportAuditLogs, downloadExport, dismissExport, isExporting, progress, exportResult };\n};\n\nexport { useExportAuditLogs };\nexport type { ExportProgress, ExportResult };\n"],"names":["DEFAULT_FILE_NAME","getFileName","contentDisposition","match","downloadFile","blob","fileName","url","URL","createObjectURL","link","document","createElement","href","download","body","appendChild","click","remove","setTimeout","revokeObjectURL","useExportAuditLogs","isExporting","setIsExporting","React","useState","progress","setProgress","exportResult","setExportResult","toggleNotification","useNotification","formatMessage","useIntl","isExportingRef","useRef","isMountedRef","useEffect","current","exportAuditLogs","filters","totalEntries","fetched","total","get","getFetchClient","cursor","until","token","parts","data","headers","params","responseType","nextCursorHeader","AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER","untilHeader","AUDIT_LOGS_EXPORT_UNTIL_HEADER","tokenHeader","AUDIT_LOGS_EXPORT_TOKEN_HEADER","Error","AUDIT_LOGS_EXPORT_CURSOR_DONE","length","push","partRows","Number","AUDIT_LOGS_EXPORT_PART_SIZE_HEADER","AUDIT_LOGS_EXPORT_PART_ROWS","Math","min","Blob","type","error","message","isFetchError","status","id","defaultMessage","downloadExport","dismissExport"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useExportAuditLogs.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useExportAuditLogs.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport {\n getFetchClient,\n isFetchError,\n type FetchResponse,\n} from '../../../../../../../../admin/src/utils/getFetchClient';\nimport {\n AUDIT_LOGS_EXPORT_CURSOR_DONE,\n AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER,\n AUDIT_LOGS_EXPORT_PART_ROWS,\n AUDIT_LOGS_EXPORT_PART_SIZE_HEADER,\n AUDIT_LOGS_EXPORT_TOKEN_HEADER,\n AUDIT_LOGS_EXPORT_UNTIL_HEADER,\n} from '../../../../../../../../shared/utils/audit-log-export';\nimport { expandLegacyActionFilters } from '../utils/legacyActions';\n\nconst DEFAULT_FILE_NAME = 'audit-logs.csv';\n\ninterface ExportProgress {\n fetched: number;\n total: number;\n}\n\ninterface ExportResult {\n blob: Blob;\n fileName: string;\n}\n\nconst getFileName = (contentDisposition: string | null) => {\n const match = contentDisposition?.match(/filename=\"([^\"]+)\"/);\n\n return match?.[1] ?? DEFAULT_FILE_NAME;\n};\n\nconst downloadFile = (blob: Blob, fileName: string) => {\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n link.remove();\n\n // Revoking during a later tick to avoid aborting the download\n setTimeout(() => URL.revokeObjectURL(url), 60000);\n};\n\nconst useExportAuditLogs = () => {\n const [isExporting, setIsExporting] = React.useState(false);\n const [progress, setProgress] = React.useState<ExportProgress | null>(null);\n const [exportResult, setExportResult] = React.useState<ExportResult | null>(null);\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n\n const isExportingRef = React.useRef(false);\n\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n const exportAuditLogs = async (filters: unknown, totalEntries: number) => {\n if (isExportingRef.current) {\n return;\n }\n\n isExportingRef.current = true;\n setIsExporting(true);\n setExportResult(null);\n setProgress({ fetched: 0, total: totalEntries });\n\n const { get } = getFetchClient();\n\n let cursor: string | null = null;\n let until: string | null = null;\n let token: string | null = null;\n let fileName = DEFAULT_FILE_NAME;\n const parts: Blob[] = [];\n\n try {\n do {\n const { data, headers }: FetchResponse<Blob> = await get<Blob>('/admin/audit-logs/export', {\n params: {\n ...(filters ? { filters: expandLegacyActionFilters(filters) } : {}),\n ...(cursor ? { cursor } : {}),\n ...(until ? { until } : {}),\n ...(token ? { token } : {}),\n },\n responseType: 'blob',\n });\n\n if (!isMountedRef.current) {\n return;\n }\n\n const nextCursorHeader: string | null =\n headers?.get(AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER) ?? null;\n const untilHeader: string | null = headers?.get(AUDIT_LOGS_EXPORT_UNTIL_HEADER) ?? null;\n const tokenHeader: string | null = headers?.get(AUDIT_LOGS_EXPORT_TOKEN_HEADER) ?? null;\n\n if (!nextCursorHeader || !untilHeader || !tokenHeader) {\n throw new Error('The audit logs export part headers are missing');\n }\n\n cursor = nextCursorHeader === AUDIT_LOGS_EXPORT_CURSOR_DONE ? null : nextCursorHeader;\n until = untilHeader;\n token = tokenHeader;\n\n if (parts.length === 0) {\n fileName = getFileName(headers?.get('Content-Disposition') ?? null);\n }\n\n parts.push(data);\n\n const partRows =\n Number(headers?.get(AUDIT_LOGS_EXPORT_PART_SIZE_HEADER)) || AUDIT_LOGS_EXPORT_PART_ROWS;\n setProgress({\n fetched: Math.min(parts.length * partRows, totalEntries),\n total: totalEntries,\n });\n } while (cursor);\n\n setExportResult({ blob: new Blob(parts, { type: 'text/csv;charset=utf-8' }), fileName });\n } catch (error) {\n const message = () => {\n if (isFetchError(error) && error.status === 413) {\n return formatMessage({\n id: 'Settings.permissions.auditLogs.listview.export.error.tooLarge',\n defaultMessage: 'Table too large to export. Please add filters and try again.',\n });\n }\n\n if (isFetchError(error) && error.status === 403) {\n return formatMessage({\n id: 'Settings.permissions.auditLogs.listview.export.error.forbidden',\n defaultMessage: \"You don't have the permissions to export audit logs.\",\n });\n }\n\n return formatMessage({\n id: 'Settings.permissions.auditLogs.listview.export.error',\n defaultMessage: 'The export failed. Please try again.',\n });\n };\n\n toggleNotification({ type: 'danger', message: message() });\n } finally {\n isExportingRef.current = false;\n setIsExporting(false);\n setProgress(null);\n }\n };\n\n const downloadExport = () => {\n if (!exportResult) {\n return;\n }\n\n downloadFile(exportResult.blob, exportResult.fileName);\n setExportResult(null);\n };\n\n const dismissExport = () => {\n setExportResult(null);\n };\n\n return { exportAuditLogs, downloadExport, dismissExport, isExporting, progress, exportResult };\n};\n\nexport { useExportAuditLogs };\nexport type { ExportProgress, ExportResult };\n"],"names":["DEFAULT_FILE_NAME","getFileName","contentDisposition","match","downloadFile","blob","fileName","url","URL","createObjectURL","link","document","createElement","href","download","body","appendChild","click","remove","setTimeout","revokeObjectURL","useExportAuditLogs","isExporting","setIsExporting","React","useState","progress","setProgress","exportResult","setExportResult","toggleNotification","useNotification","formatMessage","useIntl","isExportingRef","useRef","isMountedRef","useEffect","current","exportAuditLogs","filters","totalEntries","fetched","total","get","getFetchClient","cursor","until","token","parts","data","headers","params","expandLegacyActionFilters","responseType","nextCursorHeader","AUDIT_LOGS_EXPORT_NEXT_CURSOR_HEADER","untilHeader","AUDIT_LOGS_EXPORT_UNTIL_HEADER","tokenHeader","AUDIT_LOGS_EXPORT_TOKEN_HEADER","Error","AUDIT_LOGS_EXPORT_CURSOR_DONE","length","push","partRows","Number","AUDIT_LOGS_EXPORT_PART_SIZE_HEADER","AUDIT_LOGS_EXPORT_PART_ROWS","Math","min","Blob","type","error","message","isFetchError","status","id","defaultMessage","downloadExport","dismissExport"],"mappings":"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"}
|
|
@@ -45,7 +45,22 @@ const actionTypes = {
|
|
|
45
45
|
'token.create': 'Create token',
|
|
46
46
|
'token.update': 'Update token',
|
|
47
47
|
'token.delete': 'Delete token',
|
|
48
|
-
'token.regenerate': 'Regenerate token'
|
|
48
|
+
'token.regenerate': 'Regenerate token',
|
|
49
|
+
'admin-user.create': 'Create user',
|
|
50
|
+
'admin-user.update': 'Update user',
|
|
51
|
+
'admin-user.delete': 'Delete user',
|
|
52
|
+
'admin-user.invite.accept': 'Accept invitation',
|
|
53
|
+
'admin-user.password-reset.create': 'Request password reset',
|
|
54
|
+
'admin-user.password-reset.confirm': 'Reset password',
|
|
55
|
+
'admin-user.password.update': 'Update password',
|
|
56
|
+
'webhook.create': 'Create webhook',
|
|
57
|
+
'webhook.update': 'Update webhook',
|
|
58
|
+
'webhook.delete': 'Delete webhook',
|
|
59
|
+
'workflow.create': 'Create workflow',
|
|
60
|
+
'workflow.update': 'Update workflow',
|
|
61
|
+
'workflow.delete': 'Delete workflow',
|
|
62
|
+
'review-workflows.updateEntryStage': 'Change entry stage',
|
|
63
|
+
'entry.assignee.update': 'Change entry assignee'
|
|
49
64
|
};
|
|
50
65
|
const getDefaultMessage = (value)=>{
|
|
51
66
|
return actionTypes[value] || value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActionTypesDefaultMessages.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts"],"sourcesContent":["export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n 'release.create': 'Create release',\n 'release.update': 'Update release',\n 'release.delete': 'Delete release',\n 'release.trigger': 'Trigger release',\n 'release.entry.add': 'Add entry to release',\n 'release.entry.update': 'Change entry on release',\n 'release.entry.remove': 'Remove entry from release',\n 'release.settings.update': 'Update release settings',\n 'audit-log.export': 'Export audit logs',\n 'locale.create': 'Create locale',\n 'locale.update': 'Update locale',\n 'locale.delete': 'Delete locale',\n 'locale.default.update': 'Change default locale',\n 'token.create': 'Create token',\n 'token.update': 'Update token',\n 'token.delete': 'Delete token',\n 'token.regenerate': 'Regenerate token',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n"],"names":["actionTypes","getDefaultMessage","value"],"mappings":";;MAAaA,WAAAA,GAAc;IACzB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,eAAA,EAAiB,+DAAA;IACjB,iBAAA,EAAmB,iEAAA;IACnB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,oBAAA,EAAsB,aAAA;IACtB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,iBAAA,EAAmB,iBAAA;IACnB,mBAAA,EAAqB,sBAAA;IACrB,sBAAA,EAAwB,yBAAA;IACxB,sBAAA,EAAwB,2BAAA;IACxB,yBAAA,EAA2B,yBAAA;IAC3B,kBAAA,EAAoB,mBAAA;IACpB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,uBAAA,EAAyB,uBAAA;IACzB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,kBAAA,EAAoB;
|
|
1
|
+
{"version":3,"file":"getActionTypesDefaultMessages.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts"],"sourcesContent":["export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n 'release.create': 'Create release',\n 'release.update': 'Update release',\n 'release.delete': 'Delete release',\n 'release.trigger': 'Trigger release',\n 'release.entry.add': 'Add entry to release',\n 'release.entry.update': 'Change entry on release',\n 'release.entry.remove': 'Remove entry from release',\n 'release.settings.update': 'Update release settings',\n 'audit-log.export': 'Export audit logs',\n 'locale.create': 'Create locale',\n 'locale.update': 'Update locale',\n 'locale.delete': 'Delete locale',\n 'locale.default.update': 'Change default locale',\n 'token.create': 'Create token',\n 'token.update': 'Update token',\n 'token.delete': 'Delete token',\n 'token.regenerate': 'Regenerate token',\n 'admin-user.create': 'Create user',\n 'admin-user.update': 'Update user',\n 'admin-user.delete': 'Delete user',\n 'admin-user.invite.accept': 'Accept invitation',\n 'admin-user.password-reset.create': 'Request password reset',\n 'admin-user.password-reset.confirm': 'Reset password',\n 'admin-user.password.update': 'Update password',\n 'webhook.create': 'Create webhook',\n 'webhook.update': 'Update webhook',\n 'webhook.delete': 'Delete webhook',\n 'workflow.create': 'Create workflow',\n 'workflow.update': 'Update workflow',\n 'workflow.delete': 'Delete workflow',\n 'review-workflows.updateEntryStage': 'Change entry stage',\n 'entry.assignee.update': 'Change entry assignee',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n"],"names":["actionTypes","getDefaultMessage","value"],"mappings":";;MAAaA,WAAAA,GAAc;IACzB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,eAAA,EAAiB,+DAAA;IACjB,iBAAA,EAAmB,iEAAA;IACnB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,oBAAA,EAAsB,aAAA;IACtB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,iBAAA,EAAmB,iBAAA;IACnB,mBAAA,EAAqB,sBAAA;IACrB,sBAAA,EAAwB,yBAAA;IACxB,sBAAA,EAAwB,2BAAA;IACxB,yBAAA,EAA2B,yBAAA;IAC3B,kBAAA,EAAoB,mBAAA;IACpB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,uBAAA,EAAyB,uBAAA;IACzB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,kBAAA,EAAoB,kBAAA;IACpB,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB,aAAA;IACrB,0BAAA,EAA4B,mBAAA;IAC5B,kCAAA,EAAoC,wBAAA;IACpC,mCAAA,EAAqC,gBAAA;IACrC,4BAAA,EAA8B,iBAAA;IAC9B,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,iBAAA,EAAmB,iBAAA;IACnB,iBAAA,EAAmB,iBAAA;IACnB,iBAAA,EAAmB,iBAAA;IACnB,mCAAA,EAAqC,oBAAA;IACrC,uBAAA,EAAyB;AAC3B;AAEO,MAAMC,oBAAoB,CAACC,KAAAA,GAAAA;IAChC,OAAOF,WAAW,CAACE,KAAAA,CAAM,IAAIA,KAAAA;AAC/B;;;;;"}
|
|
@@ -43,7 +43,22 @@ const actionTypes = {
|
|
|
43
43
|
'token.create': 'Create token',
|
|
44
44
|
'token.update': 'Update token',
|
|
45
45
|
'token.delete': 'Delete token',
|
|
46
|
-
'token.regenerate': 'Regenerate token'
|
|
46
|
+
'token.regenerate': 'Regenerate token',
|
|
47
|
+
'admin-user.create': 'Create user',
|
|
48
|
+
'admin-user.update': 'Update user',
|
|
49
|
+
'admin-user.delete': 'Delete user',
|
|
50
|
+
'admin-user.invite.accept': 'Accept invitation',
|
|
51
|
+
'admin-user.password-reset.create': 'Request password reset',
|
|
52
|
+
'admin-user.password-reset.confirm': 'Reset password',
|
|
53
|
+
'admin-user.password.update': 'Update password',
|
|
54
|
+
'webhook.create': 'Create webhook',
|
|
55
|
+
'webhook.update': 'Update webhook',
|
|
56
|
+
'webhook.delete': 'Delete webhook',
|
|
57
|
+
'workflow.create': 'Create workflow',
|
|
58
|
+
'workflow.update': 'Update workflow',
|
|
59
|
+
'workflow.delete': 'Delete workflow',
|
|
60
|
+
'review-workflows.updateEntryStage': 'Change entry stage',
|
|
61
|
+
'entry.assignee.update': 'Change entry assignee'
|
|
47
62
|
};
|
|
48
63
|
const getDefaultMessage = (value)=>{
|
|
49
64
|
return actionTypes[value] || value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActionTypesDefaultMessages.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts"],"sourcesContent":["export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n 'release.create': 'Create release',\n 'release.update': 'Update release',\n 'release.delete': 'Delete release',\n 'release.trigger': 'Trigger release',\n 'release.entry.add': 'Add entry to release',\n 'release.entry.update': 'Change entry on release',\n 'release.entry.remove': 'Remove entry from release',\n 'release.settings.update': 'Update release settings',\n 'audit-log.export': 'Export audit logs',\n 'locale.create': 'Create locale',\n 'locale.update': 'Update locale',\n 'locale.delete': 'Delete locale',\n 'locale.default.update': 'Change default locale',\n 'token.create': 'Create token',\n 'token.update': 'Update token',\n 'token.delete': 'Delete token',\n 'token.regenerate': 'Regenerate token',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n"],"names":["actionTypes","getDefaultMessage","value"],"mappings":"MAAaA,WAAAA,GAAc;IACzB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,eAAA,EAAiB,+DAAA;IACjB,iBAAA,EAAmB,iEAAA;IACnB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,oBAAA,EAAsB,aAAA;IACtB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,iBAAA,EAAmB,iBAAA;IACnB,mBAAA,EAAqB,sBAAA;IACrB,sBAAA,EAAwB,yBAAA;IACxB,sBAAA,EAAwB,2BAAA;IACxB,yBAAA,EAA2B,yBAAA;IAC3B,kBAAA,EAAoB,mBAAA;IACpB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,uBAAA,EAAyB,uBAAA;IACzB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,kBAAA,EAAoB;
|
|
1
|
+
{"version":3,"file":"getActionTypesDefaultMessages.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts"],"sourcesContent":["export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n 'release.create': 'Create release',\n 'release.update': 'Update release',\n 'release.delete': 'Delete release',\n 'release.trigger': 'Trigger release',\n 'release.entry.add': 'Add entry to release',\n 'release.entry.update': 'Change entry on release',\n 'release.entry.remove': 'Remove entry from release',\n 'release.settings.update': 'Update release settings',\n 'audit-log.export': 'Export audit logs',\n 'locale.create': 'Create locale',\n 'locale.update': 'Update locale',\n 'locale.delete': 'Delete locale',\n 'locale.default.update': 'Change default locale',\n 'token.create': 'Create token',\n 'token.update': 'Update token',\n 'token.delete': 'Delete token',\n 'token.regenerate': 'Regenerate token',\n 'admin-user.create': 'Create user',\n 'admin-user.update': 'Update user',\n 'admin-user.delete': 'Delete user',\n 'admin-user.invite.accept': 'Accept invitation',\n 'admin-user.password-reset.create': 'Request password reset',\n 'admin-user.password-reset.confirm': 'Reset password',\n 'admin-user.password.update': 'Update password',\n 'webhook.create': 'Create webhook',\n 'webhook.update': 'Update webhook',\n 'webhook.delete': 'Delete webhook',\n 'workflow.create': 'Create workflow',\n 'workflow.update': 'Update workflow',\n 'workflow.delete': 'Delete workflow',\n 'review-workflows.updateEntryStage': 'Change entry stage',\n 'entry.assignee.update': 'Change entry assignee',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n"],"names":["actionTypes","getDefaultMessage","value"],"mappings":"MAAaA,WAAAA,GAAc;IACzB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,cAAA,EAAgB,8DAAA;IAChB,eAAA,EAAiB,+DAAA;IACjB,iBAAA,EAAmB,iEAAA;IACnB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,oBAAA,EAAsB,aAAA;IACtB,cAAA,EAAgB,cAAA;IAChB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,qBAAA,EAAuB,qBAAA;IACvB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,kBAAA,EAAoB,kBAAA;IACpB,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,aAAA,EAAe,aAAA;IACf,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,mBAAA,EAAqB,mBAAA;IACrB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,iBAAA,EAAmB,iBAAA;IACnB,mBAAA,EAAqB,sBAAA;IACrB,sBAAA,EAAwB,yBAAA;IACxB,sBAAA,EAAwB,2BAAA;IACxB,yBAAA,EAA2B,yBAAA;IAC3B,kBAAA,EAAoB,mBAAA;IACpB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,eAAA,EAAiB,eAAA;IACjB,uBAAA,EAAyB,uBAAA;IACzB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,cAAA,EAAgB,cAAA;IAChB,kBAAA,EAAoB,kBAAA;IACpB,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB,aAAA;IACrB,0BAAA,EAA4B,mBAAA;IAC5B,kCAAA,EAAoC,wBAAA;IACpC,mCAAA,EAAqC,gBAAA;IACrC,4BAAA,EAA8B,iBAAA;IAC9B,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,gBAAA,EAAkB,gBAAA;IAClB,iBAAA,EAAmB,iBAAA;IACnB,iBAAA,EAAmB,iBAAA;IACnB,iBAAA,EAAmB,iBAAA;IACnB,mCAAA,EAAqC,oBAAA;IACrC,uBAAA,EAAyB;AAC3B;AAEO,MAAMC,oBAAoB,CAACC,KAAAA,GAAAA;IAChC,OAAOF,WAAW,CAACE,KAAAA,CAAM,IAAIA,KAAAA;AAC/B;;;;"}
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var ComboboxFilter = require('../components/ComboboxFilter.js');
|
|
4
4
|
var getActionTypesDefaultMessages = require('./getActionTypesDefaultMessages.js');
|
|
5
|
+
var legacyActions = require('./legacyActions.js');
|
|
5
6
|
|
|
6
7
|
const getDisplayedFilters = ({ formatMessage, users, usersFilter })=>{
|
|
7
8
|
const operators = [
|
|
@@ -29,7 +30,8 @@ const getDisplayedFilters = ({ formatMessage, users, usersFilter })=>{
|
|
|
29
30
|
}),
|
|
30
31
|
name: 'action',
|
|
31
32
|
operators,
|
|
32
|
-
|
|
33
|
+
// Legacy keys stay in actionTypes to label stored rows; the new key filters both
|
|
34
|
+
options: Object.keys(getActionTypesDefaultMessages.actionTypes).filter((action)=>!legacyActions.isLegacyAction(action)).map((action)=>({
|
|
33
35
|
label: formatMessage({
|
|
34
36
|
id: `Settings.permissions.auditLogs.${action}`,
|
|
35
37
|
defaultMessage: getActionTypesDefaultMessages.getDefaultMessage(action)
|
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 { 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
|
|
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';\nimport { isLegacyAction } from './legacyActions';\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 // Legacy keys stay in actionTypes to label stored rows; the new key filters both\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[])\n .filter((action) => !isLegacyAction(action))\n .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","filter","action","isLegacyAction","map","getDefaultMessage","model","undefined","type","mainField","user","displayName","toString"],"mappings":";;;;;;AAaO,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;;AAEAS,YAAAA,OAAAA,EAAS,MAACC,CAAOC,IAAI,CAACC,yCAAAA,CAAAA,CACnBC,MAAM,CAAC,CAACC,MAAAA,GAAW,CAACC,6BAAeD,MAAAA,CAAAA,CAAAA,CACnCE,GAAG,CAAC,CAACF,UAAY;AAChBb,oBAAAA,KAAAA,EAAOJ,aAAAA,CACL;wBACEK,EAAAA,EAAI,CAAC,+BAA+B,EAAEY,MAAAA,CAAAA,CAAQ;AAC9CX,wBAAAA,cAAAA,EAAgBc,+CAAAA,CAAkBH,MAAAA;qBACpC,EACA;wBAAEI,KAAAA,EAAOC;AAAU,qBAAA,CAAA;oBAErBf,KAAAA,EAAOU;iBACT,CAAA,CAAA;YACFM,IAAAA,EAAM;AACR,SAAA;AACA,QAAA;AACEnB,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,qCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAK,IAAAA,EAAM,MAAA;YACNY,IAAAA,EAAM;AACR;AACD,KAAA;IAED,OAAO;AACFf,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;YACAkB,SAAAA,EAAW;gBAAEb,IAAAA,EAAM,IAAA;gBAAMY,IAAAA,EAAM;AAAU,aAAA;YACzCZ,IAAAA,EAAM,MAAA;AACNR,YAAAA,SAAAA;AACAS,YAAAA,OAAAA,EAASX,KAAAA,CAAMkB,GAAG,CAAC,CAACM,QAAU;AAC5BrB,oBAAAA,KAAAA,EAAOqB,KAAKC,WAAW;oBACvBnB,KAAAA,EAAOkB,IAAAA,CAAKpB,EAAE,CAACsB,QAAQ;iBACzB,CAAA,CAAA;YACAJ,IAAAA,EAAM,UAAA;AACN,YAAA,GAAGrB;AACL;AACD,KAAA;AACH;;;;"}
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComboboxFilter } from '../components/ComboboxFilter.mjs';
|
|
2
2
|
import { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages.mjs';
|
|
3
|
+
import { isLegacyAction } from './legacyActions.mjs';
|
|
3
4
|
|
|
4
5
|
const getDisplayedFilters = ({ formatMessage, users, usersFilter })=>{
|
|
5
6
|
const operators = [
|
|
@@ -27,7 +28,8 @@ const getDisplayedFilters = ({ formatMessage, users, usersFilter })=>{
|
|
|
27
28
|
}),
|
|
28
29
|
name: 'action',
|
|
29
30
|
operators,
|
|
30
|
-
|
|
31
|
+
// Legacy keys stay in actionTypes to label stored rows; the new key filters both
|
|
32
|
+
options: Object.keys(actionTypes).filter((action)=>!isLegacyAction(action)).map((action)=>({
|
|
31
33
|
label: formatMessage({
|
|
32
34
|
id: `Settings.permissions.auditLogs.${action}`,
|
|
33
35
|
defaultMessage: getDefaultMessage(action)
|
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 { 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
|
|
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';\nimport { isLegacyAction } from './legacyActions';\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 // Legacy keys stay in actionTypes to label stored rows; the new key filters both\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[])\n .filter((action) => !isLegacyAction(action))\n .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","filter","action","isLegacyAction","map","getDefaultMessage","model","undefined","type","mainField","user","displayName","toString"],"mappings":";;;;AAaO,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;;AAEAS,YAAAA,OAAAA,EAAS,MAACC,CAAOC,IAAI,CAACC,WAAAA,CAAAA,CACnBC,MAAM,CAAC,CAACC,MAAAA,GAAW,CAACC,eAAeD,MAAAA,CAAAA,CAAAA,CACnCE,GAAG,CAAC,CAACF,UAAY;AAChBb,oBAAAA,KAAAA,EAAOJ,aAAAA,CACL;wBACEK,EAAAA,EAAI,CAAC,+BAA+B,EAAEY,MAAAA,CAAAA,CAAQ;AAC9CX,wBAAAA,cAAAA,EAAgBc,iBAAAA,CAAkBH,MAAAA;qBACpC,EACA;wBAAEI,KAAAA,EAAOC;AAAU,qBAAA,CAAA;oBAErBf,KAAAA,EAAOU;iBACT,CAAA,CAAA;YACFM,IAAAA,EAAM;AACR,SAAA;AACA,QAAA;AACEnB,YAAAA,KAAAA,EAAOJ,aAAAA,CAAc;gBACnBK,EAAAA,EAAI,qCAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAK,IAAAA,EAAM,MAAA;YACNY,IAAAA,EAAM;AACR;AACD,KAAA;IAED,OAAO;AACFf,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;YACAkB,SAAAA,EAAW;gBAAEb,IAAAA,EAAM,IAAA;gBAAMY,IAAAA,EAAM;AAAU,aAAA;YACzCZ,IAAAA,EAAM,MAAA;AACNR,YAAAA,SAAAA;AACAS,YAAAA,OAAAA,EAASX,KAAAA,CAAMkB,GAAG,CAAC,CAACM,QAAU;AAC5BrB,oBAAAA,KAAAA,EAAOqB,KAAKC,WAAW;oBACvBnB,KAAAA,EAAOkB,IAAAA,CAAKpB,EAAE,CAACsB,QAAQ;iBACzB,CAAA,CAAA;YACAJ,IAAAA,EAAM,UAAA;AACN,YAAA,GAAGrB;AACL;AACD,KAAA;AACH;;;;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Admin-account rows stored before the `admin-user.*` events kept their old action keys
|
|
5
|
+
* and stay until retention removes them. The Action filter offers the new key only and
|
|
6
|
+
* queries both, so one option covers the whole history.
|
|
7
|
+
*
|
|
8
|
+
* Remove together with the deprecated `user.*` event hub events.
|
|
9
|
+
*/ const LEGACY_ACTIONS = {
|
|
10
|
+
'admin-user.create': 'user.create',
|
|
11
|
+
'admin-user.update': 'user.update',
|
|
12
|
+
'admin-user.delete': 'user.delete'
|
|
13
|
+
};
|
|
14
|
+
const LEGACY_KEYS = new Set(Object.values(LEGACY_ACTIONS));
|
|
15
|
+
const isLegacyAction = (action)=>LEGACY_KEYS.has(action);
|
|
16
|
+
const expandActionCondition = (condition)=>{
|
|
17
|
+
const { $eq, $ne, ...rest } = condition;
|
|
18
|
+
if (typeof $eq === 'string' && LEGACY_ACTIONS[$eq]) {
|
|
19
|
+
return {
|
|
20
|
+
...rest,
|
|
21
|
+
$in: [
|
|
22
|
+
$eq,
|
|
23
|
+
LEGACY_ACTIONS[$eq]
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (typeof $ne === 'string' && LEGACY_ACTIONS[$ne]) {
|
|
28
|
+
return {
|
|
29
|
+
...rest,
|
|
30
|
+
$notIn: [
|
|
31
|
+
$ne,
|
|
32
|
+
LEGACY_ACTIONS[$ne]
|
|
33
|
+
]
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return condition;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Rewrites `action` equality conditions on a new key into `$in` / `$notIn` over the new
|
|
40
|
+
* and the legacy key. Walks `$and`, `$or` and `$not`. Anything else is returned as is.
|
|
41
|
+
*/ const expandLegacyActionFilters = (filters)=>{
|
|
42
|
+
if (Array.isArray(filters)) {
|
|
43
|
+
return filters.map(expandLegacyActionFilters);
|
|
44
|
+
}
|
|
45
|
+
if (!filters || typeof filters !== 'object') {
|
|
46
|
+
return filters;
|
|
47
|
+
}
|
|
48
|
+
const expanded = {};
|
|
49
|
+
for (const [key, value] of Object.entries(filters)){
|
|
50
|
+
if (key === 'action' && value && typeof value === 'object' && !Array.isArray(value)) {
|
|
51
|
+
expanded[key] = expandActionCondition(value);
|
|
52
|
+
} else if (key === '$and' || key === '$or' || key === '$not') {
|
|
53
|
+
expanded[key] = expandLegacyActionFilters(value);
|
|
54
|
+
} else {
|
|
55
|
+
expanded[key] = value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return expanded;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.LEGACY_ACTIONS = LEGACY_ACTIONS;
|
|
62
|
+
exports.expandLegacyActionFilters = expandLegacyActionFilters;
|
|
63
|
+
exports.isLegacyAction = isLegacyAction;
|
|
64
|
+
//# sourceMappingURL=legacyActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyActions.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.ts"],"sourcesContent":["/**\n * Admin-account rows stored before the `admin-user.*` events kept their old action keys\n * and stay until retention removes them. The Action filter offers the new key only and\n * queries both, so one option covers the whole history.\n *\n * Remove together with the deprecated `user.*` event hub events.\n */\nexport const LEGACY_ACTIONS: Record<string, string> = {\n 'admin-user.create': 'user.create',\n 'admin-user.update': 'user.update',\n 'admin-user.delete': 'user.delete',\n};\n\nconst LEGACY_KEYS = new Set(Object.values(LEGACY_ACTIONS));\n\nexport const isLegacyAction = (action: string) => LEGACY_KEYS.has(action);\n\ntype Condition = Record<string, unknown>;\n\nconst expandActionCondition = (condition: Condition): Condition => {\n const { $eq, $ne, ...rest } = condition;\n\n if (typeof $eq === 'string' && LEGACY_ACTIONS[$eq]) {\n return { ...rest, $in: [$eq, LEGACY_ACTIONS[$eq]] };\n }\n\n if (typeof $ne === 'string' && LEGACY_ACTIONS[$ne]) {\n return { ...rest, $notIn: [$ne, LEGACY_ACTIONS[$ne]] };\n }\n\n return condition;\n};\n\n/**\n * Rewrites `action` equality conditions on a new key into `$in` / `$notIn` over the new\n * and the legacy key. Walks `$and`, `$or` and `$not`. Anything else is returned as is.\n */\nexport const expandLegacyActionFilters = <T>(filters: T): T => {\n if (Array.isArray(filters)) {\n return filters.map(expandLegacyActionFilters) as T;\n }\n\n if (!filters || typeof filters !== 'object') {\n return filters;\n }\n\n const expanded: Condition = {};\n\n for (const [key, value] of Object.entries(filters as Condition)) {\n if (key === 'action' && value && typeof value === 'object' && !Array.isArray(value)) {\n expanded[key] = expandActionCondition(value as Condition);\n } else if (key === '$and' || key === '$or' || key === '$not') {\n expanded[key] = expandLegacyActionFilters(value);\n } else {\n expanded[key] = value;\n }\n }\n\n return expanded as T;\n};\n"],"names":["LEGACY_ACTIONS","LEGACY_KEYS","Set","Object","values","isLegacyAction","action","has","expandActionCondition","condition","$eq","$ne","rest","$in","$notIn","expandLegacyActionFilters","filters","Array","isArray","map","expanded","key","value","entries"],"mappings":";;AAAA;;;;;;UAOaA,cAAAA,GAAyC;IACpD,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB;AACvB;AAEA,MAAMC,WAAAA,GAAc,IAAIC,GAAAA,CAAIC,MAAAA,CAAOC,MAAM,CAACJ,cAAAA,CAAAA,CAAAA;MAE7BK,cAAAA,GAAiB,CAACC,SAAmBL,WAAAA,CAAYM,GAAG,CAACD,MAAAA;AAIlE,MAAME,wBAAwB,CAACC,SAAAA,GAAAA;AAC7B,IAAA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGC,MAAM,GAAGH,SAAAA;AAE9B,IAAA,IAAI,OAAOC,GAAAA,KAAQ,QAAA,IAAYV,cAAc,CAACU,IAAI,EAAE;QAClD,OAAO;AAAE,YAAA,GAAGE,IAAI;YAAEC,GAAAA,EAAK;AAACH,gBAAAA,GAAAA;AAAKV,gBAAAA,cAAc,CAACU,GAAAA;AAAK;AAAC,SAAA;AACpD,IAAA;AAEA,IAAA,IAAI,OAAOC,GAAAA,KAAQ,QAAA,IAAYX,cAAc,CAACW,IAAI,EAAE;QAClD,OAAO;AAAE,YAAA,GAAGC,IAAI;YAAEE,MAAAA,EAAQ;AAACH,gBAAAA,GAAAA;AAAKX,gBAAAA,cAAc,CAACW,GAAAA;AAAK;AAAC,SAAA;AACvD,IAAA;IAEA,OAAOF,SAAAA;AACT,CAAA;AAEA;;;IAIO,MAAMM,yBAAAA,GAA4B,CAAIC,OAAAA,GAAAA;IAC3C,IAAIC,KAAAA,CAAMC,OAAO,CAACF,OAAAA,CAAAA,EAAU;QAC1B,OAAOA,OAAAA,CAAQG,GAAG,CAACJ,yBAAAA,CAAAA;AACrB,IAAA;AAEA,IAAA,IAAI,CAACC,OAAAA,IAAW,OAAOA,OAAAA,KAAY,QAAA,EAAU;QAC3C,OAAOA,OAAAA;AACT,IAAA;AAEA,IAAA,MAAMI,WAAsB,EAAC;IAE7B,KAAK,MAAM,CAACC,GAAAA,EAAKC,KAAAA,CAAM,IAAInB,MAAAA,CAAOoB,OAAO,CAACP,OAAAA,CAAAA,CAAuB;QAC/D,IAAIK,GAAAA,KAAQ,QAAA,IAAYC,KAAAA,IAAS,OAAOA,KAAAA,KAAU,YAAY,CAACL,KAAAA,CAAMC,OAAO,CAACI,KAAAA,CAAAA,EAAQ;YACnFF,QAAQ,CAACC,GAAAA,CAAI,GAAGb,qBAAAA,CAAsBc,KAAAA,CAAAA;AACxC,QAAA,CAAA,MAAO,IAAID,GAAAA,KAAQ,MAAA,IAAUA,GAAAA,KAAQ,KAAA,IAASA,QAAQ,MAAA,EAAQ;YAC5DD,QAAQ,CAACC,GAAAA,CAAI,GAAGN,yBAAAA,CAA0BO,KAAAA,CAAAA;QAC5C,CAAA,MAAO;YACLF,QAAQ,CAACC,IAAI,GAAGC,KAAAA;AAClB,QAAA;AACF,IAAA;IAEA,OAAOF,QAAAA;AACT;;;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin-account rows stored before the `admin-user.*` events kept their old action keys
|
|
3
|
+
* and stay until retention removes them. The Action filter offers the new key only and
|
|
4
|
+
* queries both, so one option covers the whole history.
|
|
5
|
+
*
|
|
6
|
+
* Remove together with the deprecated `user.*` event hub events.
|
|
7
|
+
*/ const LEGACY_ACTIONS = {
|
|
8
|
+
'admin-user.create': 'user.create',
|
|
9
|
+
'admin-user.update': 'user.update',
|
|
10
|
+
'admin-user.delete': 'user.delete'
|
|
11
|
+
};
|
|
12
|
+
const LEGACY_KEYS = new Set(Object.values(LEGACY_ACTIONS));
|
|
13
|
+
const isLegacyAction = (action)=>LEGACY_KEYS.has(action);
|
|
14
|
+
const expandActionCondition = (condition)=>{
|
|
15
|
+
const { $eq, $ne, ...rest } = condition;
|
|
16
|
+
if (typeof $eq === 'string' && LEGACY_ACTIONS[$eq]) {
|
|
17
|
+
return {
|
|
18
|
+
...rest,
|
|
19
|
+
$in: [
|
|
20
|
+
$eq,
|
|
21
|
+
LEGACY_ACTIONS[$eq]
|
|
22
|
+
]
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (typeof $ne === 'string' && LEGACY_ACTIONS[$ne]) {
|
|
26
|
+
return {
|
|
27
|
+
...rest,
|
|
28
|
+
$notIn: [
|
|
29
|
+
$ne,
|
|
30
|
+
LEGACY_ACTIONS[$ne]
|
|
31
|
+
]
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return condition;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Rewrites `action` equality conditions on a new key into `$in` / `$notIn` over the new
|
|
38
|
+
* and the legacy key. Walks `$and`, `$or` and `$not`. Anything else is returned as is.
|
|
39
|
+
*/ const expandLegacyActionFilters = (filters)=>{
|
|
40
|
+
if (Array.isArray(filters)) {
|
|
41
|
+
return filters.map(expandLegacyActionFilters);
|
|
42
|
+
}
|
|
43
|
+
if (!filters || typeof filters !== 'object') {
|
|
44
|
+
return filters;
|
|
45
|
+
}
|
|
46
|
+
const expanded = {};
|
|
47
|
+
for (const [key, value] of Object.entries(filters)){
|
|
48
|
+
if (key === 'action' && value && typeof value === 'object' && !Array.isArray(value)) {
|
|
49
|
+
expanded[key] = expandActionCondition(value);
|
|
50
|
+
} else if (key === '$and' || key === '$or' || key === '$not') {
|
|
51
|
+
expanded[key] = expandLegacyActionFilters(value);
|
|
52
|
+
} else {
|
|
53
|
+
expanded[key] = value;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return expanded;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export { LEGACY_ACTIONS, expandLegacyActionFilters, isLegacyAction };
|
|
60
|
+
//# sourceMappingURL=legacyActions.mjs.map
|
package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacyActions.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/legacyActions.ts"],"sourcesContent":["/**\n * Admin-account rows stored before the `admin-user.*` events kept their old action keys\n * and stay until retention removes them. The Action filter offers the new key only and\n * queries both, so one option covers the whole history.\n *\n * Remove together with the deprecated `user.*` event hub events.\n */\nexport const LEGACY_ACTIONS: Record<string, string> = {\n 'admin-user.create': 'user.create',\n 'admin-user.update': 'user.update',\n 'admin-user.delete': 'user.delete',\n};\n\nconst LEGACY_KEYS = new Set(Object.values(LEGACY_ACTIONS));\n\nexport const isLegacyAction = (action: string) => LEGACY_KEYS.has(action);\n\ntype Condition = Record<string, unknown>;\n\nconst expandActionCondition = (condition: Condition): Condition => {\n const { $eq, $ne, ...rest } = condition;\n\n if (typeof $eq === 'string' && LEGACY_ACTIONS[$eq]) {\n return { ...rest, $in: [$eq, LEGACY_ACTIONS[$eq]] };\n }\n\n if (typeof $ne === 'string' && LEGACY_ACTIONS[$ne]) {\n return { ...rest, $notIn: [$ne, LEGACY_ACTIONS[$ne]] };\n }\n\n return condition;\n};\n\n/**\n * Rewrites `action` equality conditions on a new key into `$in` / `$notIn` over the new\n * and the legacy key. Walks `$and`, `$or` and `$not`. Anything else is returned as is.\n */\nexport const expandLegacyActionFilters = <T>(filters: T): T => {\n if (Array.isArray(filters)) {\n return filters.map(expandLegacyActionFilters) as T;\n }\n\n if (!filters || typeof filters !== 'object') {\n return filters;\n }\n\n const expanded: Condition = {};\n\n for (const [key, value] of Object.entries(filters as Condition)) {\n if (key === 'action' && value && typeof value === 'object' && !Array.isArray(value)) {\n expanded[key] = expandActionCondition(value as Condition);\n } else if (key === '$and' || key === '$or' || key === '$not') {\n expanded[key] = expandLegacyActionFilters(value);\n } else {\n expanded[key] = value;\n }\n }\n\n return expanded as T;\n};\n"],"names":["LEGACY_ACTIONS","LEGACY_KEYS","Set","Object","values","isLegacyAction","action","has","expandActionCondition","condition","$eq","$ne","rest","$in","$notIn","expandLegacyActionFilters","filters","Array","isArray","map","expanded","key","value","entries"],"mappings":"AAAA;;;;;;UAOaA,cAAAA,GAAyC;IACpD,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB,aAAA;IACrB,mBAAA,EAAqB;AACvB;AAEA,MAAMC,WAAAA,GAAc,IAAIC,GAAAA,CAAIC,MAAAA,CAAOC,MAAM,CAACJ,cAAAA,CAAAA,CAAAA;MAE7BK,cAAAA,GAAiB,CAACC,SAAmBL,WAAAA,CAAYM,GAAG,CAACD,MAAAA;AAIlE,MAAME,wBAAwB,CAACC,SAAAA,GAAAA;AAC7B,IAAA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGC,MAAM,GAAGH,SAAAA;AAE9B,IAAA,IAAI,OAAOC,GAAAA,KAAQ,QAAA,IAAYV,cAAc,CAACU,IAAI,EAAE;QAClD,OAAO;AAAE,YAAA,GAAGE,IAAI;YAAEC,GAAAA,EAAK;AAACH,gBAAAA,GAAAA;AAAKV,gBAAAA,cAAc,CAACU,GAAAA;AAAK;AAAC,SAAA;AACpD,IAAA;AAEA,IAAA,IAAI,OAAOC,GAAAA,KAAQ,QAAA,IAAYX,cAAc,CAACW,IAAI,EAAE;QAClD,OAAO;AAAE,YAAA,GAAGC,IAAI;YAAEE,MAAAA,EAAQ;AAACH,gBAAAA,GAAAA;AAAKX,gBAAAA,cAAc,CAACW,GAAAA;AAAK;AAAC,SAAA;AACvD,IAAA;IAEA,OAAOF,SAAAA;AACT,CAAA;AAEA;;;IAIO,MAAMM,yBAAAA,GAA4B,CAAIC,OAAAA,GAAAA;IAC3C,IAAIC,KAAAA,CAAMC,OAAO,CAACF,OAAAA,CAAAA,EAAU;QAC1B,OAAOA,OAAAA,CAAQG,GAAG,CAACJ,yBAAAA,CAAAA;AACrB,IAAA;AAEA,IAAA,IAAI,CAACC,OAAAA,IAAW,OAAOA,OAAAA,KAAY,QAAA,EAAU;QAC3C,OAAOA,OAAAA;AACT,IAAA;AAEA,IAAA,MAAMI,WAAsB,EAAC;IAE7B,KAAK,MAAM,CAACC,GAAAA,EAAKC,KAAAA,CAAM,IAAInB,MAAAA,CAAOoB,OAAO,CAACP,OAAAA,CAAAA,CAAuB;QAC/D,IAAIK,GAAAA,KAAQ,QAAA,IAAYC,KAAAA,IAAS,OAAOA,KAAAA,KAAU,YAAY,CAACL,KAAAA,CAAMC,OAAO,CAACI,KAAAA,CAAAA,EAAQ;YACnFF,QAAQ,CAACC,GAAAA,CAAI,GAAGb,qBAAAA,CAAsBc,KAAAA,CAAAA;AACxC,QAAA,CAAA,MAAO,IAAID,GAAAA,KAAQ,MAAA,IAAUA,GAAAA,KAAQ,KAAA,IAASA,QAAQ,MAAA,EAAQ;YAC5DD,QAAQ,CAACC,GAAAA,CAAI,GAAGN,yBAAAA,CAA0BO,KAAAA,CAAAA;QAC5C,CAAA,MAAO;YACLF,QAAQ,CAACC,IAAI,GAAGC,KAAAA;AAClB,QAAA;AACF,IAAA;IAEA,OAAOF,QAAAA;AACT;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var api = require('../../../../admin/src/services/api.js');
|
|
4
|
+
var legacyActions = require('../pages/SettingsPage/pages/AuditLogs/utils/legacyActions.js');
|
|
4
5
|
|
|
5
6
|
const auditLogsService = api.adminApi.injectEndpoints({
|
|
6
7
|
endpoints: (builder)=>({
|
|
@@ -8,7 +9,7 @@ const auditLogsService = api.adminApi.injectEndpoints({
|
|
|
8
9
|
query: (params)=>({
|
|
9
10
|
url: `/admin/audit-logs`,
|
|
10
11
|
config: {
|
|
11
|
-
params
|
|
12
|
+
params: legacyActions.expandLegacyActionFilters(params)
|
|
12
13
|
}
|
|
13
14
|
})
|
|
14
15
|
}),
|
|
@@ -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 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":"
|
|
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';\nimport { expandLegacyActionFilters } from '../pages/SettingsPage/pages/AuditLogs/utils/legacyActions';\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: expandLegacyActionFilters(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","expandLegacyActionFilters","getAuditLog","id","getAuditLogUsers","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery","useGetAuditLogUsersQuery"],"mappings":";;;;;AAIA,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,MAAAA,EAAQG,uCAAAA,CAA0BH,MAAAA;AACpC;qBACF;AACF,aAAA,CAAA;YACAI,WAAAA,EAAaP,OAAAA,CAAQE,KAAK,CAAqD;AAC7EA,gBAAAA,KAAAA,EAAO,CAACM,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAAA,CAAAA;AACtC,aAAA,CAAA;YACAC,gBAAAA,EAAkBT,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;IACAO,gBAAAA,EAAkB;AACpB,CAAA,CAAA;AAEA,MAAM,EAAEC,oBAAoB,EAAEC,mBAAmB,EAAEC,wBAAwB,EAAE,GAAGjB;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { adminApi } from '../../../../admin/src/services/api.mjs';
|
|
2
|
+
import { expandLegacyActionFilters } from '../pages/SettingsPage/pages/AuditLogs/utils/legacyActions.mjs';
|
|
2
3
|
|
|
3
4
|
const auditLogsService = adminApi.injectEndpoints({
|
|
4
5
|
endpoints: (builder)=>({
|
|
@@ -6,7 +7,7 @@ const auditLogsService = adminApi.injectEndpoints({
|
|
|
6
7
|
query: (params)=>({
|
|
7
8
|
url: `/admin/audit-logs`,
|
|
8
9
|
config: {
|
|
9
|
-
params
|
|
10
|
+
params: expandLegacyActionFilters(params)
|
|
10
11
|
}
|
|
11
12
|
})
|
|
12
13
|
}),
|
|
@@ -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 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":"
|
|
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';\nimport { expandLegacyActionFilters } from '../pages/SettingsPage/pages/AuditLogs/utils/legacyActions';\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: expandLegacyActionFilters(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","expandLegacyActionFilters","getAuditLog","id","getAuditLogUsers","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery","useGetAuditLogUsersQuery"],"mappings":";;;AAIA,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,MAAAA,EAAQG,yBAAAA,CAA0BH,MAAAA;AACpC;qBACF;AACF,aAAA,CAAA;YACAI,WAAAA,EAAaP,OAAAA,CAAQE,KAAK,CAAqD;AAC7EA,gBAAAA,KAAAA,EAAO,CAACM,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAAA,CAAAA;AACtC,aAAA,CAAA;YACAC,gBAAAA,EAAkBT,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;IACAO,gBAAAA,EAAkB;AACpB,CAAA,CAAA;AAEA,MAAM,EAAEC,oBAAoB,EAAEC,mBAAmB,EAAEC,wBAAwB,EAAE,GAAGjB;;;;"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
interface MediaLibraryBannerProps {
|
|
2
|
+
/**
|
|
3
|
+
* Called synchronously (before paint) whenever this banner's own visibility changes, so a
|
|
4
|
+
* parent rendering it alongside another banner (e.g. `UpsellBanner`) can hide that other one
|
|
5
|
+
* instead of stacking both. This banner owns its dismissal state, so it's the source of truth
|
|
6
|
+
* for whether it's showing — the parent shouldn't have to re-derive that itself.
|
|
7
|
+
*/
|
|
8
|
+
onVisibilityChange?: (isVisible: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const MediaLibraryBanner: ({ onVisibilityChange }?: MediaLibraryBannerProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
2
11
|
export { MediaLibraryBanner };
|
|
@@ -58,13 +58,13 @@ export declare const SubNav: {
|
|
|
58
58
|
Folder: ({ defaultOpen, open: openProp, isDropTarget, endAction, children, onToggle, rowRef, label, depth, }: import("./SubNavFolder").SubNavFolderProps) => import("react/jsx-runtime").JSX.Element;
|
|
59
59
|
PageWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("@strapi/design-system").TransientBoxProps & {
|
|
60
60
|
children?: React.ReactNode;
|
|
61
|
-
} & import("@strapi/design-system/dist/types").AsProp<import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements>> & Omit<Omit<any, "ref">, "children" | keyof import("@strapi/design-system/dist/types").AsProp<C> | keyof import("@strapi/design-system").TransientBoxProps> & {
|
|
61
|
+
} & import("@strapi/design-system/dist/types.js").AsProp<import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements>> & Omit<Omit<any, "ref">, "children" | keyof import("@strapi/design-system/dist/types.js").AsProp<C> | keyof import("@strapi/design-system").TransientBoxProps> & {
|
|
62
62
|
ref?: any;
|
|
63
63
|
}, "ref"> & {
|
|
64
64
|
ref?: any;
|
|
65
65
|
}, never> & Partial<Pick<Omit<import("@strapi/design-system").TransientBoxProps & {
|
|
66
66
|
children?: React.ReactNode;
|
|
67
|
-
} & import("@strapi/design-system/dist/types").AsProp<import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements>> & Omit<Omit<any, "ref">, "children" | keyof import("@strapi/design-system/dist/types").AsProp<C> | keyof import("@strapi/design-system").TransientBoxProps> & {
|
|
67
|
+
} & import("@strapi/design-system/dist/types.js").AsProp<import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements>> & Omit<Omit<any, "ref">, "children" | keyof import("@strapi/design-system/dist/types.js").AsProp<C> | keyof import("@strapi/design-system").TransientBoxProps> & {
|
|
68
68
|
ref?: any;
|
|
69
69
|
}, "ref"> & {
|
|
70
70
|
ref?: any;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Renders the admin's top banners, ensuring only one shows at a time instead of
|
|
3
|
+
* stacking: the Media Library banner takes priority over the upsell one. Kept as its own
|
|
4
|
+
* component (rather than inline in `AuthenticatedLayout`) so this wiring can be unit tested
|
|
5
|
+
* without the rest of the layout's unrelated dependencies (menu, tracking, app info, etc.).
|
|
6
|
+
*/
|
|
7
|
+
declare const TopBanners: () => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { TopBanners };
|
|
@@ -13,6 +13,13 @@ export interface TelemetryProperties {
|
|
|
13
13
|
export interface TrackingContextValue {
|
|
14
14
|
uuid?: string | boolean;
|
|
15
15
|
telemetryProperties?: TelemetryProperties;
|
|
16
|
+
strapiVersion?: string | null;
|
|
17
|
+
/**
|
|
18
|
+
* True once the version that `trackUsage` will attach is known, or the
|
|
19
|
+
* information request has failed. Callers that must send a single event
|
|
20
|
+
* wait for this so a later version update does not send the event again.
|
|
21
|
+
*/
|
|
22
|
+
isStrapiVersionReady: boolean;
|
|
16
23
|
}
|
|
17
24
|
export interface TrackingProviderProps {
|
|
18
25
|
children: React.ReactNode;
|
|
@@ -285,4 +292,8 @@ export interface UseTrackingReturn {
|
|
|
285
292
|
* ```
|
|
286
293
|
*/
|
|
287
294
|
declare const useTracking: () => UseTrackingReturn;
|
|
288
|
-
|
|
295
|
+
/**
|
|
296
|
+
* Internal readiness signal for events that must wait for the provider's version.
|
|
297
|
+
*/
|
|
298
|
+
declare const useStrapiVersionReady: () => boolean;
|
|
299
|
+
export { TrackingProvider, useTracking, useStrapiVersionReady };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends `didAccessAuthenticatedAdministration` once per mount, after the Strapi
|
|
3
|
+
* version is ready and the telemetry-properties query has settled.
|
|
4
|
+
*/
|
|
5
|
+
declare const useAuthenticatedAccessTracking: (projectId?: string | null) => void;
|
|
6
|
+
export { useAuthenticatedAccessTracking };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Modules } from '@strapi/types';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the `window.strapi` object: Community defaults, then the license response.
|
|
4
|
+
* Returned rather than assigned so the caller publishes it to `window` exactly once.
|
|
5
|
+
*
|
|
6
|
+
* Nothing here may read `window.strapi` — it does not exist yet, and the `#strapi`
|
|
7
|
+
* mount node shadows it as a named window property, so reads silently yield the
|
|
8
|
+
* element instead of throwing.
|
|
9
|
+
*/
|
|
10
|
+
declare const createBrowserStrapi: (features?: Modules.Features.FeaturesService["config"]) => Promise<Window["strapi"]>;
|
|
11
|
+
export { createBrowserStrapi };
|
|
@@ -44,5 +44,20 @@ export declare const actionTypes: {
|
|
|
44
44
|
'token.update': string;
|
|
45
45
|
'token.delete': string;
|
|
46
46
|
'token.regenerate': string;
|
|
47
|
+
'admin-user.create': string;
|
|
48
|
+
'admin-user.update': string;
|
|
49
|
+
'admin-user.delete': string;
|
|
50
|
+
'admin-user.invite.accept': string;
|
|
51
|
+
'admin-user.password-reset.create': string;
|
|
52
|
+
'admin-user.password-reset.confirm': string;
|
|
53
|
+
'admin-user.password.update': string;
|
|
54
|
+
'webhook.create': string;
|
|
55
|
+
'webhook.update': string;
|
|
56
|
+
'webhook.delete': string;
|
|
57
|
+
'workflow.create': string;
|
|
58
|
+
'workflow.update': string;
|
|
59
|
+
'workflow.delete': string;
|
|
60
|
+
'review-workflows.updateEntryStage': string;
|
|
61
|
+
'entry.assignee.update': string;
|
|
47
62
|
};
|
|
48
63
|
export declare const getDefaultMessage: (value: keyof typeof actionTypes) => string;
|