@strapi/admin 5.29.0 → 5.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- 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/Form.js +8 -3
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +8 -3
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +1 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +34 -1
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/Theme.mjs +34 -1
- package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/features/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +10 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +10 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js +1 -0
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -0
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/services/webhooks.js.map +1 -1
- package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +4 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +4 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
- package/dist/admin/admin/src/utils/users.js.map +1 -1
- package/dist/admin/admin/src/utils/users.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -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.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +14 -1
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/ee.js +1 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +13 -13
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/services/ai.d.ts +6 -3
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
- package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +1 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
- 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.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +7 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +7 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/index.js.map +1 -1
- package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js +10 -0
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/user.mjs +10 -0
- package/dist/server/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/encryption.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +30 -0
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +30 -0
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/utils/index.js.map +1 -1
- package/dist/server/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/validation/action-provider.js.map +1 -1
- package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/src/controllers/user.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +16 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={<BackButton fallback=\"../users\" />}\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","title","getDisplayName","navigationAction","BackButton","fallback","Content","registrationToken","Box","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","col","InputRenderer","placeholder","undefined","xs","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../users\" />\n </Box>\n }\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","title","getDisplayName","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","registrationToken","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","col","InputRenderer","placeholder","undefined","xs","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
|
|
@@ -167,8 +167,15 @@ const fieldsToPick = [
|
|
|
167
167
|
// @ts-expect-error – issues with the Entity ID type, still.
|
|
168
168
|
name: getDisplayName(initialData)
|
|
169
169
|
}),
|
|
170
|
-
navigationAction:
|
|
171
|
-
|
|
170
|
+
navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
|
|
171
|
+
/*#__PURE__*/ jsx(Box, {
|
|
172
|
+
display: {
|
|
173
|
+
initial: 'none',
|
|
174
|
+
medium: 'block'
|
|
175
|
+
},
|
|
176
|
+
children: /*#__PURE__*/ jsx(BackButton, {
|
|
177
|
+
fallback: "../users"
|
|
178
|
+
})
|
|
172
179
|
})
|
|
173
180
|
}),
|
|
174
181
|
/*#__PURE__*/ jsxs(Layouts.Content, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={<BackButton fallback=\"../users\" />}\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","title","getDisplayName","navigationAction","BackButton","fallback","Content","registrationToken","Box","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","col","InputRenderer","placeholder","undefined","xs","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../users\" />\n </Box>\n }\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","title","getDisplayName","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","registrationToken","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","col","InputRenderer","placeholder","undefined","xs","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ var Pagination = require('../../../../components/Pagination.js');
|
|
|
15
15
|
var SearchInput = require('../../../../components/SearchInput.js');
|
|
16
16
|
var Table = require('../../../../components/Table.js');
|
|
17
17
|
var hooks = require('../../../../core/store/hooks.js');
|
|
18
|
+
var Auth = require('../../../../features/Auth.js');
|
|
18
19
|
var Notifications = require('../../../../features/Notifications.js');
|
|
19
20
|
var useAPIErrorHandler = require('../../../../hooks/useAPIErrorHandler.js');
|
|
20
21
|
var useEnterprise = require('../../../../hooks/useEnterprise.js');
|
|
@@ -60,6 +61,7 @@ var qs__namespace = /*#__PURE__*/_interopNamespaceDefault(qs);
|
|
|
60
61
|
const { data, isError, isLoading } = users.useAdminUsers(qs__namespace.parse(search, {
|
|
61
62
|
ignoreQueryPrefix: true
|
|
62
63
|
}));
|
|
64
|
+
const { user: currentUser } = Auth.useAuth('ListPageCE', (auth)=>auth);
|
|
63
65
|
const { pagination, users: users$2 = [] } = data ?? {};
|
|
64
66
|
const CreateAction = useEnterprise.useEnterprise(CreateActionCE.CreateActionCE, async ()=>(await Promise.resolve().then(function () { return require('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js'); })).CreateActionEE);
|
|
65
67
|
const headers = TABLE_HEADERS.map((header)=>({
|
|
@@ -218,7 +220,7 @@ var qs__namespace = /*#__PURE__*/_interopNamespaceDefault(qs);
|
|
|
218
220
|
variant: "ghost",
|
|
219
221
|
children: /*#__PURE__*/ jsxRuntime.jsx(icons.Pencil, {})
|
|
220
222
|
}) : null,
|
|
221
|
-
canDelete ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
223
|
+
canDelete && currentUser?.id !== user.id ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
222
224
|
onClick: handleDeleteClick(user.id),
|
|
223
225
|
label: formatMessage({
|
|
224
226
|
id: 'global.delete-target',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { Pagination } from '../../../../components/Pagination.mjs';
|
|
|
13
13
|
import { SearchInput } from '../../../../components/SearchInput.mjs';
|
|
14
14
|
import { Table } from '../../../../components/Table.mjs';
|
|
15
15
|
import { useTypedSelector } from '../../../../core/store/hooks.mjs';
|
|
16
|
+
import { useAuth } from '../../../../features/Auth.mjs';
|
|
16
17
|
import { useNotification } from '../../../../features/Notifications.mjs';
|
|
17
18
|
import { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler.mjs';
|
|
18
19
|
import { useEnterprise } from '../../../../hooks/useEnterprise.mjs';
|
|
@@ -38,6 +39,7 @@ import { ModalForm } from './components/NewUserForm.mjs';
|
|
|
38
39
|
const { data, isError, isLoading } = useAdminUsers(qs.parse(search, {
|
|
39
40
|
ignoreQueryPrefix: true
|
|
40
41
|
}));
|
|
42
|
+
const { user: currentUser } = useAuth('ListPageCE', (auth)=>auth);
|
|
41
43
|
const { pagination, users = [] } = data ?? {};
|
|
42
44
|
const CreateAction = useEnterprise(CreateActionCE, async ()=>(await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs')).CreateActionEE);
|
|
43
45
|
const headers = TABLE_HEADERS.map((header)=>({
|
|
@@ -196,7 +198,7 @@ import { ModalForm } from './components/NewUserForm.mjs';
|
|
|
196
198
|
variant: "ghost",
|
|
197
199
|
children: /*#__PURE__*/ jsx(Pencil, {})
|
|
198
200
|
}) : null,
|
|
199
|
-
canDelete ? /*#__PURE__*/ jsx(IconButton, {
|
|
201
|
+
canDelete && currentUser?.id !== user.id ? /*#__PURE__*/ jsx(IconButton, {
|
|
200
202
|
onClick: handleDeleteClick(user.id),
|
|
201
203
|
label: formatMessage({
|
|
202
204
|
id: 'global.delete-target',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MagicLinkCE.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n"],"names":["MagicLinkCE","registrationToken","formatMessage","useIntl","target","window","location","origin","getBasename","_jsx","MagicLinkWrapper","id","defaultMessage"],"mappings":";;;;;;;AAUA,MAAMA,WAAc,GAAA,CAAC,EAAEC,iBAAiB,EAAoB,GAAA;IAC1D,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;
|
|
1
|
+
{"version":3,"file":"MagicLinkCE.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n"],"names":["MagicLinkCE","registrationToken","formatMessage","useIntl","target","window","location","origin","getBasename","_jsx","MagicLinkWrapper","id","defaultMessage"],"mappings":";;;;;;;AAUA,MAAMA,WAAc,GAAA,CAAC,EAAEC,iBAAiB,EAAoB,GAAA;IAC1D,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,MAAAA,GAAS,CACbC,EAAAA,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CACrBC,EAAAA,oBAAAA,EAAAA,CAAc,iCAAiC,EAAEP,iBAAmB,CAAA,CAAA;AAEvE,IAAA,qBACEQ,cAACC,CAAAA,iCAAAA,EAAAA;QAAiBN,MAAQA,EAAAA,MAAAA;kBACvBF,aAAc,CAAA;YACbS,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;;AAGN;;;;"}
|