@strapi/admin 5.14.0 → 5.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/assets/images/free-trial.png.js +6 -0
- package/dist/admin/admin/src/assets/images/free-trial.png.js.map +1 -0
- package/dist/admin/admin/src/assets/images/free-trial.png.mjs +4 -0
- package/dist/admin/admin/src/assets/images/free-trial.png.mjs.map +1 -0
- package/dist/admin/admin/src/components/ConfirmDialog.js +2 -2
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js +3 -3
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +3 -3
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.js +37 -0
- package/dist/admin/admin/src/components/GradientBadge.js.map +1 -0
- package/dist/admin/admin/src/components/GradientBadge.mjs +35 -0
- package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Modal.js +3 -3
- package/dist/admin/admin/src/components/GuidedTour/Modal.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +3 -3
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +7 -5
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +3 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
- package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js +3 -3
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +8 -8
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +114 -0
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +112 -0
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -0
- package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +6 -6
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/Table.js +2 -2
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +2 -2
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +113 -0
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -0
- package/dist/admin/admin/src/components/UpsellBanner.mjs +111 -0
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -0
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +2 -0
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +2 -0
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -2
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +4 -0
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +4 -0
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +183 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +181 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +128 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +126 -0
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js +3 -3
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js +2 -2
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js +2 -2
- package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +3 -3
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -10
- 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/ConditionsButton.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -5
- 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/HiddenAction.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/render.js +3 -1
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +3 -1
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/services/admin.js +13 -2
- package/dist/admin/admin/src/services/admin.js.map +1 -1
- package/dist/admin/admin/src/services/admin.mjs +13 -3
- package/dist/admin/admin/src/services/admin.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ar.json.js +1 -0
- package/dist/admin/admin/src/translations/ar.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ar.json.mjs +1 -0
- package/dist/admin/admin/src/translations/ar.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ca.json.js +1 -0
- package/dist/admin/admin/src/translations/ca.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ca.json.mjs +1 -0
- package/dist/admin/admin/src/translations/ca.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/de.json.js +1 -0
- package/dist/admin/admin/src/translations/de.json.js.map +1 -1
- package/dist/admin/admin/src/translations/de.json.mjs +1 -0
- package/dist/admin/admin/src/translations/de.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/dk.json.js +1 -0
- package/dist/admin/admin/src/translations/dk.json.js.map +1 -1
- package/dist/admin/admin/src/translations/dk.json.mjs +1 -0
- package/dist/admin/admin/src/translations/dk.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +19 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +19 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/es.json.js +1 -0
- package/dist/admin/admin/src/translations/es.json.js.map +1 -1
- package/dist/admin/admin/src/translations/es.json.mjs +1 -0
- package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/eu.json.js +1 -0
- package/dist/admin/admin/src/translations/eu.json.js.map +1 -1
- package/dist/admin/admin/src/translations/eu.json.mjs +1 -0
- package/dist/admin/admin/src/translations/eu.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.js +1 -0
- package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.mjs +1 -0
- package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/gu.json.js +1 -0
- package/dist/admin/admin/src/translations/gu.json.js.map +1 -1
- package/dist/admin/admin/src/translations/gu.json.mjs +1 -0
- package/dist/admin/admin/src/translations/gu.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/hi.json.js +1 -0
- package/dist/admin/admin/src/translations/hi.json.js.map +1 -1
- package/dist/admin/admin/src/translations/hi.json.mjs +1 -0
- package/dist/admin/admin/src/translations/hi.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/hu.json.js +1 -0
- package/dist/admin/admin/src/translations/hu.json.js.map +1 -1
- package/dist/admin/admin/src/translations/hu.json.mjs +1 -0
- package/dist/admin/admin/src/translations/hu.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +1 -0
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +1 -0
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.js +1 -0
- package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.mjs +1 -0
- package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ml.json.js +1 -0
- package/dist/admin/admin/src/translations/ml.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ml.json.mjs +1 -0
- package/dist/admin/admin/src/translations/ml.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/nl.json.js +1 -0
- package/dist/admin/admin/src/translations/nl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/nl.json.mjs +1 -0
- package/dist/admin/admin/src/translations/nl.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.js +1 -0
- package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.mjs +1 -0
- package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pt-BR.json.js +1 -0
- package/dist/admin/admin/src/translations/pt-BR.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pt-BR.json.mjs +1 -0
- package/dist/admin/admin/src/translations/pt-BR.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ru.json.js +1 -0
- package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ru.json.mjs +1 -0
- package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/sa.json.js +1 -0
- package/dist/admin/admin/src/translations/sa.json.js.map +1 -1
- package/dist/admin/admin/src/translations/sa.json.mjs +1 -0
- package/dist/admin/admin/src/translations/sa.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/sk.json.js +1 -0
- package/dist/admin/admin/src/translations/sk.json.js.map +1 -1
- package/dist/admin/admin/src/translations/sk.json.mjs +1 -0
- package/dist/admin/admin/src/translations/sk.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/sv.json.js +1 -0
- package/dist/admin/admin/src/translations/sv.json.js.map +1 -1
- package/dist/admin/admin/src/translations/sv.json.mjs +1 -0
- package/dist/admin/admin/src/translations/sv.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/tr.json.js +1 -0
- package/dist/admin/admin/src/translations/tr.json.js.map +1 -1
- package/dist/admin/admin/src/translations/tr.json.mjs +1 -0
- package/dist/admin/admin/src/translations/tr.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/uk.json.js +1 -0
- package/dist/admin/admin/src/translations/uk.json.js.map +1 -1
- package/dist/admin/admin/src/translations/uk.json.mjs +1 -0
- package/dist/admin/admin/src/translations/uk.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/zh-Hans.json.js +1 -0
- package/dist/admin/admin/src/translations/zh-Hans.json.js.map +1 -1
- package/dist/admin/admin/src/translations/zh-Hans.json.mjs +1 -0
- package/dist/admin/admin/src/translations/zh-Hans.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/zh.json.js +1 -0
- package/dist/admin/admin/src/translations/zh.json.js.map +1 -1
- package/dist/admin/admin/src/translations/zh.json.mjs +1 -0
- package/dist/admin/admin/src/translations/zh.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +2 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs +2 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -2
- 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/SingleSignOnPage.js +7 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +7 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/GradientBadge.d.ts +4 -0
- package/dist/admin/src/components/MainNav/TrialCountdown.d.ts +2 -0
- package/dist/admin/src/components/UpsellBanner.d.ts +2 -0
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/Home/components/FreeTrialEndedModal.d.ts +1 -0
- package/dist/admin/src/pages/Home/components/FreeTrialWelcomeModal.d.ts +1 -0
- package/dist/admin/src/services/admin.d.ts +8 -6
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -0
- package/dist/ee/server/src/controllers/admin.d.ts +3 -0
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +3 -0
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +6 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js +2 -0
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +2 -0
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +6 -0
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +6 -0
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/routes/admin.js +10 -0
- package/dist/server/server/src/routes/admin.js.map +1 -1
- package/dist/server/server/src/routes/admin.mjs +10 -0
- package/dist/server/server/src/routes/admin.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js +10 -15
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs +11 -16
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +3 -0
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +3 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts +1 -1
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage.js","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst SCHEMA = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n }),\n name: 'autoRegister',\n size: 6,\n type: 'boolean' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","Layouts","Root","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","_Fragment","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","hint","label","size","options","map","toString","placeholder","field","Item","col","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage.js","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { GradientBadge } from '../../../../../../admin/src/components/GradientBadge';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst SCHEMA = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n }),\n name: 'autoRegister',\n size: 6,\n type: 'boolean' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","Layouts","Root","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","_Fragment","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","secondaryAction","GradientBadge","label","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","hint","size","options","map","toString","placeholder","field","Item","col","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { useIntl } from 'react-intl';
|
|
|
5
5
|
import * as yup from 'yup';
|
|
6
6
|
import { Form, useField } from '../../../../../../admin/src/components/Form.mjs';
|
|
7
7
|
import { InputRenderer as MemoizedInputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer.mjs';
|
|
8
|
+
import { GradientBadge as GradientBadgeWithIcon } from '../../../../../../admin/src/components/GradientBadge.mjs';
|
|
8
9
|
import { Layouts } from '../../../../../../admin/src/components/Layouts/Layout.mjs';
|
|
9
10
|
import { Page } from '../../../../../../admin/src/components/PageHelpers.mjs';
|
|
10
11
|
import { useTypedSelector } from '../../../../../../admin/src/core/store/hooks.mjs';
|
|
@@ -113,6 +114,12 @@ const SingleSignOnPage = ()=>{
|
|
|
113
114
|
subtitle: formatMessage({
|
|
114
115
|
id: 'Settings.sso.description',
|
|
115
116
|
defaultMessage: 'Configure the settings for the Single Sign-On feature.'
|
|
117
|
+
}),
|
|
118
|
+
secondaryAction: /*#__PURE__*/ jsx(GradientBadgeWithIcon, {
|
|
119
|
+
label: formatMessage({
|
|
120
|
+
id: 'components.premiumFeature.title',
|
|
121
|
+
defaultMessage: 'Premium feature'
|
|
122
|
+
})
|
|
116
123
|
})
|
|
117
124
|
}),
|
|
118
125
|
/*#__PURE__*/ jsx(Layouts.Content, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage.mjs","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst SCHEMA = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n }),\n name: 'autoRegister',\n size: 6,\n type: 'boolean' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","Layouts","Root","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","_Fragment","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","hint","label","size","options","map","toString","placeholder","field","Item","col","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage.mjs","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { GradientBadge } from '../../../../../../admin/src/components/GradientBadge';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst SCHEMA = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n }),\n name: 'autoRegister',\n size: 6,\n type: 'boolean' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","Layouts","Root","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","_Fragment","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","secondaryAction","GradientBadge","label","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","hint","size","options","map","toString","placeholder","field","Item","col","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
package/dist/admin/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var SearchInput = require('./admin/src/components/SearchInput.js');
|
|
|
15
15
|
var Table = require('./admin/src/components/Table.js');
|
|
16
16
|
var ContentBox = require('./admin/src/components/ContentBox.js');
|
|
17
17
|
var SubNav = require('./admin/src/components/SubNav.js');
|
|
18
|
+
var GradientBadge = require('./admin/src/components/GradientBadge.js');
|
|
18
19
|
var Provider = require('./admin/src/components/GuidedTour/Provider.js');
|
|
19
20
|
var Tracking = require('./admin/src/features/Tracking.js');
|
|
20
21
|
var StrapiApp = require('./admin/src/features/StrapiApp.js');
|
|
@@ -59,6 +60,7 @@ exports.Table = Table.Table;
|
|
|
59
60
|
exports.useTable = Table.useTable;
|
|
60
61
|
exports.ContentBox = ContentBox.ContentBox;
|
|
61
62
|
exports.SubNav = SubNav.SubNav;
|
|
63
|
+
exports.GradientBadge = GradientBadge.GradientBadge;
|
|
62
64
|
exports.useGuidedTour = Provider.useGuidedTour;
|
|
63
65
|
exports.useTracking = Tracking.useTracking;
|
|
64
66
|
exports.useStrapiApp = StrapiApp.useStrapiApp;
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -13,6 +13,7 @@ export { SearchInput } from './admin/src/components/SearchInput.mjs';
|
|
|
13
13
|
export { Table, useTable } from './admin/src/components/Table.mjs';
|
|
14
14
|
export { ContentBox } from './admin/src/components/ContentBox.mjs';
|
|
15
15
|
export { SubNav } from './admin/src/components/SubNav.mjs';
|
|
16
|
+
export { GradientBadge } from './admin/src/components/GradientBadge.mjs';
|
|
16
17
|
export { useGuidedTour } from './admin/src/components/GuidedTour/Provider.mjs';
|
|
17
18
|
export { useTracking } from './admin/src/features/Tracking.mjs';
|
|
18
19
|
export { useStrapiApp } from './admin/src/features/StrapiApp.mjs';
|
package/dist/admin/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -21,6 +21,7 @@ export * from './components/SearchInput';
|
|
|
21
21
|
export * from './components/Table';
|
|
22
22
|
export * from './components/ContentBox';
|
|
23
23
|
export * from './components/SubNav';
|
|
24
|
+
export * from './components/GradientBadge';
|
|
24
25
|
export { useGuidedTour } from './components/GuidedTour/Provider';
|
|
25
26
|
/**
|
|
26
27
|
* Features
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const FreeTrialEndedModal: () => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const FreeTrialWelcomeModal: () => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -6,19 +6,19 @@ interface ConfigurationLogo {
|
|
|
6
6
|
};
|
|
7
7
|
default: string;
|
|
8
8
|
}
|
|
9
|
-
declare const useInitQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", {
|
|
9
|
+
declare const useInitQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", {
|
|
10
10
|
uuid: string | false;
|
|
11
11
|
hasAdmin: boolean;
|
|
12
12
|
menuLogo: string | null;
|
|
13
13
|
authLogo: string | null;
|
|
14
|
-
}, "adminApi">>, useTelemetryPropertiesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", {
|
|
14
|
+
}, "adminApi">>, useTelemetryPropertiesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", {
|
|
15
15
|
useTypescriptOnServer: boolean;
|
|
16
16
|
useTypescriptOnAdmin: boolean;
|
|
17
17
|
isHostedOnStrapiCloud: boolean;
|
|
18
18
|
numberOfAllContentTypes: number;
|
|
19
19
|
numberOfComponents: number;
|
|
20
20
|
numberOfDynamicZones: number;
|
|
21
|
-
}, "adminApi">>, useInformationQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", {
|
|
21
|
+
}, "adminApi">>, useInformationQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", {
|
|
22
22
|
currentEnvironment: string;
|
|
23
23
|
autoReload: boolean;
|
|
24
24
|
strapiVersion: string | null;
|
|
@@ -27,9 +27,11 @@ declare const useInitQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks
|
|
|
27
27
|
nodeVersion: string;
|
|
28
28
|
communityEdition: boolean;
|
|
29
29
|
useYarn: boolean;
|
|
30
|
-
}, "adminApi">>, useProjectSettingsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", {
|
|
30
|
+
}, "adminApi">>, useProjectSettingsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", {
|
|
31
31
|
authLogo?: ConfigurationLogo['custom'];
|
|
32
32
|
menuLogo?: ConfigurationLogo['custom'];
|
|
33
|
-
}, "adminApi">>, useUpdateProjectSettingsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<FormData, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", UpdateProjectSettings.Response, "adminApi">>, useGetPluginsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", Plugins.Response, "adminApi">>, useGetLicenseLimitsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings", GetLicenseLimitInformation.Response, "adminApi"
|
|
34
|
-
|
|
33
|
+
}, "adminApi">>, useUpdateProjectSettingsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<FormData, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", UpdateProjectSettings.Response, "adminApi">>, useGetPluginsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", Plugins.Response, "adminApi">>, useGetLicenseLimitsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", GetLicenseLimitInformation.Response, "adminApi">>, useGetLicenseTrialTimeLeftQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "LicenseLimits" | "ProjectSettings" | "LicenseTrialTimeLeft", {
|
|
34
|
+
trialEndsAt: string;
|
|
35
|
+
}, "adminApi">>;
|
|
36
|
+
export { useInitQuery, useTelemetryPropertiesQuery, useInformationQuery, useProjectSettingsQuery, useUpdateProjectSettingsMutation, useGetPluginsQuery, useGetLicenseLimitsQuery, useGetLicenseTrialTimeLeftQuery, };
|
|
35
37
|
export type { ConfigurationLogo };
|
|
@@ -12,10 +12,12 @@ declare function useLicenseLimits({ enabled }?: UseLicenseLimitsArgs): {
|
|
|
12
12
|
shouldNotify: boolean;
|
|
13
13
|
shouldStopCreate: boolean;
|
|
14
14
|
type: string;
|
|
15
|
+
isTrial: boolean;
|
|
15
16
|
} | undefined;
|
|
16
17
|
getFeature: <T>(name: "review-workflows" | "sso" | "cms-content-history" | "audit-logs" | "cms-content-releases") => Record<string, T> | undefined;
|
|
17
18
|
isError: boolean;
|
|
18
19
|
isLoading: boolean;
|
|
20
|
+
isTrial: boolean;
|
|
19
21
|
};
|
|
20
22
|
export { useLicenseLimits };
|
|
21
23
|
export type { UseLicenseLimitsArgs };
|
|
@@ -2,6 +2,7 @@ declare const _default: {
|
|
|
2
2
|
getProjectType(): Promise<{
|
|
3
3
|
data: {
|
|
4
4
|
isEE: boolean | undefined;
|
|
5
|
+
isTrial: boolean;
|
|
5
6
|
features: {
|
|
6
7
|
[key: string]: any;
|
|
7
8
|
name: string;
|
|
@@ -14,6 +15,7 @@ declare const _default: {
|
|
|
14
15
|
isEE: boolean;
|
|
15
16
|
features: never[];
|
|
16
17
|
flags: {};
|
|
18
|
+
isTrial?: undefined;
|
|
17
19
|
type?: undefined;
|
|
18
20
|
};
|
|
19
21
|
}>;
|
|
@@ -27,6 +29,7 @@ declare const _default: {
|
|
|
27
29
|
licenseLimitStatus: string | null;
|
|
28
30
|
isHostedOnStrapiCloud: boolean;
|
|
29
31
|
type: string | null | undefined;
|
|
32
|
+
isTrial: boolean;
|
|
30
33
|
features: {
|
|
31
34
|
[key: string]: any;
|
|
32
35
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../../ee/server/src/controllers/admin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../../ee/server/src/controllers/admin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBA6DE"}
|
|
@@ -20,6 +20,7 @@ declare const _default: {
|
|
|
20
20
|
getProjectType(): Promise<{
|
|
21
21
|
data: {
|
|
22
22
|
isEE: boolean | undefined;
|
|
23
|
+
isTrial: boolean;
|
|
23
24
|
features: {
|
|
24
25
|
[key: string]: any;
|
|
25
26
|
name: string;
|
|
@@ -32,6 +33,7 @@ declare const _default: {
|
|
|
32
33
|
isEE: boolean;
|
|
33
34
|
features: never[];
|
|
34
35
|
flags: {};
|
|
36
|
+
isTrial?: undefined;
|
|
35
37
|
type?: undefined;
|
|
36
38
|
};
|
|
37
39
|
}>;
|
|
@@ -45,6 +47,7 @@ declare const _default: {
|
|
|
45
47
|
licenseLimitStatus: string | null;
|
|
46
48
|
isHostedOnStrapiCloud: boolean;
|
|
47
49
|
type: string | null | undefined;
|
|
50
|
+
isTrial: boolean;
|
|
48
51
|
features: {
|
|
49
52
|
[key: string]: any;
|
|
50
53
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../ee/server/src/controllers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../ee/server/src/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBAKE"}
|
|
@@ -114,6 +114,7 @@ declare const getAdminEE: () => {
|
|
|
114
114
|
getProjectType(): Promise<{
|
|
115
115
|
data: {
|
|
116
116
|
isEE: boolean | undefined;
|
|
117
|
+
isTrial: boolean;
|
|
117
118
|
features: {
|
|
118
119
|
[key: string]: any;
|
|
119
120
|
name: string;
|
|
@@ -126,6 +127,7 @@ declare const getAdminEE: () => {
|
|
|
126
127
|
isEE: boolean;
|
|
127
128
|
features: never[];
|
|
128
129
|
flags: {};
|
|
130
|
+
isTrial?: undefined;
|
|
129
131
|
type?: undefined;
|
|
130
132
|
};
|
|
131
133
|
}>;
|
|
@@ -139,6 +141,7 @@ declare const getAdminEE: () => {
|
|
|
139
141
|
licenseLimitStatus: string | null;
|
|
140
142
|
isHostedOnStrapiCloud: boolean;
|
|
141
143
|
type: string | null | undefined;
|
|
144
|
+
isTrial: boolean;
|
|
142
145
|
features: {
|
|
143
146
|
[key: string]: any;
|
|
144
147
|
name: string;
|
|
@@ -218,6 +221,7 @@ declare const getAdminEE: () => {
|
|
|
218
221
|
getProjectType(): Promise<{
|
|
219
222
|
data: {
|
|
220
223
|
isEE: boolean | undefined;
|
|
224
|
+
isTrial: boolean;
|
|
221
225
|
features: {
|
|
222
226
|
[key: string]: any;
|
|
223
227
|
name: string;
|
|
@@ -230,6 +234,7 @@ declare const getAdminEE: () => {
|
|
|
230
234
|
isEE: boolean;
|
|
231
235
|
features: never[];
|
|
232
236
|
flags: {};
|
|
237
|
+
isTrial?: undefined;
|
|
233
238
|
type?: undefined;
|
|
234
239
|
};
|
|
235
240
|
}>;
|
|
@@ -243,6 +248,7 @@ declare const getAdminEE: () => {
|
|
|
243
248
|
licenseLimitStatus: string | null;
|
|
244
249
|
isHostedOnStrapiCloud: boolean;
|
|
245
250
|
type: string | null | undefined;
|
|
251
|
+
isTrial: boolean;
|
|
246
252
|
features: {
|
|
247
253
|
[key: string]: any;
|
|
248
254
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ee/server/src/index.ts"],"names":[],"mappings":";AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ee/server/src/index.ts"],"names":[],"mappings":";AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA8BiB;QAAE,MAAM,EAAE,KAAK,MAAM,CAAA;KAAE;wBAWxB;QAAE,MAAM,EAAE,KAAK,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQtD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -12,6 +12,7 @@ var admin = {
|
|
|
12
12
|
return {
|
|
13
13
|
data: {
|
|
14
14
|
isEE: strapi.EE,
|
|
15
|
+
isTrial: strapi.ee.isTrial,
|
|
15
16
|
features: strapi.ee.features.list(),
|
|
16
17
|
flags,
|
|
17
18
|
type: strapi.ee.type
|
|
@@ -56,6 +57,7 @@ var admin = {
|
|
|
56
57
|
licenseLimitStatus,
|
|
57
58
|
isHostedOnStrapiCloud: utils.env('STRAPI_HOSTING', null) === 'strapi.cloud',
|
|
58
59
|
type: strapi.ee.type,
|
|
60
|
+
isTrial: strapi.ee.isTrial,
|
|
59
61
|
features: strapi.ee.features.list() ?? []
|
|
60
62
|
};
|
|
61
63
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n try {\n return {\n data: {
|
|
1
|
+
{"version":3,"file":"admin.js","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n try {\n return {\n data: {\n isEE: strapi.EE,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list(),\n flags,\n type: strapi.ee.type,\n },\n };\n } catch (err) {\n return { data: { isEE: false, features: [], flags } };\n }\n },\n\n async licenseLimitInformation() {\n const permittedSeats = strapi.ee.seats;\n\n let shouldNotify = false;\n let licenseLimitStatus = null;\n let enforcementUserCount;\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const eeDisabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (eeDisabledUsers) {\n enforcementUserCount = currentActiveUserCount + eeDisabledUsers.length;\n } else {\n enforcementUserCount = currentActiveUserCount;\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount > permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'OVER_LIMIT';\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount === permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'AT_LIMIT';\n }\n\n const data = {\n enforcementUserCount,\n currentActiveUserCount,\n permittedSeats,\n shouldNotify,\n shouldStopCreate: isNil(permittedSeats) ? false : currentActiveUserCount >= permittedSeats,\n licenseLimitStatus,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n type: strapi.ee.type,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list() ?? [],\n };\n\n return { data };\n },\n};\n"],"names":["getProjectType","flags","strapi","config","get","data","isEE","EE","isTrial","ee","features","list","type","err","licenseLimitInformation","permittedSeats","seats","shouldNotify","licenseLimitStatus","enforcementUserCount","currentActiveUserCount","getService","getCurrentActiveUserCount","eeDisabledUsers","getDisabledUserList","length","isNil","shouldStopCreate","isHostedOnStrapiCloud","env"],"mappings":";;;;;;AAIA,YAAe;;IAEb,MAAMA,cAAAA,CAAAA,GAAAA;AACJ,QAAA,MAAMC,QAAQC,MAAOC,CAAAA,MAAM,CAACC,GAAG,CAAC,eAAe,EAAC,CAAA;QAChD,IAAI;YACF,OAAO;gBACLC,IAAM,EAAA;AACJC,oBAAAA,IAAAA,EAAMJ,OAAOK,EAAE;oBACfC,OAASN,EAAAA,MAAAA,CAAOO,EAAE,CAACD,OAAO;AAC1BE,oBAAAA,QAAAA,EAAUR,MAAOO,CAAAA,EAAE,CAACC,QAAQ,CAACC,IAAI,EAAA;AACjCV,oBAAAA,KAAAA;oBACAW,IAAMV,EAAAA,MAAAA,CAAOO,EAAE,CAACG;AAClB;AACF,aAAA;AACF,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZ,OAAO;gBAAER,IAAM,EAAA;oBAAEC,IAAM,EAAA,KAAA;AAAOI,oBAAAA,QAAAA,EAAU,EAAE;AAAET,oBAAAA;AAAM;AAAE,aAAA;AACtD;AACF,KAAA;IAEA,MAAMa,uBAAAA,CAAAA,GAAAA;AACJ,QAAA,MAAMC,cAAiBb,GAAAA,MAAAA,CAAOO,EAAE,CAACO,KAAK;AAEtC,QAAA,IAAIC,YAAe,GAAA,KAAA;AACnB,QAAA,IAAIC,kBAAqB,GAAA,IAAA;QACzB,IAAIC,oBAAAA;AAEJ,QAAA,MAAMC,sBAAyB,GAAA,MAAMC,gBAAW,CAAA,MAAA,CAAA,CAAQC,yBAAyB,EAAA;AAEjF,QAAA,MAAMC,eAAkB,GAAA,MAAMF,gBAAW,CAAA,kBAAA,CAAA,CAAoBG,mBAAmB,EAAA;AAEhF,QAAA,IAAID,eAAiB,EAAA;YACnBJ,oBAAuBC,GAAAA,sBAAAA,GAAyBG,gBAAgBE,MAAM;SACjE,MAAA;YACLN,oBAAuBC,GAAAA,sBAAAA;AACzB;AAEA,QAAA,IAAI,CAACM,QAAAA,CAAMX,cAAmBI,CAAAA,IAAAA,oBAAAA,GAAuBJ,cAAgB,EAAA;YACnEE,YAAe,GAAA,IAAA;YACfC,kBAAqB,GAAA,YAAA;AACvB;AAEA,QAAA,IAAI,CAACQ,QAAAA,CAAMX,cAAmBI,CAAAA,IAAAA,oBAAAA,KAAyBJ,cAAgB,EAAA;YACrEE,YAAe,GAAA,IAAA;YACfC,kBAAqB,GAAA,UAAA;AACvB;AAEA,QAAA,MAAMb,IAAO,GAAA;AACXc,YAAAA,oBAAAA;AACAC,YAAAA,sBAAAA;AACAL,YAAAA,cAAAA;AACAE,YAAAA,YAAAA;YACAU,gBAAkBD,EAAAA,QAAAA,CAAMX,cAAkB,CAAA,GAAA,KAAA,GAAQK,sBAA0BL,IAAAA,cAAAA;AAC5EG,YAAAA,kBAAAA;YACAU,qBAAuBC,EAAAA,SAAAA,CAAI,kBAAkB,IAAU,CAAA,KAAA,cAAA;YACvDjB,IAAMV,EAAAA,MAAAA,CAAOO,EAAE,CAACG,IAAI;YACpBJ,OAASN,EAAAA,MAAAA,CAAOO,EAAE,CAACD,OAAO;AAC1BE,YAAAA,QAAAA,EAAUR,OAAOO,EAAE,CAACC,QAAQ,CAACC,IAAI,MAAM;AACzC,SAAA;QAEA,OAAO;AAAEN,YAAAA;AAAK,SAAA;AAChB;AACF,CAAE;;;;"}
|
|
@@ -10,6 +10,7 @@ var admin = {
|
|
|
10
10
|
return {
|
|
11
11
|
data: {
|
|
12
12
|
isEE: strapi.EE,
|
|
13
|
+
isTrial: strapi.ee.isTrial,
|
|
13
14
|
features: strapi.ee.features.list(),
|
|
14
15
|
flags,
|
|
15
16
|
type: strapi.ee.type
|
|
@@ -54,6 +55,7 @@ var admin = {
|
|
|
54
55
|
licenseLimitStatus,
|
|
55
56
|
isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',
|
|
56
57
|
type: strapi.ee.type,
|
|
58
|
+
isTrial: strapi.ee.isTrial,
|
|
57
59
|
features: strapi.ee.features.list() ?? []
|
|
58
60
|
};
|
|
59
61
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mjs","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n try {\n return {\n data: {
|
|
1
|
+
{"version":3,"file":"admin.mjs","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n try {\n return {\n data: {\n isEE: strapi.EE,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list(),\n flags,\n type: strapi.ee.type,\n },\n };\n } catch (err) {\n return { data: { isEE: false, features: [], flags } };\n }\n },\n\n async licenseLimitInformation() {\n const permittedSeats = strapi.ee.seats;\n\n let shouldNotify = false;\n let licenseLimitStatus = null;\n let enforcementUserCount;\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const eeDisabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (eeDisabledUsers) {\n enforcementUserCount = currentActiveUserCount + eeDisabledUsers.length;\n } else {\n enforcementUserCount = currentActiveUserCount;\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount > permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'OVER_LIMIT';\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount === permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'AT_LIMIT';\n }\n\n const data = {\n enforcementUserCount,\n currentActiveUserCount,\n permittedSeats,\n shouldNotify,\n shouldStopCreate: isNil(permittedSeats) ? false : currentActiveUserCount >= permittedSeats,\n licenseLimitStatus,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n type: strapi.ee.type,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list() ?? [],\n };\n\n return { data };\n },\n};\n"],"names":["getProjectType","flags","strapi","config","get","data","isEE","EE","isTrial","ee","features","list","type","err","licenseLimitInformation","permittedSeats","seats","shouldNotify","licenseLimitStatus","enforcementUserCount","currentActiveUserCount","getService","getCurrentActiveUserCount","eeDisabledUsers","getDisabledUserList","length","isNil","shouldStopCreate","isHostedOnStrapiCloud","env"],"mappings":";;;;AAIA,YAAe;;IAEb,MAAMA,cAAAA,CAAAA,GAAAA;AACJ,QAAA,MAAMC,QAAQC,MAAOC,CAAAA,MAAM,CAACC,GAAG,CAAC,eAAe,EAAC,CAAA;QAChD,IAAI;YACF,OAAO;gBACLC,IAAM,EAAA;AACJC,oBAAAA,IAAAA,EAAMJ,OAAOK,EAAE;oBACfC,OAASN,EAAAA,MAAAA,CAAOO,EAAE,CAACD,OAAO;AAC1BE,oBAAAA,QAAAA,EAAUR,MAAOO,CAAAA,EAAE,CAACC,QAAQ,CAACC,IAAI,EAAA;AACjCV,oBAAAA,KAAAA;oBACAW,IAAMV,EAAAA,MAAAA,CAAOO,EAAE,CAACG;AAClB;AACF,aAAA;AACF,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZ,OAAO;gBAAER,IAAM,EAAA;oBAAEC,IAAM,EAAA,KAAA;AAAOI,oBAAAA,QAAAA,EAAU,EAAE;AAAET,oBAAAA;AAAM;AAAE,aAAA;AACtD;AACF,KAAA;IAEA,MAAMa,uBAAAA,CAAAA,GAAAA;AACJ,QAAA,MAAMC,cAAiBb,GAAAA,MAAAA,CAAOO,EAAE,CAACO,KAAK;AAEtC,QAAA,IAAIC,YAAe,GAAA,KAAA;AACnB,QAAA,IAAIC,kBAAqB,GAAA,IAAA;QACzB,IAAIC,oBAAAA;AAEJ,QAAA,MAAMC,sBAAyB,GAAA,MAAMC,UAAW,CAAA,MAAA,CAAA,CAAQC,yBAAyB,EAAA;AAEjF,QAAA,MAAMC,eAAkB,GAAA,MAAMF,UAAW,CAAA,kBAAA,CAAA,CAAoBG,mBAAmB,EAAA;AAEhF,QAAA,IAAID,eAAiB,EAAA;YACnBJ,oBAAuBC,GAAAA,sBAAAA,GAAyBG,gBAAgBE,MAAM;SACjE,MAAA;YACLN,oBAAuBC,GAAAA,sBAAAA;AACzB;AAEA,QAAA,IAAI,CAACM,KAAAA,CAAMX,cAAmBI,CAAAA,IAAAA,oBAAAA,GAAuBJ,cAAgB,EAAA;YACnEE,YAAe,GAAA,IAAA;YACfC,kBAAqB,GAAA,YAAA;AACvB;AAEA,QAAA,IAAI,CAACQ,KAAAA,CAAMX,cAAmBI,CAAAA,IAAAA,oBAAAA,KAAyBJ,cAAgB,EAAA;YACrEE,YAAe,GAAA,IAAA;YACfC,kBAAqB,GAAA,UAAA;AACvB;AAEA,QAAA,MAAMb,IAAO,GAAA;AACXc,YAAAA,oBAAAA;AACAC,YAAAA,sBAAAA;AACAL,YAAAA,cAAAA;AACAE,YAAAA,YAAAA;YACAU,gBAAkBD,EAAAA,KAAAA,CAAMX,cAAkB,CAAA,GAAA,KAAA,GAAQK,sBAA0BL,IAAAA,cAAAA;AAC5EG,YAAAA,kBAAAA;YACAU,qBAAuBC,EAAAA,GAAAA,CAAI,kBAAkB,IAAU,CAAA,KAAA,cAAA;YACvDjB,IAAMV,EAAAA,MAAAA,CAAOO,EAAE,CAACG,IAAI;YACpBJ,OAASN,EAAAA,MAAAA,CAAOO,EAAE,CAACD,OAAO;AAC1BE,YAAAA,QAAAA,EAAUR,OAAOO,EAAE,CAACC,QAAQ,CAACC,IAAI,MAAM;AACzC,SAAA;QAEA,OAAO;AAAEN,YAAAA;AAAK,SAAA;AAChB;AACF,CAAE;;;;"}
|