@strapi/admin 5.58.0 → 5.59.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/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.js +10 -9
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
- package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +57 -12
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +57 -12
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/Form.js +3 -1
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +3 -1
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +5 -1
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +2 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/Pagination.js +7 -6
- package/dist/admin/admin/src/components/Pagination.js.map +1 -1
- package/dist/admin/admin/src/components/Pagination.mjs +7 -6
- package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +2 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +6 -12
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +7 -13
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +3 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +3 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/features/Auth.js +2 -1
- package/dist/admin/admin/src/features/Auth.js.map +1 -1
- package/dist/admin/admin/src/features/Auth.mjs +2 -1
- package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.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/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
- package/dist/admin/admin/src/pages/ProfilePage.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/FormApiTokenContainer.js +4 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -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 +3 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
- 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/BoundRoute.mjs +6 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -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 +2 -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 +4 -4
- 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 +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -2
- 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 +1 -2
- 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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
- 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 +9 -4
- 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 +15 -9
- 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 +15 -9
- 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 +5 -2
- 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 +5 -2
- 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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -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 +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- 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.map +1 -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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
- 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/Events.mjs +4 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
- 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 +18 -3
- 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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.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/translations/eu.json.js +1 -1
- package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
- package/dist/admin/admin/src/utils/cookies.js +7 -6
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs +7 -6
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +2 -1
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/admin/tests/utils.mjs +2 -1
- package/dist/admin/admin/tests/utils.mjs.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
- package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
- package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
- package/dist/admin/shared/utils/get-project-type.js +3 -3
- package/dist/admin/shared/utils/get-project-type.js.map +1 -1
- package/dist/admin/shared/utils/get-project-type.mjs +3 -3
- package/dist/admin/shared/utils/get-project-type.mjs.map +1 -1
- package/dist/admin/src/components/Filters.d.ts +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
- package/dist/admin/src/utils/cookies.d.ts +7 -6
- package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
- package/dist/ee/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
- package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
- package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
- package/dist/server/ee/server/src/validation/role.js +4 -2
- package/dist/server/ee/server/src/validation/role.js.map +1 -1
- package/dist/server/ee/server/src/validation/role.mjs +4 -2
- package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
- package/dist/server/server/src/ai/services/ai.js.map +1 -1
- package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +11 -12
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +11 -12
- package/dist/server/server/src/controllers/admin.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/services/api-token.js +4 -8
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +4 -8
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/constants.js +4 -0
- package/dist/server/server/src/services/constants.js.map +1 -1
- package/dist/server/server/src/services/constants.mjs +4 -0
- package/dist/server/server/src/services/constants.mjs.map +1 -1
- package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
- package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +8 -5
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +8 -5
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/validation/admin-tokens.js +4 -4
- package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
- package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
- package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/api-tokens.js +4 -4
- package/dist/server/server/src/validation/api-tokens.js.map +1 -1
- package/dist/server/server/src/validation/api-tokens.mjs +4 -4
- package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/role.js +6 -4
- package/dist/server/server/src/validation/role.js.map +1 -1
- package/dist/server/server/src/validation/role.mjs +6 -4
- package/dist/server/server/src/validation/role.mjs.map +1 -1
- package/dist/server/server/src/validation/transfer/token.js +4 -4
- package/dist/server/server/src/validation/transfer/token.js.map +1 -1
- package/dist/server/server/src/validation/transfer/token.mjs +4 -4
- package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
- package/dist/server/shared/utils/auth-cookie-path.js +13 -10
- package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
- package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
- package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
- package/dist/server/shared/utils/get-project-type.js +3 -3
- package/dist/server/shared/utils/get-project-type.js.map +1 -1
- package/dist/server/shared/utils/get-project-type.mjs +3 -3
- package/dist/server/shared/utils/get-project-type.mjs.map +1 -1
- package/dist/server/shared/utils/session-auth.js +70 -3
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/shared/utils/session-auth.mjs +70 -4
- package/dist/server/shared/utils/session-auth.mjs.map +1 -1
- package/dist/server/src/ai/services/ai.d.ts.map +1 -1
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +2 -0
- package/dist/server/src/services/constants.d.ts.map +1 -1
- package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/shared/contracts/transfer.d.ts.map +1 -1
- package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
- package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
- package/dist/shared/utils/session-auth.d.ts +16 -0
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.mjs","sources":["../../../../../server/src/services/role.ts"],"sourcesContent":["import _, { omit, pick, differenceWith, differenceBy, isEqual } from 'lodash';\n/* eslint-disable @typescript-eslint/no-explicit-any */ // TODO: TS - Use database parameters interface when they are ready\n/* eslint-disable @typescript-eslint/default-param-last */\n\nimport { dates, arrays, hooks as hooksUtils, errors } from '@strapi/utils';\nimport type { Data } from '@strapi/types';\n\nimport permissionDomain from '../domain/permission';\nimport type { AdminUser, AdminRole, Permission } from '../../../shared/contracts/shared';\nimport type { Action } from '../domain/action';\n\nimport { validatePermissionsExist } from '../validation/permission';\nimport roleConstants from './constants';\nimport { getService } from '../utils';\n\nconst { SUPER_ADMIN_CODE, CONTENT_TYPE_SECTION } = roleConstants;\n\nconst { createAsyncSeriesWaterfallHook } = hooksUtils;\nconst { ApplicationError } = errors;\n\nconst hooks = {\n willResetSuperAdminPermissions: createAsyncSeriesWaterfallHook(),\n willValidateUpdatePermissions: createAsyncSeriesWaterfallHook(),\n};\n\nconst ACTIONS = {\n publish: 'plugin::content-manager.explorer.publish',\n};\n\nconst sanitizeRole = <T extends object>(role: T): Omit<T, 'users' | 'permissions'> =>\n omit(role, ['users', 'permissions']) as Omit<T, 'users' | 'permissions'>;\n\nexport type AdminRoleWithUsersCount = AdminRole & { usersCount: number };\n\nconst COMPARABLE_FIELDS = ['conditions', 'properties', 'subject', 'action', 'actionParameters'];\nconst pickComparableFields = (permission: Permission) => pick(permission, COMPARABLE_FIELDS);\n\nconst jsonClean = <T extends object>(data: T): T => JSON.parse(JSON.stringify(data));\n\n/**\n * Compare two permissions\n */\nconst arePermissionsEqual = (p1: Permission, p2: Permission): boolean => {\n if (p1.action === p2.action) {\n return isEqual(jsonClean(pickComparableFields(p1)), jsonClean(pickComparableFields(p2)));\n }\n\n return false;\n};\n\n/**\n * Create and save a role in database\n * @param attributes A partial role object\n */\nconst create = async (attributes: Partial<AdminRole>): Promise<AdminRole> => {\n const alreadyExists = await exists({ name: attributes.name });\n\n if (alreadyExists) {\n throw new ApplicationError(\n `The name must be unique and a role with name \\`${attributes.name}\\` already exists.`\n );\n }\n const autoGeneratedCode = `${_.kebabCase(attributes.name)}-${dates.timestampCode()}`;\n\n const rolesWithCode = {\n ...attributes,\n code: attributes.code || autoGeneratedCode,\n };\n\n const result = await strapi.db.query('admin::role').create({ data: rolesWithCode });\n strapi.eventHub.emit('role.create', { role: sanitizeRole(result) });\n\n return result;\n};\n\n/**\n * Find a role in database\n * @param params query params to find the role\n * @param populate\n */\nconst findOne = (params = {}, populate?: unknown): Promise<AdminRole> => {\n return strapi.db.query('admin::role').findOne({ where: params, populate });\n};\n\n/**\n * Find a role in database with usersCounts\n * @param params query params to find the role\n * @param populate\n */\nconst findOneWithUsersCount = async (\n params = {},\n populate?: unknown\n): Promise<AdminRoleWithUsersCount> => {\n const role = await strapi.db.query('admin::role').findOne({ where: params, populate });\n\n if (role) {\n role.usersCount = await getUsersCount(role.id);\n }\n\n return role;\n};\n\n/**\n * Find roles in database\n * @param params query params to find the roles\n * @param populate\n */\nconst find = (params = {}, populate: unknown): Promise<AdminRole[]> => {\n return strapi.db.query('admin::role').findMany({ where: params, populate });\n};\n\n/**\n * Find all roles in database\n */\nconst findAllWithUsersCount = async (params: any): Promise<AdminRoleWithUsersCount[]> => {\n const roles: AdminRoleWithUsersCount[] = await strapi.db\n .query('admin::role')\n .findMany(strapi.get('query-params').transform('admin::role', params));\n\n for (const role of roles) {\n role.usersCount = await getUsersCount(role.id);\n }\n\n return roles;\n};\n\n/**\n * Update a role in database\n * @param params query params to find the role to update\n * @param attributes A partial role object\n */\nconst update = async (params: any, attributes: Partial<AdminRole>): Promise<AdminRole> => {\n const sanitizedAttributes = _.omit(attributes, ['code']);\n\n if (_.has(params, 'id') && _.has(sanitizedAttributes, 'name')) {\n const alreadyExists = await exists({\n name: sanitizedAttributes.name,\n id: { $ne: params.id },\n });\n if (alreadyExists) {\n throw new ApplicationError(\n `The name must be unique and a role with name \\`${sanitizedAttributes.name}\\` already exists.`\n );\n }\n }\n\n const result = await strapi.db\n .query('admin::role')\n .update({ where: params, data: sanitizedAttributes });\n\n strapi.eventHub.emit('role.update', { role: sanitizeRole(result) });\n\n return result;\n};\n\n/**\n * Check if a role exists in database\n * @param params query params to find the role\n */\nconst exists = async (params = {} as unknown): Promise<boolean> => {\n const count = await strapi.db.query('admin::role').count({ where: params });\n return count > 0;\n};\n\n/**\n * Count the number of roles based on search params\n * @param params params used for the query\n */\nconst count = async (params = {} as any): Promise<number> => {\n return strapi.db.query('admin::role').count(params);\n};\n\n/**\n * Check if the given roles id can be deleted safely, throw otherwise\n * @param ids\n */\nconst checkRolesIdForDeletion = async (ids = [] as Data.ID[]) => {\n const superAdminRole = await getSuperAdmin();\n\n if (superAdminRole && arrays.includesString(ids, superAdminRole.id)) {\n throw new ApplicationError('You cannot delete the super admin role');\n }\n\n for (const roleId of ids) {\n const usersCount = await getUsersCount(roleId);\n if (usersCount !== 0) {\n throw new ApplicationError('Some roles are still assigned to some users');\n }\n }\n};\n\n/**\n * Delete roles in database if they have no user assigned\n * @param ids query params to find the roles\n */\nconst deleteByIds = async (ids = [] as Data.ID[]): Promise<AdminRole[]> => {\n await checkRolesIdForDeletion(ids);\n\n await getService('permission').deleteByRolesIds(ids);\n\n const deletedRoles: AdminRole[] = [];\n for (const id of ids) {\n const deletedRole = await strapi.db.query('admin::role').delete({ where: { id } });\n\n if (deletedRole) {\n strapi.eventHub.emit('role.delete', { role: deletedRole });\n deletedRoles.push(deletedRole);\n }\n }\n\n return deletedRoles;\n};\n\n/** Count the number of users for some roles\n */\nconst getUsersCount = async (roleId: Data.ID): Promise<number> => {\n return strapi.db.query('admin::user').count({ where: { roles: { id: roleId } } });\n};\n\n/** Returns admin role\n */\nconst getSuperAdmin = (): Promise<AdminRole | undefined> => findOne({ code: SUPER_ADMIN_CODE });\n\n/** Returns admin role with userCount\n * @returns {Promise<role>}\n */\nconst getSuperAdminWithUsersCount = () => findOneWithUsersCount({ code: SUPER_ADMIN_CODE });\n\n/** Create superAdmin, Author and Editor role is no role already exist\n */\nconst createRolesIfNoneExist = async () => {\n const someRolesExist = await exists();\n if (someRolesExist) {\n return;\n }\n\n const { actionProvider } = getService('permission');\n\n const allActions = actionProvider.values();\n const contentTypesActions = allActions.filter((a) => a.section === 'contentTypes');\n\n // create 3 roles\n const superAdminRole = await create({\n name: 'Super Admin',\n code: 'strapi-super-admin',\n description: 'Super Admins can access and manage all features and settings.',\n });\n\n await getService('user').assignARoleToAll(superAdminRole.id);\n\n const editorRole = await create({\n name: 'Editor',\n code: 'strapi-editor',\n description: 'Editors can manage and publish contents including those of other users.',\n });\n\n const authorRole = await create({\n name: 'Author',\n code: 'strapi-author',\n description: 'Authors can manage the content they have created.',\n });\n\n // create content-type permissions for each role\n // Exclude non-displayed content types (e.g. plugin::users-permissions.role) from Editor/Author\n // since those types are in explorer.read subjects only for super admin relation reads.\n const nonDisplayedUids = Object.values(strapi.contentTypes as Record<string, any>)\n .filter((ct) => ct?.pluginOptions?.['content-manager']?.visible === false)\n .map((ct) => ct.uid as string);\n\n const editorPermissions = getService('content-type').getPermissionsWithNestedFields(\n contentTypesActions,\n {\n restrictedSubjects: ['plugin::users-permissions.user', ...nonDisplayedUids],\n }\n );\n\n const authorPermissions = editorPermissions\n .filter(({ action }: any) => action !== ACTIONS.publish)\n .map((permission: any) =>\n permissionDomain.create({ ...permission, conditions: ['admin::is-creator'] })\n );\n\n editorPermissions.push(...getDefaultPluginPermissions());\n authorPermissions.push(...getDefaultPluginPermissions({ isAuthor: true }));\n\n // assign permissions to roles\n await addPermissions(editorRole.id, editorPermissions);\n await addPermissions(authorRole.id, authorPermissions);\n};\n\nconst getDefaultPluginPermissions = ({ isAuthor = false } = {}) => {\n const conditions = isAuthor ? ['admin::is-creator'] : [];\n\n // add plugin permissions for each role\n return [\n { action: 'plugin::upload.read', conditions },\n { action: 'plugin::upload.configure-view' },\n { action: 'plugin::upload.assets.create' },\n { action: 'plugin::upload.assets.update', conditions },\n { action: 'plugin::upload.assets.download' },\n { action: 'plugin::upload.assets.copy-link' },\n ].map(permissionDomain.create);\n};\n\n/** Display a warning if the role superAdmin doesn't exist\n * or if the role is not assigned to at least one user\n */\nconst displayWarningIfNoSuperAdmin = async () => {\n const superAdminRole = await getSuperAdminWithUsersCount();\n const someUsersExists = await getService('user').exists();\n\n if (!superAdminRole) {\n strapi.log.warn(\"Your application doesn't have a super admin role.\");\n } else if (someUsersExists && superAdminRole.usersCount === 0) {\n strapi.log.warn(\"Your application doesn't have a super admin user.\");\n }\n};\n\n/**\n * Assign permissions to a role\n * @param roleId - role Data.ID\n * @param {Array<Permission{action,subject,fields,conditions}>} permissions - permissions to assign to the role\n */\nconst assignPermissions = async (\n roleId: Data.ID,\n permissions: Array<Pick<Permission, 'action' | 'subject' | 'conditions'>> = []\n) => {\n await validatePermissionsExist(permissions);\n\n // Internal actions are not handled by the role service, so any permission\n // with an internal action is filtered out\n const internalActions = getService('permission')\n .actionProvider.values()\n .filter((action) => action.section === 'internal')\n .map((action) => action.actionId);\n\n const superAdmin = await getService('role').getSuperAdmin();\n const isSuperAdmin = superAdmin && superAdmin.id === roleId;\n const assignRole = <T extends object>(permission: T) => ({ ...permission, role: roleId });\n\n const permissionsWithRole = permissions\n // Add the role attribute to every permission\n .map(assignRole)\n // Transform each permission into a Permission instance\n .map(permissionDomain.create);\n\n const existingPermissions = await getService('permission').findMany({\n where: { role: { id: roleId } },\n populate: ['role'],\n });\n\n const permissionsToAdd = differenceWith(\n permissionsWithRole,\n existingPermissions,\n arePermissionsEqual\n ).filter((permission: Permission) => !internalActions.includes(permission.action));\n\n const permissionsToDelete = differenceWith(\n existingPermissions,\n permissionsWithRole,\n arePermissionsEqual\n ).filter((permission: Permission) => !internalActions.includes(permission.action));\n\n const permissionsToReturn = differenceBy(permissionsToDelete, existingPermissions, 'id');\n\n if (permissionsToDelete.length > 0) {\n await getService('permission').deleteByIds(\n permissionsToDelete.map((permission) => permission?.id)\n );\n }\n\n if (permissionsToAdd.length > 0) {\n const newPermissions = await addPermissions(roleId, permissionsToAdd);\n permissionsToReturn.push(...newPermissions);\n }\n\n if (!isSuperAdmin && (permissionsToAdd.length || permissionsToDelete.length)) {\n await getService('metrics').sendDidUpdateRolePermissions();\n }\n\n if (permissionsToAdd.length > 0 || permissionsToDelete.length > 0) {\n await getService('api-token-admin').syncPermissionsForRole(roleId);\n }\n\n return permissionsToReturn;\n};\n\nconst addPermissions = async (roleId: Data.ID, permissions: any) => {\n const { conditionProvider, createMany } = getService('permission');\n const { sanitizeConditions } = permissionDomain;\n\n const permissionsWithRole = permissions\n .map((permission: Permission) => ({ ...permission, role: roleId }))\n // @ts-expect-error - refactor domain/permission Condition type, as it's now expecting\n // a string but it should be a Condition interface\n .map(sanitizeConditions(conditionProvider))\n .map(permissionDomain.create);\n\n return createMany(permissionsWithRole);\n};\n\nconst isContentTypeAction = (action: Action) => action.section === CONTENT_TYPE_SECTION;\n\n/**\n * Reset super admin permissions (giving it all permissions)\n */\nconst resetSuperAdminPermissions = async () => {\n const superAdminRole = await getService('role').getSuperAdmin();\n if (!superAdminRole) {\n return;\n }\n\n const permissionService = getService('permission');\n const contentTypeService = getService('content-type');\n\n const allActions = permissionService.actionProvider.values() as Action[];\n\n const contentTypesActions = allActions.filter((action) => isContentTypeAction(action));\n const otherActions = allActions.filter((action) => !isContentTypeAction(action));\n\n // First, get the content-types permissions\n const permissions = contentTypeService.getPermissionsWithNestedFields(\n contentTypesActions\n ) as Permission[];\n\n // Then add every other permission\n const otherPermissions = otherActions.reduce((acc, action) => {\n const { actionId, subjects } = action;\n\n if (Array.isArray(subjects)) {\n acc.push(\n ...subjects.map((subject) => permissionDomain.create({ action: actionId, subject }))\n );\n } else {\n acc.push(permissionDomain.create({ action: actionId }));\n }\n\n return acc;\n }, [] as Permission[]);\n\n permissions.push(...otherPermissions);\n\n const transformedPermissions = (await hooks.willResetSuperAdminPermissions.call(\n permissions\n )) as Permission[];\n\n await assignPermissions(superAdminRole.id, transformedPermissions);\n};\n\n/**\n * Check if a user object includes the super admin role\n */\nconst hasSuperAdminRole = (user: AdminUser): boolean => {\n const roles = _.get(user, 'roles', []) as AdminRole[];\n\n return roles.map((role) => role?.code).includes(SUPER_ADMIN_CODE);\n};\n\nconst constants = {\n superAdminCode: SUPER_ADMIN_CODE,\n};\n\nexport default {\n hooks,\n sanitizeRole,\n create,\n findOne,\n findOneWithUsersCount,\n find,\n findAllWithUsersCount,\n update,\n exists,\n count,\n deleteByIds,\n getUsersCount,\n getSuperAdmin,\n getSuperAdminWithUsersCount,\n createRolesIfNoneExist,\n displayWarningIfNoSuperAdmin,\n addPermissions,\n hasSuperAdminRole,\n assignPermissions,\n resetSuperAdminPermissions,\n checkRolesIdForDeletion,\n constants,\n};\n"],"names":["SUPER_ADMIN_CODE","CONTENT_TYPE_SECTION","roleConstants","createAsyncSeriesWaterfallHook","hooksUtils","ApplicationError","errors","hooks","willResetSuperAdminPermissions","willValidateUpdatePermissions","ACTIONS","publish","sanitizeRole","role","omit","COMPARABLE_FIELDS","pickComparableFields","permission","pick","jsonClean","data","JSON","parse","stringify","arePermissionsEqual","p1","p2","action","isEqual","create","attributes","alreadyExists","exists","name","autoGeneratedCode","_","kebabCase","dates","timestampCode","rolesWithCode","code","result","strapi","db","query","eventHub","emit","findOne","params","populate","where","findOneWithUsersCount","usersCount","getUsersCount","id","find","findMany","findAllWithUsersCount","roles","get","transform","update","sanitizedAttributes","has","$ne","count","checkRolesIdForDeletion","ids","superAdminRole","getSuperAdmin","arrays","includesString","roleId","deleteByIds","getService","deleteByRolesIds","deletedRoles","deletedRole","delete","push","getSuperAdminWithUsersCount","createRolesIfNoneExist","someRolesExist","actionProvider","allActions","values","contentTypesActions","filter","a","section","description","assignARoleToAll","editorRole","authorRole","nonDisplayedUids","Object","contentTypes","ct","pluginOptions","visible","map","uid","editorPermissions","getPermissionsWithNestedFields","restrictedSubjects","authorPermissions","permissionDomain","conditions","getDefaultPluginPermissions","isAuthor","addPermissions","displayWarningIfNoSuperAdmin","someUsersExists","log","warn","assignPermissions","permissions","validatePermissionsExist","internalActions","actionId","superAdmin","isSuperAdmin","assignRole","permissionsWithRole","existingPermissions","permissionsToAdd","differenceWith","includes","permissionsToDelete","permissionsToReturn","differenceBy","length","newPermissions","sendDidUpdateRolePermissions","syncPermissionsForRole","conditionProvider","createMany","sanitizeConditions","isContentTypeAction","resetSuperAdminPermissions","permissionService","contentTypeService","otherActions","otherPermissions","reduce","acc","subjects","Array","isArray","subject","transformedPermissions","call","hasSuperAdminRole","user","constants","superAdminCode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"role.mjs","sources":["../../../../../server/src/services/role.ts"],"sourcesContent":["import _, { omit, pick, differenceWith, differenceBy, isEqual } from 'lodash';\n/* eslint-disable @typescript-eslint/no-explicit-any */ // TODO: TS - Use database parameters interface when they are ready\n/* eslint-disable @typescript-eslint/default-param-last */\n\nimport { dates, arrays, hooks as hooksUtils, errors } from '@strapi/utils';\nimport type { Data } from '@strapi/types';\n\nimport permissionDomain from '../domain/permission';\nimport type { AdminUser, AdminRole, Permission } from '../../../shared/contracts/shared';\nimport type { Action } from '../domain/action';\n\nimport { validatePermissionsExist } from '../validation/permission';\nimport roleConstants from './constants';\nimport { getService } from '../utils';\n\nconst { SUPER_ADMIN_CODE, CONTENT_TYPE_SECTION, ROLE_TEXT_MAX_LENGTH } = roleConstants;\n\nconst { createAsyncSeriesWaterfallHook } = hooksUtils;\nconst { ApplicationError } = errors;\n\nconst hooks = {\n willResetSuperAdminPermissions: createAsyncSeriesWaterfallHook(),\n willValidateUpdatePermissions: createAsyncSeriesWaterfallHook(),\n};\n\nconst ACTIONS = {\n publish: 'plugin::content-manager.explorer.publish',\n};\n\nconst sanitizeRole = <T extends object>(role: T): Omit<T, 'users' | 'permissions'> =>\n omit(role, ['users', 'permissions']) as Omit<T, 'users' | 'permissions'>;\n\nexport type AdminRoleWithUsersCount = AdminRole & { usersCount: number };\n\nconst COMPARABLE_FIELDS = ['conditions', 'properties', 'subject', 'action', 'actionParameters'];\nconst pickComparableFields = (permission: Permission) => pick(permission, COMPARABLE_FIELDS);\n\nconst jsonClean = <T extends object>(data: T): T => JSON.parse(JSON.stringify(data));\n\n/**\n * Compare two permissions\n */\nconst arePermissionsEqual = (p1: Permission, p2: Permission): boolean => {\n if (p1.action === p2.action) {\n return isEqual(jsonClean(pickComparableFields(p1)), jsonClean(pickComparableFields(p2)));\n }\n\n return false;\n};\n\n/**\n * Create and save a role in database\n * @param attributes A partial role object\n */\nconst create = async (attributes: Partial<AdminRole>): Promise<AdminRole> => {\n const alreadyExists = await exists({ name: attributes.name });\n\n if (alreadyExists) {\n throw new ApplicationError(\n `The name must be unique and a role with name \\`${attributes.name}\\` already exists.`\n );\n }\n // The kebab-cased name can be longer than the name itself, so trim it to keep the code within its column\n const codeSuffix = `-${dates.timestampCode()}`;\n const codePrefix = _.trimEnd(\n _.kebabCase(attributes.name).slice(0, ROLE_TEXT_MAX_LENGTH - codeSuffix.length),\n '-'\n );\n const autoGeneratedCode = `${codePrefix}${codeSuffix}`;\n\n const rolesWithCode = {\n ...attributes,\n code: attributes.code || autoGeneratedCode,\n };\n\n const result = await strapi.db.query('admin::role').create({ data: rolesWithCode });\n strapi.eventHub.emit('role.create', { role: sanitizeRole(result) });\n\n return result;\n};\n\n/**\n * Find a role in database\n * @param params query params to find the role\n * @param populate\n */\nconst findOne = (params = {}, populate?: unknown): Promise<AdminRole> => {\n return strapi.db.query('admin::role').findOne({ where: params, populate });\n};\n\n/**\n * Find a role in database with usersCounts\n * @param params query params to find the role\n * @param populate\n */\nconst findOneWithUsersCount = async (\n params = {},\n populate?: unknown\n): Promise<AdminRoleWithUsersCount> => {\n const role = await strapi.db.query('admin::role').findOne({ where: params, populate });\n\n if (role) {\n role.usersCount = await getUsersCount(role.id);\n }\n\n return role;\n};\n\n/**\n * Find roles in database\n * @param params query params to find the roles\n * @param populate\n */\nconst find = (params = {}, populate: unknown): Promise<AdminRole[]> => {\n return strapi.db.query('admin::role').findMany({ where: params, populate });\n};\n\n/**\n * Find all roles in database\n */\nconst findAllWithUsersCount = async (params: any): Promise<AdminRoleWithUsersCount[]> => {\n const roles: AdminRoleWithUsersCount[] = await strapi.db\n .query('admin::role')\n .findMany(strapi.get('query-params').transform('admin::role', params));\n\n for (const role of roles) {\n role.usersCount = await getUsersCount(role.id);\n }\n\n return roles;\n};\n\n/**\n * Update a role in database\n * @param params query params to find the role to update\n * @param attributes A partial role object\n */\nconst update = async (params: any, attributes: Partial<AdminRole>): Promise<AdminRole> => {\n const sanitizedAttributes = _.omit(attributes, ['code']);\n\n if (_.has(params, 'id') && _.has(sanitizedAttributes, 'name')) {\n const alreadyExists = await exists({\n name: sanitizedAttributes.name,\n id: { $ne: params.id },\n });\n if (alreadyExists) {\n throw new ApplicationError(\n `The name must be unique and a role with name \\`${sanitizedAttributes.name}\\` already exists.`\n );\n }\n }\n\n const result = await strapi.db\n .query('admin::role')\n .update({ where: params, data: sanitizedAttributes });\n\n strapi.eventHub.emit('role.update', { role: sanitizeRole(result) });\n\n return result;\n};\n\n/**\n * Check if a role exists in database\n * @param params query params to find the role\n */\nconst exists = async (params = {} as unknown): Promise<boolean> => {\n const count = await strapi.db.query('admin::role').count({ where: params });\n return count > 0;\n};\n\n/**\n * Count the number of roles based on search params\n * @param params params used for the query\n */\nconst count = async (params = {} as any): Promise<number> => {\n return strapi.db.query('admin::role').count(params);\n};\n\n/**\n * Check if the given roles id can be deleted safely, throw otherwise\n * @param ids\n */\nconst checkRolesIdForDeletion = async (ids = [] as Data.ID[]) => {\n const superAdminRole = await getSuperAdmin();\n\n if (superAdminRole && arrays.includesString(ids, superAdminRole.id)) {\n throw new ApplicationError('You cannot delete the super admin role');\n }\n\n for (const roleId of ids) {\n const usersCount = await getUsersCount(roleId);\n if (usersCount !== 0) {\n throw new ApplicationError('Some roles are still assigned to some users');\n }\n }\n};\n\n/**\n * Delete roles in database if they have no user assigned\n * @param ids query params to find the roles\n */\nconst deleteByIds = async (ids = [] as Data.ID[]): Promise<AdminRole[]> => {\n await checkRolesIdForDeletion(ids);\n\n await getService('permission').deleteByRolesIds(ids);\n\n const deletedRoles: AdminRole[] = [];\n for (const id of ids) {\n const deletedRole = await strapi.db.query('admin::role').delete({ where: { id } });\n\n if (deletedRole) {\n strapi.eventHub.emit('role.delete', { role: deletedRole });\n deletedRoles.push(deletedRole);\n }\n }\n\n return deletedRoles;\n};\n\n/** Count the number of users for some roles\n */\nconst getUsersCount = async (roleId: Data.ID): Promise<number> => {\n return strapi.db.query('admin::user').count({ where: { roles: { id: roleId } } });\n};\n\n/** Returns admin role\n */\nconst getSuperAdmin = (): Promise<AdminRole | undefined> => findOne({ code: SUPER_ADMIN_CODE });\n\n/** Returns admin role with userCount\n * @returns {Promise<role>}\n */\nconst getSuperAdminWithUsersCount = () => findOneWithUsersCount({ code: SUPER_ADMIN_CODE });\n\n/** Create superAdmin, Author and Editor role is no role already exist\n */\nconst createRolesIfNoneExist = async () => {\n const someRolesExist = await exists();\n if (someRolesExist) {\n return;\n }\n\n const { actionProvider } = getService('permission');\n\n const allActions = actionProvider.values();\n const contentTypesActions = allActions.filter((a) => a.section === 'contentTypes');\n\n // create 3 roles\n const superAdminRole = await create({\n name: 'Super Admin',\n code: 'strapi-super-admin',\n description: 'Super Admins can access and manage all features and settings.',\n });\n\n await getService('user').assignARoleToAll(superAdminRole.id);\n\n const editorRole = await create({\n name: 'Editor',\n code: 'strapi-editor',\n description: 'Editors can manage and publish contents including those of other users.',\n });\n\n const authorRole = await create({\n name: 'Author',\n code: 'strapi-author',\n description: 'Authors can manage the content they have created.',\n });\n\n // create content-type permissions for each role\n // Exclude non-displayed content types (e.g. plugin::users-permissions.role) from Editor/Author\n // since those types are in explorer.read subjects only for super admin relation reads.\n const nonDisplayedUids = Object.values(strapi.contentTypes as Record<string, any>)\n .filter((ct) => ct?.pluginOptions?.['content-manager']?.visible === false)\n .map((ct) => ct.uid as string);\n\n const editorPermissions = getService('content-type').getPermissionsWithNestedFields(\n contentTypesActions,\n {\n restrictedSubjects: ['plugin::users-permissions.user', ...nonDisplayedUids],\n }\n );\n\n const authorPermissions = editorPermissions\n .filter(({ action }: any) => action !== ACTIONS.publish)\n .map((permission: any) =>\n permissionDomain.create({ ...permission, conditions: ['admin::is-creator'] })\n );\n\n editorPermissions.push(...getDefaultPluginPermissions());\n authorPermissions.push(...getDefaultPluginPermissions({ isAuthor: true }));\n\n // assign permissions to roles\n await addPermissions(editorRole.id, editorPermissions);\n await addPermissions(authorRole.id, authorPermissions);\n};\n\nconst getDefaultPluginPermissions = ({ isAuthor = false } = {}) => {\n const conditions = isAuthor ? ['admin::is-creator'] : [];\n\n // add plugin permissions for each role\n return [\n { action: 'plugin::upload.read', conditions },\n { action: 'plugin::upload.configure-view' },\n { action: 'plugin::upload.assets.create' },\n { action: 'plugin::upload.assets.update', conditions },\n { action: 'plugin::upload.assets.download' },\n { action: 'plugin::upload.assets.copy-link' },\n ].map(permissionDomain.create);\n};\n\n/** Display a warning if the role superAdmin doesn't exist\n * or if the role is not assigned to at least one user\n */\nconst displayWarningIfNoSuperAdmin = async () => {\n const superAdminRole = await getSuperAdminWithUsersCount();\n const someUsersExists = await getService('user').exists();\n\n if (!superAdminRole) {\n strapi.log.warn(\"Your application doesn't have a super admin role.\");\n } else if (someUsersExists && superAdminRole.usersCount === 0) {\n strapi.log.warn(\"Your application doesn't have a super admin user.\");\n }\n};\n\n/**\n * Assign permissions to a role\n * @param roleId - role Data.ID\n * @param {Array<Permission{action,subject,fields,conditions}>} permissions - permissions to assign to the role\n */\nconst assignPermissions = async (\n roleId: Data.ID,\n permissions: Array<Pick<Permission, 'action' | 'subject' | 'conditions'>> = []\n) => {\n await validatePermissionsExist(permissions);\n\n // Internal actions are not handled by the role service, so any permission\n // with an internal action is filtered out\n const internalActions = new Set(\n getService('permission')\n .actionProvider.values()\n .filter((action) => action.section === 'internal')\n .map((action) => action.actionId)\n );\n\n const superAdmin = await getService('role').getSuperAdmin();\n const isSuperAdmin = superAdmin && superAdmin.id === roleId;\n const assignRole = <T extends object>(permission: T) => ({ ...permission, role: roleId });\n\n const permissionsWithRole = permissions\n // Add the role attribute to every permission\n .map(assignRole)\n // Transform each permission into a Permission instance\n .map(permissionDomain.create);\n\n const existingPermissions = await getService('permission').findMany({\n where: { role: { id: roleId } },\n populate: ['role'],\n });\n\n const permissionsToAdd = differenceWith(\n permissionsWithRole,\n existingPermissions,\n arePermissionsEqual\n ).filter((permission: Permission) => !internalActions.has(permission.action));\n\n const permissionsToDelete = differenceWith(\n existingPermissions,\n permissionsWithRole,\n arePermissionsEqual\n ).filter((permission: Permission) => !internalActions.has(permission.action));\n\n const permissionsToReturn = differenceBy(permissionsToDelete, existingPermissions, 'id');\n\n if (permissionsToDelete.length > 0) {\n await getService('permission').deleteByIds(\n permissionsToDelete.map((permission) => permission?.id)\n );\n }\n\n if (permissionsToAdd.length > 0) {\n const newPermissions = await addPermissions(roleId, permissionsToAdd);\n permissionsToReturn.push(...newPermissions);\n }\n\n if (!isSuperAdmin && (permissionsToAdd.length || permissionsToDelete.length)) {\n await getService('metrics').sendDidUpdateRolePermissions();\n }\n\n if (permissionsToAdd.length > 0 || permissionsToDelete.length > 0) {\n await getService('api-token-admin').syncPermissionsForRole(roleId);\n }\n\n return permissionsToReturn;\n};\n\nconst addPermissions = async (roleId: Data.ID, permissions: any) => {\n const { conditionProvider, createMany } = getService('permission');\n const { sanitizeConditions } = permissionDomain;\n\n const permissionsWithRole = permissions\n .map((permission: Permission) => ({ ...permission, role: roleId }))\n // @ts-expect-error - refactor domain/permission Condition type, as it's now expecting\n // a string but it should be a Condition interface\n .map(sanitizeConditions(conditionProvider))\n .map(permissionDomain.create);\n\n return createMany(permissionsWithRole);\n};\n\nconst isContentTypeAction = (action: Action) => action.section === CONTENT_TYPE_SECTION;\n\n/**\n * Reset super admin permissions (giving it all permissions)\n */\nconst resetSuperAdminPermissions = async () => {\n const superAdminRole = await getService('role').getSuperAdmin();\n if (!superAdminRole) {\n return;\n }\n\n const permissionService = getService('permission');\n const contentTypeService = getService('content-type');\n\n const allActions = permissionService.actionProvider.values() as Action[];\n\n const contentTypesActions = allActions.filter((action) => isContentTypeAction(action));\n const otherActions = allActions.filter((action) => !isContentTypeAction(action));\n\n // First, get the content-types permissions\n const permissions = contentTypeService.getPermissionsWithNestedFields(\n contentTypesActions\n ) as Permission[];\n\n // Then add every other permission\n const otherPermissions = otherActions.reduce((acc, action) => {\n const { actionId, subjects } = action;\n\n if (Array.isArray(subjects)) {\n acc.push(\n ...subjects.map((subject) => permissionDomain.create({ action: actionId, subject }))\n );\n } else {\n acc.push(permissionDomain.create({ action: actionId }));\n }\n\n return acc;\n }, [] as Permission[]);\n\n permissions.push(...otherPermissions);\n\n const transformedPermissions = (await hooks.willResetSuperAdminPermissions.call(\n permissions\n )) as Permission[];\n\n await assignPermissions(superAdminRole.id, transformedPermissions);\n};\n\n/**\n * Check if a user object includes the super admin role\n */\nconst hasSuperAdminRole = (user: AdminUser): boolean => {\n const roles = _.get(user, 'roles', []) as AdminRole[];\n\n return roles.map((role) => role?.code).includes(SUPER_ADMIN_CODE);\n};\n\nconst constants = {\n superAdminCode: SUPER_ADMIN_CODE,\n};\n\nexport default {\n hooks,\n sanitizeRole,\n create,\n findOne,\n findOneWithUsersCount,\n find,\n findAllWithUsersCount,\n update,\n exists,\n count,\n deleteByIds,\n getUsersCount,\n getSuperAdmin,\n getSuperAdminWithUsersCount,\n createRolesIfNoneExist,\n displayWarningIfNoSuperAdmin,\n addPermissions,\n hasSuperAdminRole,\n assignPermissions,\n resetSuperAdminPermissions,\n checkRolesIdForDeletion,\n constants,\n};\n"],"names":["SUPER_ADMIN_CODE","CONTENT_TYPE_SECTION","ROLE_TEXT_MAX_LENGTH","roleConstants","createAsyncSeriesWaterfallHook","hooksUtils","ApplicationError","errors","hooks","willResetSuperAdminPermissions","willValidateUpdatePermissions","ACTIONS","publish","sanitizeRole","role","omit","COMPARABLE_FIELDS","pickComparableFields","permission","pick","jsonClean","data","JSON","parse","stringify","arePermissionsEqual","p1","p2","action","isEqual","create","attributes","alreadyExists","exists","name","codeSuffix","dates","timestampCode","codePrefix","_","trimEnd","kebabCase","slice","length","autoGeneratedCode","rolesWithCode","code","result","strapi","db","query","eventHub","emit","findOne","params","populate","where","findOneWithUsersCount","usersCount","getUsersCount","id","find","findMany","findAllWithUsersCount","roles","get","transform","update","sanitizedAttributes","has","$ne","count","checkRolesIdForDeletion","ids","superAdminRole","getSuperAdmin","arrays","includesString","roleId","deleteByIds","getService","deleteByRolesIds","deletedRoles","deletedRole","delete","push","getSuperAdminWithUsersCount","createRolesIfNoneExist","someRolesExist","actionProvider","allActions","values","contentTypesActions","filter","a","section","description","assignARoleToAll","editorRole","authorRole","nonDisplayedUids","Object","contentTypes","ct","pluginOptions","visible","map","uid","editorPermissions","getPermissionsWithNestedFields","restrictedSubjects","authorPermissions","permissionDomain","conditions","getDefaultPluginPermissions","isAuthor","addPermissions","displayWarningIfNoSuperAdmin","someUsersExists","log","warn","assignPermissions","permissions","validatePermissionsExist","internalActions","Set","actionId","superAdmin","isSuperAdmin","assignRole","permissionsWithRole","existingPermissions","permissionsToAdd","differenceWith","permissionsToDelete","permissionsToReturn","differenceBy","newPermissions","sendDidUpdateRolePermissions","syncPermissionsForRole","conditionProvider","createMany","sanitizeConditions","isContentTypeAction","resetSuperAdminPermissions","permissionService","contentTypeService","otherActions","otherPermissions","reduce","acc","subjects","Array","isArray","subject","transformedPermissions","call","hasSuperAdminRole","user","includes","constants","superAdminCode"],"mappings":"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"}
|
|
@@ -8,16 +8,16 @@ const adminTokenCreationSchema = utils.yup.object().shape({
|
|
|
8
8
|
kind: utils.yup.string().oneOf([
|
|
9
9
|
'admin'
|
|
10
10
|
]).optional(),
|
|
11
|
-
name: utils.yup.string().min(1).required(),
|
|
12
|
-
description: utils.yup.string().optional(),
|
|
11
|
+
name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
|
|
12
|
+
description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
|
|
13
13
|
lifespan: utils.yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),
|
|
14
14
|
adminPermissions: utils.yup.array().of(commonValidators.permission),
|
|
15
15
|
// adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body
|
|
16
16
|
adminUserOwner: utils.yup.mixed().nullable()
|
|
17
17
|
}).noUnknown().strict();
|
|
18
18
|
const adminTokenUpdateSchema = utils.yup.object().shape({
|
|
19
|
-
name: utils.yup.string().min(1).notNull(),
|
|
20
|
-
description: utils.yup.string().nullable(),
|
|
19
|
+
name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
|
|
20
|
+
description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
|
|
21
21
|
adminPermissions: utils.yup.array().of(commonValidators.permission).nullable()
|
|
22
22
|
}).noUnknown().strict();
|
|
23
23
|
const validateAdminTokenCreationInput = utils.validateYupSchema(adminTokenCreationSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-tokens.js","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","lifespan","number","Object","values","
|
|
1
|
+
{"version":3,"file":"admin-tokens.js","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","lifespan","number","Object","values","API_TOKEN_LIFESPANS","nullable","adminPermissions","array","of","permission","adminUserOwner","mixed","noUnknown","strict","adminTokenUpdateSchema","notNull","validateAdminTokenCreationInput","validateYupSchema","validateAdminTokenUpdateInput"],"mappings":";;;;;;AAIA,MAAMA,wBAAAA,GAA2BC,SAAAA,CAC9BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAQ,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAC5CC,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;AACvEQ,IAAAA,QAAAA,EAAUd,SAAAA,CAAIe,MAAM,EAAA,CAAGP,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACW,MAAAA,CAAOC,MAAM,CAACP,SAAAA,CAAUQ,mBAAmB,GAAGC,QAAQ,EAAA;AAC1FC,IAAAA,gBAAAA,EAAkBpB,SAAAA,CAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,2BAAAA,CAAAA;;IAEjCC,cAAAA,EAAgBxB,SAAAA,CAAIyB,KAAK,EAAA,CAAGN,QAAQ;AACtC,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,sBAAAA,GAAyB5B,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEQ,QAAQ,EAAA;AACvEC,IAAAA,gBAAAA,EAAkBpB,UAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,6BAAYJ,QAAQ;AACvD,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,+BAAAA,GAAkCC,uBAAAA,CAAkBhC,wBAAAA;AAC1D,MAAMiC,6BAAAA,GAAgCD,uBAAAA,CAAkBH,sBAAAA;;;;;"}
|
|
@@ -6,16 +6,16 @@ const adminTokenCreationSchema = yup.object().shape({
|
|
|
6
6
|
kind: yup.string().oneOf([
|
|
7
7
|
'admin'
|
|
8
8
|
]).optional(),
|
|
9
|
-
name: yup.string().min(1).required(),
|
|
10
|
-
description: yup.string().optional(),
|
|
9
|
+
name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
|
|
10
|
+
description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
|
|
11
11
|
lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),
|
|
12
12
|
adminPermissions: yup.array().of(permission),
|
|
13
13
|
// adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body
|
|
14
14
|
adminUserOwner: yup.mixed().nullable()
|
|
15
15
|
}).noUnknown().strict();
|
|
16
16
|
const adminTokenUpdateSchema = yup.object().shape({
|
|
17
|
-
name: yup.string().min(1).notNull(),
|
|
18
|
-
description: yup.string().nullable(),
|
|
17
|
+
name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
|
|
18
|
+
description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
|
|
19
19
|
adminPermissions: yup.array().of(permission).nullable()
|
|
20
20
|
}).noUnknown().strict();
|
|
21
21
|
const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-tokens.mjs","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","lifespan","number","Object","values","
|
|
1
|
+
{"version":3,"file":"admin-tokens.mjs","sources":["../../../../../server/src/validation/admin-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\nimport { permission } from './common-validators';\n\nconst adminTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['admin']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n adminPermissions: yup.array().of(permission),\n // adminUserOwner is set by the controller from ctx.state.user (full user object) or a strapiID from body\n adminUserOwner: yup.mixed().nullable(),\n })\n .noUnknown()\n .strict();\n\nconst adminTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n adminPermissions: yup.array().of(permission).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateAdminTokenCreationInput = validateYupSchema(adminTokenCreationSchema);\nexport const validateAdminTokenUpdateInput = validateYupSchema(adminTokenUpdateSchema);\n"],"names":["adminTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","lifespan","number","Object","values","API_TOKEN_LIFESPANS","nullable","adminPermissions","array","of","permission","adminUserOwner","mixed","noUnknown","strict","adminTokenUpdateSchema","notNull","validateAdminTokenCreationInput","validateYupSchema","validateAdminTokenUpdateInput"],"mappings":";;;;AAIA,MAAMA,wBAAAA,GAA2BC,GAAAA,CAC9BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAQ,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAC5CC,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;AACvEQ,IAAAA,QAAAA,EAAUd,GAAAA,CAAIe,MAAM,EAAA,CAAGP,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACW,MAAAA,CAAOC,MAAM,CAACP,SAAAA,CAAUQ,mBAAmB,GAAGC,QAAQ,EAAA;AAC1FC,IAAAA,gBAAAA,EAAkBpB,GAAAA,CAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,UAAAA,CAAAA;;IAEjCC,cAAAA,EAAgBxB,GAAAA,CAAIyB,KAAK,EAAA,CAAGN,QAAQ;AACtC,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,sBAAAA,GAAyB5B,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEQ,QAAQ,EAAA;AACvEC,IAAAA,gBAAAA,EAAkBpB,IAAIqB,KAAK,EAAA,CAAGC,EAAE,CAACC,YAAYJ,QAAQ;AACvD,CAAA,CAAA,CACCO,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,+BAAAA,GAAkCC,iBAAAA,CAAkBhC,wBAAAA;AAC1D,MAAMiC,6BAAAA,GAAgCD,iBAAAA,CAAkBH,sBAAAA;;;;"}
|
|
@@ -7,15 +7,15 @@ const apiTokenCreationSchema = utils.yup.object().shape({
|
|
|
7
7
|
kind: utils.yup.string().oneOf([
|
|
8
8
|
'content-api'
|
|
9
9
|
]).optional(),
|
|
10
|
-
name: utils.yup.string().min(1).required(),
|
|
11
|
-
description: utils.yup.string().optional(),
|
|
10
|
+
name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
|
|
11
|
+
description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
|
|
12
12
|
type: utils.yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
|
|
13
13
|
permissions: utils.yup.array().of(utils.yup.string()).nullable(),
|
|
14
14
|
lifespan: utils.yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable()
|
|
15
15
|
}).noUnknown().strict();
|
|
16
16
|
const apiTokenUpdateSchema = utils.yup.object().shape({
|
|
17
|
-
name: utils.yup.string().min(1).notNull(),
|
|
18
|
-
description: utils.yup.string().nullable(),
|
|
17
|
+
name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
|
|
18
|
+
description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
|
|
19
19
|
type: utils.yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
|
|
20
20
|
permissions: utils.yup.array().of(utils.yup.string()).nullable()
|
|
21
21
|
}).noUnknown().strict();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-tokens.js","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","type","Object","values","
|
|
1
|
+
{"version":3,"file":"api-tokens.js","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","type","Object","values","API_TOKEN_TYPE","permissions","array","of","nullable","lifespan","number","API_TOKEN_LIFESPANS","noUnknown","strict","apiTokenUpdateSchema","notNull","validateApiTokenCreationInput","validateYupSchema","validateApiTokenUpdateInput"],"mappings":";;;;;AAGA,MAAMA,sBAAAA,GAAyBC,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAc,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAClDC,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;IACvEQ,IAAAA,EAAMd,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,SAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,SAAAA,CAAII,MAAM,IAAIiB,QAAQ,EAAA;AAClDC,IAAAA,QAAAA,EAAUtB,SAAAA,CAAIuB,MAAM,EAAA,CAAGf,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUc,mBAAmB,GAAGH,QAAQ;AAC5F,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,oBAAAA,GAAuB3B,SAAAA,CAC1BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,SAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEiB,OAAO,EAAA;IACtEf,WAAAA,EAAab,SAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEU,QAAQ,EAAA;IACvEP,IAAAA,EAAMd,SAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,SAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,SAAAA,CAAII,MAAM,IAAIiB,QAAQ;AACpD,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,6BAAAA,GAAgCC,uBAAAA,CAAkB/B,sBAAAA;AACxD,MAAMgC,2BAAAA,GAA8BD,uBAAAA,CAAkBH,oBAAAA;;;;;"}
|
|
@@ -5,15 +5,15 @@ const apiTokenCreationSchema = yup.object().shape({
|
|
|
5
5
|
kind: yup.string().oneOf([
|
|
6
6
|
'content-api'
|
|
7
7
|
]).optional(),
|
|
8
|
-
name: yup.string().min(1).required(),
|
|
9
|
-
description: yup.string().optional(),
|
|
8
|
+
name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
|
|
9
|
+
description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
|
|
10
10
|
type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
|
|
11
11
|
permissions: yup.array().of(yup.string()).nullable(),
|
|
12
12
|
lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable()
|
|
13
13
|
}).noUnknown().strict();
|
|
14
14
|
const apiTokenUpdateSchema = yup.object().shape({
|
|
15
|
-
name: yup.string().min(1).notNull(),
|
|
16
|
-
description: yup.string().nullable(),
|
|
15
|
+
name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
|
|
16
|
+
description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
|
|
17
17
|
type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),
|
|
18
18
|
permissions: yup.array().of(yup.string()).nullable()
|
|
19
19
|
}).noUnknown().strict();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-tokens.mjs","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","required","description","type","Object","values","
|
|
1
|
+
{"version":3,"file":"api-tokens.mjs","sources":["../../../../../server/src/validation/api-tokens.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst apiTokenCreationSchema = yup\n .object()\n .shape({\n kind: yup.string().oneOf(['content-api']).optional(),\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(),\n })\n .noUnknown()\n .strict();\n\nconst apiTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).optional(),\n permissions: yup.array().of(yup.string()).nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);\nexport const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);\n\nexport default {\n validateApiTokenCreationInput,\n validateApiTokenUpdateInput,\n};\n"],"names":["apiTokenCreationSchema","yup","object","shape","kind","string","oneOf","optional","name","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","type","Object","values","API_TOKEN_TYPE","permissions","array","of","nullable","lifespan","number","API_TOKEN_LIFESPANS","noUnknown","strict","apiTokenUpdateSchema","notNull","validateApiTokenCreationInput","validateYupSchema","validateApiTokenUpdateInput"],"mappings":";;;AAGA,MAAMA,sBAAAA,GAAyBC,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAAC,QAAA;AAAc,KAAA,CAAA,CAAEC,QAAQ,EAAA;IAClDC,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEL,QAAQ,EAAA;IACvEQ,IAAAA,EAAMd,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,GAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,GAAAA,CAAII,MAAM,IAAIiB,QAAQ,EAAA;AAClDC,IAAAA,QAAAA,EAAUtB,GAAAA,CAAIuB,MAAM,EAAA,CAAGf,GAAG,CAAC,CAAA,CAAA,CAAGH,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUc,mBAAmB,GAAGH,QAAQ;AAC5F,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,oBAAAA,GAAuB3B,GAAAA,CAC1BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLK,IAAAA,EAAMP,GAAAA,CAAII,MAAM,EAAA,CAAGI,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEiB,OAAO,EAAA;IACtEf,WAAAA,EAAab,GAAAA,CAAII,MAAM,EAAA,CAAGK,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEU,QAAQ,EAAA;IACvEP,IAAAA,EAAMd,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAACU,MAAAA,CAAOC,MAAM,CAACN,SAAAA,CAAUO,cAAc,CAAA,CAAA,CAAGX,QAAQ,EAAA;IAC1EY,WAAAA,EAAalB,GAAAA,CAAImB,KAAK,EAAA,CAAGC,EAAE,CAACpB,GAAAA,CAAII,MAAM,IAAIiB,QAAQ;AACpD,CAAA,CAAA,CACCI,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,6BAAAA,GAAgCC,iBAAAA,CAAkB/B,sBAAAA;AACxD,MAAMgC,2BAAAA,GAA8BD,iBAAAA,CAAkBH,oBAAAA;;;;"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var utils = require('@strapi/utils');
|
|
4
|
+
var constants = require('../services/constants.js');
|
|
4
5
|
|
|
6
|
+
const { ROLE_TEXT_MAX_LENGTH } = constants;
|
|
5
7
|
const roleCreateSchema = utils.yup.object().shape({
|
|
6
|
-
name: utils.yup.string().min(1).required(),
|
|
7
|
-
description: utils.yup.string().nullable()
|
|
8
|
+
name: utils.yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),
|
|
9
|
+
description: utils.yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
|
|
8
10
|
}).noUnknown();
|
|
9
11
|
const rolesDeleteSchema = utils.yup.object().shape({
|
|
10
12
|
ids: utils.yup.array().of(utils.yup.strapiID()).min(1).required().test('roles-deletion-checks', 'Roles deletion checks have failed', async function checkRolesDeletion(ids) {
|
|
@@ -35,8 +37,8 @@ const roleDeleteSchema = utils.yup.strapiID().required().test('no-admin-single-d
|
|
|
35
37
|
return true;
|
|
36
38
|
});
|
|
37
39
|
const roleUpdateSchema = utils.yup.object().shape({
|
|
38
|
-
name: utils.yup.string().min(1),
|
|
39
|
-
description: utils.yup.string().nullable()
|
|
40
|
+
name: utils.yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),
|
|
41
|
+
description: utils.yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
|
|
40
42
|
}).noUnknown();
|
|
41
43
|
const validateRoleCreateInput = utils.validateYupSchema(roleCreateSchema);
|
|
42
44
|
const validateRoleUpdateInput = utils.validateYupSchema(roleUpdateSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.js","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["roleCreateSchema","yup","object","shape","name","string","min","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":"
|
|
1
|
+
{"version":3,"file":"role.js","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst { ROLE_TEXT_MAX_LENGTH } = constants;\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["ROLE_TEXT_MAX_LENGTH","constants","roleCreateSchema","yup","object","shape","name","string","min","max","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;;;AAGA,MAAM,EAAEA,oBAAoB,EAAE,GAAGC,SAAAA;AAEjC,MAAMC,gBAAAA,GAAmBC,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA,CAAsBU,QAAQ,EAAA;AAC5DC,IAAAA,WAAAA,EAAaR,UAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBX,SAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLU,IAAAA,GAAAA,EAAKZ,UACFa,KAAK,EAAA,CACLC,EAAE,CAACd,SAAAA,CAAIe,QAAQ,EAAA,CAAA,CACfV,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,mBAAmBL,GAAG,EAAA;QACnC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAC9D,QAAA,CAAA,CAAE,OAAOS,CAAAA,EAAG;;YAEV,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACCd,SAAS,EAAA;AAEZ,MAAMe,gBAAAA,GAAmBzB,SAAAA,CACtBe,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAeU,iBAAAA,CAAkBC,EAAE,EAAA;IACjC,IAAI;AACF,QAAA,MAAMT,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACO,YAAAA;AAAG,SAAA,CAAA;AAClE,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAG;;QAEV,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGJ,MAAMI,gBAAAA,GAAmB5B,SAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA;AAC9BW,IAAAA,WAAAA,EAAaR,UAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEL,MAAMmB,uBAAAA,GAA0BC,uBAAAA,CAAkB/B,gBAAAA;AAClD,MAAMgC,uBAAAA,GAA0BD,uBAAAA,CAAkBF,gBAAAA;AAClD,MAAMI,wBAAAA,GAA2BF,uBAAAA,CAAkBnB,iBAAAA;AACnD,MAAMsB,uBAAAA,GAA0BH,uBAAAA,CAAkBL,gBAAAA;;;;;;;"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { yup, validateYupSchema } from '@strapi/utils';
|
|
2
|
+
import constants from '../services/constants.mjs';
|
|
2
3
|
|
|
4
|
+
const { ROLE_TEXT_MAX_LENGTH } = constants;
|
|
3
5
|
const roleCreateSchema = yup.object().shape({
|
|
4
|
-
name: yup.string().min(1).required(),
|
|
5
|
-
description: yup.string().nullable()
|
|
6
|
+
name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),
|
|
7
|
+
description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
|
|
6
8
|
}).noUnknown();
|
|
7
9
|
const rolesDeleteSchema = yup.object().shape({
|
|
8
10
|
ids: yup.array().of(yup.strapiID()).min(1).required().test('roles-deletion-checks', 'Roles deletion checks have failed', async function checkRolesDeletion(ids) {
|
|
@@ -33,8 +35,8 @@ const roleDeleteSchema = yup.strapiID().required().test('no-admin-single-delete'
|
|
|
33
35
|
return true;
|
|
34
36
|
});
|
|
35
37
|
const roleUpdateSchema = yup.object().shape({
|
|
36
|
-
name: yup.string().min(1),
|
|
37
|
-
description: yup.string().nullable()
|
|
38
|
+
name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),
|
|
39
|
+
description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable()
|
|
38
40
|
}).noUnknown();
|
|
39
41
|
const validateRoleCreateInput = validateYupSchema(roleCreateSchema);
|
|
40
42
|
const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.mjs","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1),\n description: yup.string().nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["roleCreateSchema","yup","object","shape","name","string","min","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":"
|
|
1
|
+
{"version":3,"file":"role.mjs","sources":["../../../../../server/src/validation/role.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../services/constants';\n\nconst { ROLE_TEXT_MAX_LENGTH } = constants;\n\nconst roleCreateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nconst rolesDeleteSchema = yup\n .object()\n .shape({\n ids: yup\n .array()\n .of(yup.strapiID())\n .min(1)\n .required()\n .test(\n 'roles-deletion-checks',\n 'Roles deletion checks have failed',\n async function checkRolesDeletion(ids) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion(ids);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'ids', message: e.message });\n }\n\n return true;\n }\n ),\n })\n .noUnknown();\n\nconst roleDeleteSchema = yup\n .strapiID()\n .required()\n .test(\n 'no-admin-single-delete',\n 'Role deletion checks have failed',\n async function checkRoleDeletion(id) {\n try {\n await strapi.service('admin::role').checkRolesIdForDeletion([id]);\n } catch (e) {\n // @ts-expect-error yup types\n return this.createError({ path: 'id', message: e.message });\n }\n\n return true;\n }\n );\n\nconst roleUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(ROLE_TEXT_MAX_LENGTH),\n description: yup.string().max(ROLE_TEXT_MAX_LENGTH).nullable(),\n })\n .noUnknown();\n\nexport const validateRoleCreateInput = validateYupSchema(roleCreateSchema);\nexport const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);\nexport const validateRolesDeleteInput = validateYupSchema(rolesDeleteSchema);\nexport const validateRoleDeleteInput = validateYupSchema(roleDeleteSchema);\n\nexport default {\n validateRoleUpdateInput,\n validateRoleCreateInput,\n validateRolesDeleteInput,\n validateRoleDeleteInput,\n};\n"],"names":["ROLE_TEXT_MAX_LENGTH","constants","roleCreateSchema","yup","object","shape","name","string","min","max","required","description","nullable","noUnknown","rolesDeleteSchema","ids","array","of","strapiID","test","checkRolesDeletion","strapi","service","checkRolesIdForDeletion","e","createError","path","message","roleDeleteSchema","checkRoleDeletion","id","roleUpdateSchema","validateRoleCreateInput","validateYupSchema","validateRoleUpdateInput","validateRolesDeleteInput","validateRoleDeleteInput"],"mappings":";;;AAGA,MAAM,EAAEA,oBAAoB,EAAE,GAAGC,SAAAA;AAEjC,MAAMC,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA,CAAsBU,QAAQ,EAAA;AAC5DC,IAAAA,WAAAA,EAAaR,IAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMC,iBAAAA,GAAoBX,GAAAA,CACvBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLU,IAAAA,GAAAA,EAAKZ,IACFa,KAAK,EAAA,CACLC,EAAE,CAACd,GAAAA,CAAIe,QAAQ,EAAA,CAAA,CACfV,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ,GACRS,IAAI,CACH,yBACA,mCAAA,EACA,eAAeC,mBAAmBL,GAAG,EAAA;QACnC,IAAI;AACF,YAAA,MAAMM,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAACR,GAAAA,CAAAA;AAC9D,QAAA,CAAA,CAAE,OAAOS,CAAAA,EAAG;;YAEV,OAAO,IAAI,CAACC,WAAW,CAAC;gBAAEC,IAAAA,EAAM,KAAA;AAAOC,gBAAAA,OAAAA,EAASH,EAAEG;AAAQ,aAAA,CAAA;AAC5D,QAAA;QAEA,OAAO,IAAA;AACT,IAAA,CAAA;AAEN,CAAA,CAAA,CACCd,SAAS,EAAA;AAEZ,MAAMe,gBAAAA,GAAmBzB,GAAAA,CACtBe,QAAQ,EAAA,CACRR,QAAQ,EAAA,CACRS,IAAI,CACH,wBAAA,EACA,kCAAA,EACA,eAAeU,iBAAAA,CAAkBC,EAAE,EAAA;IACjC,IAAI;AACF,QAAA,MAAMT,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeC,uBAAuB,CAAC;AAACO,YAAAA;AAAG,SAAA,CAAA;AAClE,IAAA,CAAA,CAAE,OAAON,CAAAA,EAAG;;QAEV,OAAO,IAAI,CAACC,WAAW,CAAC;YAAEC,IAAAA,EAAM,IAAA;AAAMC,YAAAA,OAAAA,EAASH,EAAEG;AAAQ,SAAA,CAAA;AAC3D,IAAA;IAEA,OAAO,IAAA;AACT,CAAA,CAAA;AAGJ,MAAMI,gBAAAA,GAAmB5B,GAAAA,CACtBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACT,oBAAAA,CAAAA;AAC9BW,IAAAA,WAAAA,EAAaR,IAAII,MAAM,EAAA,CAAGE,GAAG,CAACT,sBAAsBY,QAAQ;AAC9D,CAAA,CAAA,CACCC,SAAS,EAAA;AAEL,MAAMmB,uBAAAA,GAA0BC,iBAAAA,CAAkB/B,gBAAAA;AAClD,MAAMgC,uBAAAA,GAA0BD,iBAAAA,CAAkBF,gBAAAA;AAClD,MAAMI,wBAAAA,GAA2BF,iBAAAA,CAAkBnB,iBAAAA;AACnD,MAAMsB,uBAAAA,GAA0BH,iBAAAA,CAAkBL,gBAAAA;;;;"}
|
|
@@ -6,14 +6,14 @@ var utils = require('@strapi/utils');
|
|
|
6
6
|
var constants = require('../../services/constants.js');
|
|
7
7
|
|
|
8
8
|
const transferTokenCreationSchema = utils.yup.object().shape({
|
|
9
|
-
name: utils.yup.string().min(1).required(),
|
|
10
|
-
description: utils.yup.string().optional(),
|
|
9
|
+
name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
|
|
10
|
+
description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
|
|
11
11
|
permissions: utils.yup.array().min(1).of(utils.yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).required(),
|
|
12
12
|
lifespan: utils.yup.number().min(1).oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS)).nullable()
|
|
13
13
|
}).noUnknown().strict();
|
|
14
14
|
const transferTokenUpdateSchema = utils.yup.object().shape({
|
|
15
|
-
name: utils.yup.string().min(1).notNull(),
|
|
16
|
-
description: utils.yup.string().nullable(),
|
|
15
|
+
name: utils.yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
|
|
16
|
+
description: utils.yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
|
|
17
17
|
permissions: utils.yup.array().min(1).of(utils.yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).nullable()
|
|
18
18
|
}).noUnknown().strict();
|
|
19
19
|
const validateTransferTokenCreationInput = utils.validateYupSchema(transferTokenCreationSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","required","description","optional","permissions","array","of","oneOf","Object","values","
|
|
1
|
+
{"version":3,"file":"token.js","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","optional","permissions","array","of","oneOf","Object","values","TRANSFER_TOKEN_TYPE","lifespan","number","TRANSFER_TOKEN_LIFESPANS","nullable","noUnknown","strict","transferTokenUpdateSchema","notNull","validateTransferTokenCreationInput","validateYupSchema","validateTransferTokenUpdateInput"],"mappings":";;;;;;;AAGA,MAAMA,2BAAAA,GAA8BC,SAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEG,QAAQ,EAAA;AACvEC,IAAAA,WAAAA,EAAaZ,UACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,SAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjET,QAAQ,EAAA;AACXU,IAAAA,QAAAA,EAAUnB,SAAAA,CACPoB,MAAM,EAAA,CACNf,GAAG,CAAC,CAAA,CAAA,CACJU,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUc,wBAAwB,GACtDC,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,yBAAAA,GAA4BzB,SAAAA,CAC/BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,SAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAaV,SAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEc,QAAQ,EAAA;AACvEV,IAAAA,WAAAA,EAAaZ,UACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,SAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjEI,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,kCAAAA,GAAqCC,uBAAAA,CAAkB7B,2BAAAA;AAC7D,MAAM8B,gCAAAA,GAAmCD,uBAAAA,CAAkBH,yBAAAA;AAElE,YAAe;AACbE,IAAAA,kCAAAA;AACAE,IAAAA;AACF,CAAA;;;;;;"}
|
|
@@ -2,14 +2,14 @@ import { yup, validateYupSchema } from '@strapi/utils';
|
|
|
2
2
|
import constants from '../../services/constants.mjs';
|
|
3
3
|
|
|
4
4
|
const transferTokenCreationSchema = yup.object().shape({
|
|
5
|
-
name: yup.string().min(1).required(),
|
|
6
|
-
description: yup.string().optional(),
|
|
5
|
+
name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),
|
|
6
|
+
description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),
|
|
7
7
|
permissions: yup.array().min(1).of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).required(),
|
|
8
8
|
lifespan: yup.number().min(1).oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS)).nullable()
|
|
9
9
|
}).noUnknown().strict();
|
|
10
10
|
const transferTokenUpdateSchema = yup.object().shape({
|
|
11
|
-
name: yup.string().min(1).notNull(),
|
|
12
|
-
description: yup.string().nullable(),
|
|
11
|
+
name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),
|
|
12
|
+
description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),
|
|
13
13
|
permissions: yup.array().min(1).of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE))).nullable()
|
|
14
14
|
}).noUnknown().strict();
|
|
15
15
|
const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.mjs","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).required(),\n description: yup.string().optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).notNull(),\n description: yup.string().nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","required","description","optional","permissions","array","of","oneOf","Object","values","
|
|
1
|
+
{"version":3,"file":"token.mjs","sources":["../../../../../../server/src/validation/transfer/token.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport constants from '../../services/constants';\n\nconst transferTokenCreationSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).required(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).optional(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .required(),\n lifespan: yup\n .number()\n .min(1)\n .oneOf(Object.values(constants.TRANSFER_TOKEN_LIFESPANS))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nconst transferTokenUpdateSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(constants.TOKEN_TEXT_MAX_LENGTH).notNull(),\n description: yup.string().max(constants.TOKEN_TEXT_MAX_LENGTH).nullable(),\n permissions: yup\n .array()\n .min(1)\n .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))\n .nullable(),\n })\n .noUnknown()\n .strict();\n\nexport const validateTransferTokenCreationInput = validateYupSchema(transferTokenCreationSchema);\nexport const validateTransferTokenUpdateInput = validateYupSchema(transferTokenUpdateSchema);\n\nexport default {\n validateTransferTokenCreationInput,\n validateTransferTokenUpdateInput,\n};\n"],"names":["transferTokenCreationSchema","yup","object","shape","name","string","min","max","constants","TOKEN_TEXT_MAX_LENGTH","required","description","optional","permissions","array","of","oneOf","Object","values","TRANSFER_TOKEN_TYPE","lifespan","number","TRANSFER_TOKEN_LIFESPANS","nullable","noUnknown","strict","transferTokenUpdateSchema","notNull","validateTransferTokenCreationInput","validateYupSchema","validateTransferTokenUpdateInput"],"mappings":";;;AAGA,MAAMA,2BAAAA,GAA8BC,GAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEC,QAAQ,EAAA;IACvEC,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEG,QAAQ,EAAA;AACvEC,IAAAA,WAAAA,EAAaZ,IACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,GAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjET,QAAQ,EAAA;AACXU,IAAAA,QAAAA,EAAUnB,GAAAA,CACPoB,MAAM,EAAA,CACNf,GAAG,CAAC,CAAA,CAAA,CACJU,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUc,wBAAwB,GACtDC,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAET,MAAMC,yBAAAA,GAA4BzB,GAAAA,CAC/BC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,CAAA,CAAEkB,OAAO,EAAA;IACtEhB,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGE,GAAG,CAACC,SAAAA,CAAUC,qBAAqB,EAAEc,QAAQ,EAAA;AACvEV,IAAAA,WAAAA,EAAaZ,IACVa,KAAK,EAAA,CACLR,GAAG,CAAC,CAAA,CAAA,CACJS,EAAE,CAACd,GAAAA,CAAII,MAAM,EAAA,CAAGW,KAAK,CAACC,MAAAA,CAAOC,MAAM,CAACV,SAAAA,CAAUW,mBAAmB,IACjEI,QAAQ;AACb,CAAA,CAAA,CACCC,SAAS,GACTC,MAAM,EAAA;AAEF,MAAMG,kCAAAA,GAAqCC,iBAAAA,CAAkB7B,2BAAAA;AAC7D,MAAM8B,gCAAAA,GAAmCD,iBAAAA,CAAkBH,yBAAAA;AAElE,YAAe;AACbE,IAAAA,kCAAAA;AACAE,IAAAA;AACF,CAAA;;;;"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Path attribute of the admin auth
|
|
5
|
-
* through `admin.auth.cookie.path` so multiple Strapi instances
|
|
6
|
-
* parent domain can keep separate cookies (e.g. `/strapi-de/admin`).
|
|
4
|
+
* Validates the Path attribute of the admin auth cookies. The path is
|
|
5
|
+
* configurable through `admin.auth.cookie.path` so multiple Strapi instances
|
|
6
|
+
* on the same parent domain can keep separate cookies (e.g. `/strapi-de/admin`).
|
|
7
7
|
*
|
|
8
8
|
* Browser-safe single source for both sides of the handoff: the admin panel
|
|
9
|
-
* cannot read server config, so the build transports the
|
|
10
|
-
* the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`
|
|
11
|
-
* (see create-build-context.ts in @strapi/strapi); the server
|
|
12
|
-
* same config at runtime. Changing the path requires an admin
|
|
13
|
-
* any other admin config change.
|
|
9
|
+
* cannot read server config, so the build transports the access cookie path
|
|
10
|
+
* into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`
|
|
11
|
+
* variable (see create-build-context.ts in @strapi/strapi); the server
|
|
12
|
+
* resolves the same config at runtime. Changing the path requires an admin
|
|
13
|
+
* rebuild, like any other admin config change.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
* `
|
|
15
|
+
* The callers pick the value to validate (see session-auth.ts). When
|
|
16
|
+
* `admin.auth.cookie.path` is unset, the access cookie follows the path the
|
|
17
|
+
* panel is served from (`admin.url`) and the refresh cookie follows the admin
|
|
18
|
+
* API (`/admin`), each behind any `server.url` subpath.
|
|
19
|
+
* `DEFAULT_AUTH_COOKIE_PATH` is only the fallback for a missing or invalid value.
|
|
17
20
|
*/ const DEFAULT_AUTH_COOKIE_PATH = '/admin';
|
|
18
21
|
const isValidCookiePath = (path)=>{
|
|
19
22
|
if (!path.startsWith('/')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-cookie-path.js","sources":["../../../../shared/utils/auth-cookie-path.ts"],"sourcesContent":["/**\n * Path attribute of the admin auth
|
|
1
|
+
{"version":3,"file":"auth-cookie-path.js","sources":["../../../../shared/utils/auth-cookie-path.ts"],"sourcesContent":["/**\n * Validates the Path attribute of the admin auth cookies. The path is\n * configurable through `admin.auth.cookie.path` so multiple Strapi instances\n * on the same parent domain can keep separate cookies (e.g. `/strapi-de/admin`).\n *\n * Browser-safe single source for both sides of the handoff: the admin panel\n * cannot read server config, so the build transports the access cookie path\n * into the bundle through the internal `STRAPI_ADMIN_AUTH_COOKIE_PATH`\n * variable (see create-build-context.ts in @strapi/strapi); the server\n * resolves the same config at runtime. Changing the path requires an admin\n * rebuild, like any other admin config change.\n *\n * The callers pick the value to validate (see session-auth.ts). When\n * `admin.auth.cookie.path` is unset, the access cookie follows the path the\n * panel is served from (`admin.url`) and the refresh cookie follows the admin\n * API (`/admin`), each behind any `server.url` subpath.\n * `DEFAULT_AUTH_COOKIE_PATH` is only the fallback for a missing or invalid value.\n */\nexport const DEFAULT_AUTH_COOKIE_PATH = '/admin';\n\nconst isValidCookiePath = (path: string): boolean => {\n if (!path.startsWith('/')) {\n return false;\n }\n\n // RFC 6265 path-av: any CHAR except CTLs or \";\".\n // eslint-disable-next-line no-control-regex -- CTL chars are exactly what RFC 6265 forbids\n return !/[\\x00-\\x1F\\x7F;]/.test(path);\n};\n\nexport const resolveAuthCookiePath = (\n configuredPath?: string,\n warn: (message: string) => void = console.warn\n): string => {\n const cookiePath = (configuredPath || '').trim();\n\n if (!cookiePath) {\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n if (!isValidCookiePath(cookiePath)) {\n warn(\n `Ignoring invalid admin auth cookie path \"${cookiePath}\" (must be an absolute path without \";\"); using \"${DEFAULT_AUTH_COOKIE_PATH}\" instead.`\n );\n return DEFAULT_AUTH_COOKIE_PATH;\n }\n\n return cookiePath;\n};\n"],"names":["DEFAULT_AUTH_COOKIE_PATH","isValidCookiePath","path","startsWith","test","resolveAuthCookiePath","configuredPath","warn","console","cookiePath","trim"],"mappings":";;AAAA;;;;;;;;;;;;;;;;;IAkBO,MAAMA,wBAAAA,GAA2B;AAExC,MAAMC,oBAAoB,CAACC,IAAAA,GAAAA;AACzB,IAAA,IAAI,CAACA,IAAAA,CAAKC,UAAU,CAAC,GAAA,CAAA,EAAM;QACzB,OAAO,KAAA;AACT,IAAA;;;IAIA,OAAO,CAAC,kBAAA,CAAmBC,IAAI,CAACF,IAAAA,CAAAA;AAClC,CAAA;MAEaG,qBAAAA,GAAwB,CACnCC,cAAAA,EACAC,IAAAA,GAAkCC,QAAQD,IAAI,GAAA;AAE9C,IAAA,MAAME,aAAa,CAACH,cAAAA,IAAkB,EAAC,EAAGI,IAAI,EAAA;AAE9C,IAAA,IAAI,CAACD,UAAAA,EAAY;QACf,OAAOT,wBAAAA;AACT,IAAA;IAEA,IAAI,CAACC,kBAAkBQ,UAAAA,CAAAA,EAAa;QAClCF,IAAAA,CACE,CAAC,yCAAyC,EAAEE,UAAAA,CAAW,iDAAiD,EAAET,wBAAAA,CAAyB,UAAU,CAAC,CAAA;QAEhJ,OAAOA,wBAAAA;AACT,IAAA;IAEA,OAAOS,UAAAA;AACT;;;;;"}
|