@strapi/admin 5.44.0 → 5.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/constants.js +49 -0
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs +49 -0
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js +4 -4
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs +4 -4
- package/dist/admin/admin/src/core/apis/router.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/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.js +48 -11
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.mjs +49 -12
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +21 -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 +21 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +33 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs +14 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/constants.js +182 -151
- package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/constants.mjs +182 -151
- package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js +17 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs +15 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +314 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs +292 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +70 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs +49 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +254 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs +231 -0
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +42 -33
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +43 -34
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +23 -12
- 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 +23 -12
- 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 +124 -35
- 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 +126 -37
- 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 +24 -9
- 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 +24 -9
- 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 +5 -3
- 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 +5 -3
- 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 +171 -36
- 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 +172 -37
- 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 +5 -3
- 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 +5 -3
- 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 +59 -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 +40 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js +89 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs +86 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js +35 -9
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs +35 -10
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -3
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -3
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/router.js +4 -4
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +1 -1
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js +85 -2
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs +80 -3
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +16 -1
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +16 -1
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +4 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +4 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +99 -21
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +99 -21
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/src/constants.d.ts +26 -0
- package/dist/admin/src/core/apis/router.d.ts +1 -1
- package/dist/admin/src/features/Tracking.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.d.ts +24 -0
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/constants.d.ts +17 -0
- package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/AdminTokens/CreateView.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.d.ts +13 -0
- package/dist/admin/src/pages/Settings/pages/AdminTokens/ListView.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +4 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +3 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +5 -0
- package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +8 -7
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.d.ts +27 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/updateValues.d.ts +8 -2
- package/dist/admin/src/services/apiTokens.d.ts +5 -2
- package/dist/admin/src/types/permissions.d.ts +1 -1
- package/dist/server/server/src/bootstrap.js +37 -5
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +37 -5
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/config/admin-actions.js +48 -0
- package/dist/server/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/server/src/config/admin-actions.mjs +48 -0
- package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/server/src/content-types/Permission.js +10 -1
- package/dist/server/server/src/content-types/Permission.js.map +1 -1
- package/dist/server/server/src/content-types/Permission.mjs +10 -1
- package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
- package/dist/server/server/src/content-types/User.js +8 -0
- package/dist/server/server/src/content-types/User.js.map +1 -1
- package/dist/server/server/src/content-types/User.mjs +8 -0
- package/dist/server/server/src/content-types/User.mjs.map +1 -1
- package/dist/server/server/src/content-types/api-token.js +27 -1
- package/dist/server/server/src/content-types/api-token.js.map +1 -1
- package/dist/server/server/src/content-types/api-token.mjs +27 -1
- package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin-token.js +194 -0
- package/dist/server/server/src/controllers/admin-token.js.map +1 -0
- package/dist/server/server/src/controllers/admin-token.mjs +192 -0
- package/dist/server/server/src/controllers/admin-token.mjs.map +1 -0
- package/dist/server/server/src/controllers/api-token.js +48 -47
- package/dist/server/server/src/controllers/api-token.js.map +1 -1
- package/dist/server/server/src/controllers/api-token.mjs +48 -47
- package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js +2 -0
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +2 -0
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js +2 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs +2 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/policies/index.js +2 -0
- package/dist/server/server/src/policies/index.js.map +1 -1
- package/dist/server/server/src/policies/index.mjs +2 -0
- package/dist/server/server/src/policies/index.mjs.map +1 -1
- package/dist/server/server/src/policies/isAdminTokensEnabled.js +16 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.js.map +1 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs +14 -0
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs.map +1 -0
- package/dist/server/server/src/register.js +4 -2
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs +4 -2
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/routes/admin-tokens.js +140 -0
- package/dist/server/server/src/routes/admin-tokens.js.map +1 -0
- package/dist/server/server/src/routes/admin-tokens.mjs +138 -0
- package/dist/server/server/src/routes/admin-tokens.mjs.map +1 -0
- package/dist/server/server/src/routes/index.js +2 -0
- package/dist/server/server/src/routes/index.js.map +1 -1
- package/dist/server/server/src/routes/index.mjs +2 -0
- package/dist/server/server/src/routes/index.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +805 -101
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +800 -101
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/constants.js +2 -0
- package/dist/server/server/src/services/constants.js.map +1 -1
- package/dist/server/server/src/services/constants.mjs +2 -0
- package/dist/server/server/src/services/constants.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/index.js +2 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +3 -2
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +6 -0
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs +6 -0
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +11 -2
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/permission/queries.mjs +12 -3
- package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +3 -0
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +3 -0
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/strategies/admin-token.js +110 -0
- package/dist/server/server/src/strategies/admin-token.js.map +1 -0
- package/dist/server/server/src/strategies/admin-token.mjs +104 -0
- package/dist/server/server/src/strategies/admin-token.mjs.map +1 -0
- package/dist/server/server/src/strategies/api-token-utils.js +56 -0
- package/dist/server/server/src/strategies/api-token-utils.js.map +1 -0
- package/dist/server/server/src/strategies/api-token-utils.mjs +52 -0
- package/dist/server/server/src/strategies/api-token-utils.mjs.map +1 -0
- package/dist/server/server/src/strategies/content-api-token.js +104 -0
- package/dist/server/server/src/strategies/content-api-token.js.map +1 -0
- package/dist/server/server/src/strategies/content-api-token.mjs +98 -0
- package/dist/server/server/src/strategies/content-api-token.mjs.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.js +28 -0
- package/dist/server/server/src/validation/admin-tokens.js.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.mjs +25 -0
- package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -0
- package/dist/server/server/src/validation/api-tokens.js +5 -2
- package/dist/server/server/src/validation/api-tokens.js.map +1 -1
- package/dist/server/server/src/validation/api-tokens.mjs +5 -2
- package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/project-settings.js +15 -16
- package/dist/server/server/src/validation/project-settings.js.map +1 -1
- package/dist/server/server/src/validation/project-settings.mjs +4 -5
- package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-actions.d.ts.map +1 -1
- package/dist/server/src/content-types/Permission.d.ts +9 -0
- package/dist/server/src/content-types/Permission.d.ts.map +1 -1
- package/dist/server/src/content-types/User.d.ts +8 -0
- package/dist/server/src/content-types/User.d.ts.map +1 -1
- package/dist/server/src/content-types/api-token.d.ts +23 -0
- package/dist/server/src/content-types/api-token.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +40 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts +12 -0
- package/dist/server/src/controllers/admin-token.d.ts.map +1 -0
- package/dist/server/src/controllers/api-token.d.ts +0 -1
- package/dist/server/src/controllers/api-token.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +9 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +56 -2
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts +5 -0
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts +7 -0
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/admin-tokens.d.ts +15 -0
- package/dist/server/src/routes/admin-tokens.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +136 -12
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +13 -11
- package/dist/server/src/services/constants.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +5 -0
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +1 -0
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +51 -0
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -0
- package/dist/server/src/strategies/api-token-utils.d.ts +13 -0
- package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -0
- package/dist/server/src/strategies/{api-token.d.ts → content-api-token.d.ts} +10 -11
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -0
- package/dist/server/src/strategies/index.d.ts +2 -1
- package/dist/server/src/strategies/index.d.ts.map +1 -1
- package/dist/server/src/validation/admin-tokens.d.ts +75 -0
- package/dist/server/src/validation/admin-tokens.d.ts.map +1 -0
- package/dist/server/src/validation/api-tokens.d.ts +4 -2
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/project-settings.d.ts +10 -10
- package/dist/server/src/validation/project-settings.d.ts.map +1 -1
- package/dist/shared/contracts/admin-token.d.ts +122 -0
- package/dist/shared/contracts/admin-token.d.ts.map +1 -0
- package/dist/shared/contracts/api-token.d.ts +6 -95
- package/dist/shared/contracts/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/content-api-token.d.ts +97 -0
- package/dist/shared/contracts/content-api-token.d.ts.map +1 -0
- package/dist/shared/contracts/shared.d.ts +1 -0
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js +0 -37
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs +0 -16
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +0 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +0 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +0 -20
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +0 -17
- package/dist/server/server/src/strategies/api-token.js +0 -144
- package/dist/server/server/src/strategies/api-token.js.map +0 -1
- package/dist/server/server/src/strategies/api-token.mjs +0 -138
- package/dist/server/server/src/strategies/api-token.mjs.map +0 -1
- package/dist/server/src/strategies/api-token.d.ts.map +0 -1
- /package/dist/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.mjs","sources":["../../../../admin/tests/server.ts"],"sourcesContent":["import { rest } from 'msw';\nimport { type SetupServer, setupServer } from 'msw/node';\n\nimport { mockData } from './mockData';\n\nexport const server: SetupServer = setupServer(\n ...[\n /**\n * TRACKING\n */\n rest.post('https://analytics.strapi.io/api/v2/track', (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n /**\n *\n * ADMIN ROLES\n *\n */\n rest.get('/admin/roles', (req, res, ctx) =>\n res(\n ctx.json({\n data: [\n {\n id: 1,\n code: 'strapi-editor',\n name: 'Editor',\n },\n {\n id: 2,\n code: 'strapi-author',\n name: 'Author',\n },\n ],\n })\n )\n ),\n\n rest.get('/admin/roles/1', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n id: 1,\n code: 'strapi-editor',\n params: {\n filters: req.url.searchParams.get('filters'),\n },\n },\n })\n )\n ),\n rest.get('/admin/roles/:id/permissions', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: 1,\n action: 'plugin::content-manager.explorer.create',\n subject: 'api::address.address',\n properties: {\n fields: ['postal_code', 'categories'],\n },\n conditions: [],\n\n params: {\n filters: req.url.searchParams.get('filters'),\n },\n },\n ],\n })\n );\n }),\n /**\n *\n * ADMIN USERS\n *\n */\n rest.get('/admin/users', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n results: [\n { id: 1, firstname: 'John', lastname: 'Doe', roles: [] },\n { id: 2, firstname: 'Kai', lastname: 'Doe', roles: [] },\n ],\n pagination: {\n page: 1,\n },\n },\n })\n );\n }),\n rest.get('/admin/users/1', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n emai: 'test@testing.com',\n roles: [\n { id: 1, code: 'strapi-editor', name: 'Editor' },\n { id: 2, code: 'strapi-super-admin', name: 'Super Admin' },\n ],\n params: {\n some: req.url.searchParams.get('some'),\n },\n },\n })\n )\n ),\n rest.get('/admin/users/me', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n email: 'michka@michka.fr',\n firstname: 'michoko',\n lastname: 'ronronscelestes',\n username: 'yolo',\n preferedLanguage: 'en',\n roles: [\n {\n id: 2,\n },\n ],\n },\n })\n );\n }),\n rest.get('/admin/users/me/permissions', (req, res, ctx) => res(ctx.json({ data: [] }))),\n /**\n *\n * ADMIN PROVIDERS\n *\n */\n rest.get('/admin/providers/isSSOLocked', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n isSSOLocked: false,\n },\n })\n );\n }),\n rest.put('/admin/providers/options', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2', '3'],\n },\n })\n )\n ),\n rest.get('/admin/providers/options', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2'],\n },\n })\n )\n ),\n /**\n *\n * ADMIN PERMISSIONS\n *\n */\n rest.get('/admin/permissions', (req, res, ctx) => {\n const role = req.url.searchParams.get('role');\n\n if (role !== '1') {\n return res(ctx.status(404));\n }\n\n return res(\n ctx.json({\n data: {\n conditions: [\n {\n id: 'admin::is-creator',\n displayName: 'Is creator',\n category: 'default',\n },\n ],\n sections: {\n settings: [\n {\n displayName: 'Access the Email Settings page',\n category: 'email',\n subCategory: 'general',\n action: 'plugin::email.settings.read',\n },\n ],\n },\n },\n })\n );\n }),\n /**\n *\n * ADMIN MISC\n *\n */\n rest.get('/admin/init', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {},\n })\n );\n }),\n rest.get('/admin/information', (req, res, ctx) =>\n res(\n ctx.json({\n autoReload: true,\n communityEdition: false,\n currentEnvironment: 'development',\n nodeVersion: 'v14.13.1',\n strapiVersion: '3.6.0',\n })\n )\n ),\n rest.get('/admin/license-limit-information', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n attribute: 1,\n\n features: [{ name: 'sso' }, { name: 'audit-logs', options: { retentionDays: 1 } }],\n },\n })\n );\n }),\n rest.get('/admin/project-settings', (req, res, ctx) => {\n return res(\n ctx.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n })\n );\n }),\n rest.post('/admin/project-settings', (req, res, ctx) => {\n return res(\n ctx.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n })\n );\n }),\n rest.get('/admin/transfer/tokens', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n })\n );\n }),\n rest.get('/admin/transfer/tokens/:id', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n })\n );\n }),\n rest.get('/admin/registration-info', async (req, res, ctx) => {\n const token = req.url.searchParams.get('registrationToken');\n\n if (token === 'error') {\n return res(ctx.status(500), ctx.json({}));\n }\n\n return res(\n ctx.json({\n data: {\n firstname: 'Token firstname',\n lastname: 'Token lastname',\n email: 'test+register-token@strapi.io',\n },\n })\n );\n }),\n rest.post('/admin/renew-token', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n token: 'renewed-test-token',\n },\n })\n );\n }),\n rest.get('/admin/guided-tour-meta', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n isFirstSuperAdminUser: false,\n completedActions: [],\n },\n })\n );\n }),\n /**\n * WEBHOOKS\n */\n rest.get('/admin/webhooks', (req, res, ctx) => {\n return res(\n ctx.json({\n data: mockData.webhooks,\n })\n );\n }),\n rest.post('/admin/webhooks/batch-delete', async (req, res, ctx) => {\n const { ids } = await req.json<{ ids: number[] }>();\n\n return res(\n ctx.json({\n data: mockData.webhooks.filter((webhook) => !ids.includes(webhook.id)),\n })\n );\n }),\n rest.put('/admin/webhooks/:id', async (req, res, ctx) => {\n const { id } = req.params;\n const { isEnabled } = await req.json<{ isEnabled: boolean }>();\n\n return res(\n ctx.json({\n data: mockData.webhooks.map((webhook) =>\n webhook.id === Number(id) ? { ...webhook, isEnabled } : webhook\n ),\n })\n );\n }),\n /**\n *\n * CONTENT_MANAGER\n *\n */\n rest.get('/content-manager/content-types', (req, res, ctx) =>\n res(\n ctx.json({\n data: [\n {\n uid: 'admin::collectionType',\n isDisplayed: true,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::collectionTypeNotDispalyed',\n isDisplayed: false,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::singleType',\n isDisplayed: true,\n kind: 'singleType',\n },\n\n {\n uid: 'admin::singleTypeNotDispalyed',\n isDisplayed: false,\n kind: 'singleType',\n },\n ],\n })\n )\n ),\n rest.get('/content-manager/components', (req, res, ctx) =>\n res(\n ctx.json({\n data: [\n {\n uid: 'basic.relation',\n isDisplayed: true,\n apiID: 'relation',\n category: 'basic',\n info: {\n displayName: 'Relation',\n },\n options: {},\n attributes: {\n id: {\n type: 'integer',\n },\n categories: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'api::category.category',\n targetModel: 'api::category.category',\n relationType: 'oneToMany',\n },\n },\n },\n ],\n })\n )\n ),\n /**\n *\n * NPS SURVEY\n *\n */\n rest.post('https://analytics.strapi.io/submit-nps', (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n /**\n * CONTENT-API (API TOKENS)\n */\n rest.get('/admin/content-api/permissions', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n 'api::address': {\n controllers: {\n address: ['find', 'findOne'],\n },\n },\n 'plugin::myplugin': {\n controllers: {\n test: ['findOne', 'find'],\n },\n },\n },\n })\n );\n }),\n rest.get('/admin/content-api/routes', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n 'api::address': [\n {\n method: 'GET',\n path: '/api/addresses',\n handler: 'api::address.address.find',\n config: {\n auth: {\n scope: ['api::address.address.find'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/addresses/:id',\n handler: 'api::address.address.findOne',\n config: {\n auth: {\n scope: ['api::address.address.findOne'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n ],\n 'plugin::myplugin': [\n {\n method: 'GET',\n path: '/api/myplugin/tests',\n handler: 'plugin::myplugin.test.find',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.find'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/myplugin/tests/:id',\n handler: 'plugin::myplugin.test.findOne',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.findOne'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n ],\n },\n })\n );\n }),\n /**\n * API TOKENS\n */\n rest.get('/admin/api-tokens', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n })\n );\n }),\n rest.get('/admin/api-tokens/:id', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n })\n );\n }),\n /**\n * Audit Logs\n */\n rest.get('/admin/audit-logs', (req, res, ctx) => {\n return res(\n ctx.json({\n results: [\n {\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n {\n id: 2,\n action: 'user.create',\n date: '2023-10-31T15:57:38.957Z',\n payload: {\n user: {\n id: 2,\n firstname: 'editor',\n lastname: 'test',\n username: null,\n email: 'editor@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-31T15:57:38.948Z',\n updatedAt: '2023-10-31T15:57:38.948Z',\n roles: [\n {\n id: 2,\n name: 'Editor',\n description:\n 'Editors can manage and publish contents including those of other users.',\n code: 'strapi-editor',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n ],\n pagination: {\n page: 1,\n pageSize: 2,\n pageCount: 1,\n total: 2,\n },\n })\n );\n }),\n rest.get('/admin/audit-logs/:id', (req, res, ctx) => {\n return res(\n ctx.json({\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n })\n );\n }),\n /**\n *\n * fetchClient, useFetchClient and getFetchClient\n *\n */\n rest.get('/use-fetch-client-test', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n results: [\n { id: 2, name: 'newest', publishedAt: null },\n { id: 1, name: 'oldest', publishedAt: null },\n ],\n pagination: { page: 1, pageCount: 10 },\n },\n })\n );\n }),\n rest.get('/test-fetch-client', (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n ]\n);\n"],"names":["server","setupServer","rest","post","req","res","ctx","status","get","json","data","id","code","name","params","filters","url","searchParams","action","subject","properties","fields","conditions","results","firstname","lastname","roles","pagination","page","emai","some","email","username","preferedLanguage","isSSOLocked","put","autoRegister","defaultRole","ssoLockedRoles","role","displayName","category","sections","settings","subCategory","autoReload","communityEdition","currentEnvironment","nodeVersion","strapiVersion","attribute","features","options","retentionDays","menuLogo","ext","height","size","width","description","type","createdAt","permissions","token","isFirstSuperAdminUser","completedActions","mockData","webhooks","ids","filter","webhook","includes","isEnabled","map","Number","uid","isDisplayed","apiID","kind","info","attributes","categories","relation","target","targetModel","relationType","controllers","address","test","method","path","handler","config","auth","scope","apiName","pluginName","date","payload","user","isActive","blocked","updatedAt","pageSize","pageCount","total","publishedAt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.mjs","sources":["../../../../admin/tests/server.ts"],"sourcesContent":["import { rest } from 'msw';\nimport { type SetupServer, setupServer } from 'msw/node';\n\nimport { mockData } from './mockData';\n\nexport const server: SetupServer = setupServer(\n ...[\n /**\n * TRACKING\n */\n rest.post('https://analytics.strapi.io/api/v2/track', (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n /**\n *\n * ADMIN ROLES\n *\n */\n rest.get('/admin/roles', (req, res, ctx) =>\n res(\n ctx.json({\n data: [\n {\n id: 1,\n code: 'strapi-editor',\n name: 'Editor',\n },\n {\n id: 2,\n code: 'strapi-author',\n name: 'Author',\n },\n ],\n })\n )\n ),\n\n rest.get('/admin/roles/1', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n id: 1,\n code: 'strapi-editor',\n params: {\n filters: req.url.searchParams.get('filters'),\n },\n },\n })\n )\n ),\n rest.get('/admin/roles/:id/permissions', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: 1,\n action: 'plugin::content-manager.explorer.create',\n subject: 'api::address.address',\n properties: {\n fields: ['postal_code', 'categories'],\n },\n conditions: [],\n\n params: {\n filters: req.url.searchParams.get('filters'),\n },\n },\n ],\n })\n );\n }),\n /**\n *\n * ADMIN USERS\n *\n */\n rest.get('/admin/users', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n results: [\n { id: 1, firstname: 'John', lastname: 'Doe', roles: [] },\n { id: 2, firstname: 'Kai', lastname: 'Doe', roles: [] },\n ],\n pagination: {\n page: 1,\n },\n },\n })\n );\n }),\n rest.get('/admin/users/1', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n emai: 'test@testing.com',\n roles: [\n { id: 1, code: 'strapi-editor', name: 'Editor' },\n { id: 2, code: 'strapi-super-admin', name: 'Super Admin' },\n ],\n params: {\n some: req.url.searchParams.get('some'),\n },\n },\n })\n )\n ),\n rest.get('/admin/users/me', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n id: 1,\n email: 'michka@michka.fr',\n firstname: 'michoko',\n lastname: 'ronronscelestes',\n username: 'yolo',\n preferedLanguage: 'en',\n roles: [\n {\n id: 2,\n },\n ],\n },\n })\n );\n }),\n rest.get('/admin/users/me/permissions', (req, res, ctx) => res(ctx.json({ data: [] }))),\n /**\n *\n * ADMIN PROVIDERS\n *\n */\n rest.get('/admin/providers/isSSOLocked', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n isSSOLocked: false,\n },\n })\n );\n }),\n rest.put('/admin/providers/options', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2', '3'],\n },\n })\n )\n ),\n rest.get('/admin/providers/options', (req, res, ctx) =>\n res(\n ctx.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2'],\n },\n })\n )\n ),\n /**\n *\n * ADMIN PERMISSIONS\n *\n */\n rest.get('/admin/permissions', (req, res, ctx) => {\n const role = req.url.searchParams.get('role');\n\n const permissionsData = {\n conditions: [\n {\n id: 'admin::is-creator',\n displayName: 'Is creator',\n category: 'default',\n },\n ],\n sections: {\n collectionTypes: {\n actions: [],\n subjects: [],\n },\n singleTypes: {\n actions: [],\n subjects: [],\n },\n plugins: [],\n settings: [\n {\n displayName: 'Access the Email Settings page',\n category: 'email',\n subCategory: 'general',\n action: 'plugin::email.settings.read',\n },\n ],\n },\n };\n\n // role === '' is used by AdminPermissions (token permission layout, no role scoping)\n if (role === '1' || role === '') {\n return res(ctx.json({ data: permissionsData }));\n }\n\n return res(ctx.status(404));\n }),\n /**\n *\n * ADMIN MISC\n *\n */\n rest.get('/admin/init', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {},\n })\n );\n }),\n rest.get('/admin/information', (req, res, ctx) =>\n res(\n ctx.json({\n autoReload: true,\n communityEdition: false,\n currentEnvironment: 'development',\n nodeVersion: 'v14.13.1',\n strapiVersion: '3.6.0',\n })\n )\n ),\n rest.get('/admin/license-limit-information', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n attribute: 1,\n\n features: [{ name: 'sso' }, { name: 'audit-logs', options: { retentionDays: 1 } }],\n },\n })\n );\n }),\n rest.get('/admin/project-settings', (req, res, ctx) => {\n return res(\n ctx.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n })\n );\n }),\n rest.post('/admin/project-settings', (req, res, ctx) => {\n return res(\n ctx.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n })\n );\n }),\n rest.get('/admin/transfer/tokens', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n })\n );\n }),\n rest.get('/admin/transfer/tokens/:id', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n })\n );\n }),\n rest.get('/admin/registration-info', async (req, res, ctx) => {\n const token = req.url.searchParams.get('registrationToken');\n\n if (token === 'error') {\n return res(ctx.status(500), ctx.json({}));\n }\n\n return res(\n ctx.json({\n data: {\n firstname: 'Token firstname',\n lastname: 'Token lastname',\n email: 'test+register-token@strapi.io',\n },\n })\n );\n }),\n rest.post('/admin/renew-token', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n token: 'renewed-test-token',\n },\n })\n );\n }),\n rest.get('/admin/guided-tour-meta', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n isFirstSuperAdminUser: false,\n completedActions: [],\n },\n })\n );\n }),\n /**\n * WEBHOOKS\n */\n rest.get('/admin/webhooks', (req, res, ctx) => {\n return res(\n ctx.json({\n data: mockData.webhooks,\n })\n );\n }),\n rest.post('/admin/webhooks/batch-delete', async (req, res, ctx) => {\n const { ids } = await req.json<{ ids: number[] }>();\n\n return res(\n ctx.json({\n data: mockData.webhooks.filter((webhook) => !ids.includes(webhook.id)),\n })\n );\n }),\n rest.put('/admin/webhooks/:id', async (req, res, ctx) => {\n const { id } = req.params;\n const { isEnabled } = await req.json<{ isEnabled: boolean }>();\n\n return res(\n ctx.json({\n data: mockData.webhooks.map((webhook) =>\n webhook.id === Number(id) ? { ...webhook, isEnabled } : webhook\n ),\n })\n );\n }),\n /**\n *\n * CONTENT_MANAGER\n *\n */\n rest.get('/content-manager/content-types', (req, res, ctx) =>\n res(\n ctx.json({\n data: [\n {\n uid: 'admin::collectionType',\n isDisplayed: true,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::collectionTypeNotDispalyed',\n isDisplayed: false,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::singleType',\n isDisplayed: true,\n kind: 'singleType',\n },\n\n {\n uid: 'admin::singleTypeNotDispalyed',\n isDisplayed: false,\n kind: 'singleType',\n },\n ],\n })\n )\n ),\n rest.get('/content-manager/components', (req, res, ctx) =>\n res(\n ctx.json({\n data: [\n {\n uid: 'basic.relation',\n isDisplayed: true,\n apiID: 'relation',\n category: 'basic',\n info: {\n displayName: 'Relation',\n },\n options: {},\n attributes: {\n id: {\n type: 'integer',\n },\n categories: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'api::category.category',\n targetModel: 'api::category.category',\n relationType: 'oneToMany',\n },\n },\n },\n ],\n })\n )\n ),\n /**\n *\n * NPS SURVEY\n *\n */\n rest.post('https://analytics.strapi.io/submit-nps', (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n /**\n * CONTENT-API (API TOKENS)\n */\n rest.get('/admin/content-api/permissions', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n 'api::address': {\n controllers: {\n address: ['find', 'findOne'],\n },\n },\n 'plugin::myplugin': {\n controllers: {\n test: ['findOne', 'find'],\n },\n },\n },\n })\n );\n }),\n rest.get('/admin/content-api/routes', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n 'api::address': [\n {\n method: 'GET',\n path: '/api/addresses',\n handler: 'api::address.address.find',\n config: {\n auth: {\n scope: ['api::address.address.find'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/addresses/:id',\n handler: 'api::address.address.findOne',\n config: {\n auth: {\n scope: ['api::address.address.findOne'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n ],\n 'plugin::myplugin': [\n {\n method: 'GET',\n path: '/api/myplugin/tests',\n handler: 'plugin::myplugin.test.find',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.find'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/myplugin/tests/:id',\n handler: 'plugin::myplugin.test.findOne',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.findOne'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n ],\n },\n })\n );\n }),\n /**\n * API TOKENS\n */\n rest.get('/admin/api-tokens', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n })\n );\n }),\n rest.get('/admin/api-tokens/:id', (req, res, ctx) => {\n const { id } = req.params;\n\n if (id === '2') {\n return res(\n ctx.json({\n data: {\n id: '2',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n })\n );\n }\n\n return res(\n ctx.json({\n data: {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n })\n );\n }),\n /**\n * ADMIN TOKENS\n */\n rest.get('/admin/admin-tokens', (req, res, ctx) => {\n return res(\n ctx.json({\n data: [\n {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n ],\n })\n );\n }),\n rest.get('/admin/admin-tokens/:id', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n })\n );\n }),\n rest.get('/admin/admin-tokens/:id/owner-permissions', (req, res, ctx) => {\n return res(ctx.json({ data: [] }));\n }),\n /**\n * Audit Logs\n */\n rest.get('/admin/audit-logs', (req, res, ctx) => {\n return res(\n ctx.json({\n results: [\n {\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n {\n id: 2,\n action: 'user.create',\n date: '2023-10-31T15:57:38.957Z',\n payload: {\n user: {\n id: 2,\n firstname: 'editor',\n lastname: 'test',\n username: null,\n email: 'editor@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-31T15:57:38.948Z',\n updatedAt: '2023-10-31T15:57:38.948Z',\n roles: [\n {\n id: 2,\n name: 'Editor',\n description:\n 'Editors can manage and publish contents including those of other users.',\n code: 'strapi-editor',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n ],\n pagination: {\n page: 1,\n pageSize: 2,\n pageCount: 1,\n total: 2,\n },\n })\n );\n }),\n rest.get('/admin/audit-logs/:id', (req, res, ctx) => {\n return res(\n ctx.json({\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n })\n );\n }),\n /**\n *\n * fetchClient, useFetchClient and getFetchClient\n *\n */\n rest.get('/use-fetch-client-test', (req, res, ctx) => {\n return res(\n ctx.json({\n data: {\n results: [\n { id: 2, name: 'newest', publishedAt: null },\n { id: 1, name: 'oldest', publishedAt: null },\n ],\n pagination: { page: 1, pageCount: 10 },\n },\n })\n );\n }),\n rest.get('/test-fetch-client', (req, res, ctx) => {\n return res(ctx.status(200));\n }),\n ]\n);\n"],"names":["server","setupServer","rest","post","req","res","ctx","status","get","json","data","id","code","name","params","filters","url","searchParams","action","subject","properties","fields","conditions","results","firstname","lastname","roles","pagination","page","emai","some","email","username","preferedLanguage","isSSOLocked","put","autoRegister","defaultRole","ssoLockedRoles","role","permissionsData","displayName","category","sections","collectionTypes","actions","subjects","singleTypes","plugins","settings","subCategory","autoReload","communityEdition","currentEnvironment","nodeVersion","strapiVersion","attribute","features","options","retentionDays","menuLogo","ext","height","size","width","description","type","createdAt","permissions","token","isFirstSuperAdminUser","completedActions","mockData","webhooks","ids","filter","webhook","includes","isEnabled","map","Number","uid","isDisplayed","apiID","kind","info","attributes","categories","relation","target","targetModel","relationType","controllers","address","test","method","path","handler","config","auth","scope","apiName","pluginName","adminPermissions","adminUserOwner","date","payload","user","isActive","blocked","updatedAt","pageSize","pageCount","total","publishedAt"],"mappings":"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"}
|
|
@@ -92,6 +92,32 @@ export declare const ADMIN_PERMISSIONS_CE: {
|
|
|
92
92
|
subject: null;
|
|
93
93
|
}[];
|
|
94
94
|
};
|
|
95
|
+
'admin-tokens': {
|
|
96
|
+
main: {
|
|
97
|
+
action: string;
|
|
98
|
+
subject: null;
|
|
99
|
+
}[];
|
|
100
|
+
create: {
|
|
101
|
+
action: string;
|
|
102
|
+
subject: null;
|
|
103
|
+
}[];
|
|
104
|
+
delete: {
|
|
105
|
+
action: string;
|
|
106
|
+
subject: null;
|
|
107
|
+
}[];
|
|
108
|
+
read: {
|
|
109
|
+
action: string;
|
|
110
|
+
subject: null;
|
|
111
|
+
}[];
|
|
112
|
+
update: {
|
|
113
|
+
action: string;
|
|
114
|
+
subject: null;
|
|
115
|
+
}[];
|
|
116
|
+
regenerate: {
|
|
117
|
+
action: string;
|
|
118
|
+
subject: null;
|
|
119
|
+
}[];
|
|
120
|
+
};
|
|
95
121
|
'api-tokens': {
|
|
96
122
|
main: {
|
|
97
123
|
action: string;
|
|
@@ -52,7 +52,7 @@ declare class Router {
|
|
|
52
52
|
*/
|
|
53
53
|
createRouter(strapi: StrapiApp, { memory, ...opts }?: RouterOptions): import("@remix-run/router").Router;
|
|
54
54
|
addMenuLink: (link: Omit<MenuItem, 'Component'> & {
|
|
55
|
-
Component
|
|
55
|
+
Component?: () => Promise<{
|
|
56
56
|
default: React.ComponentType;
|
|
57
57
|
}>;
|
|
58
58
|
}) => void;
|
|
@@ -120,7 +120,8 @@ interface WillModifyTokenEvent {
|
|
|
120
120
|
name: 'didCreateToken' | 'didEditToken';
|
|
121
121
|
properties: {
|
|
122
122
|
tokenType: TokenEvents['properties']['tokenType'];
|
|
123
|
-
|
|
123
|
+
kind?: 'admin' | 'content-api';
|
|
124
|
+
type?: 'custom' | 'full-access' | 'read-only' | Array<'push' | 'pull' | 'push-pull'>;
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
interface DeleteEntryEvents {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { FormikErrors } from 'formik';
|
|
3
|
+
import type { ApiToken, ContentApiApiToken } from '../../../../../../shared/contracts/api-token';
|
|
4
|
+
interface FormApiTokenContainerProps {
|
|
5
|
+
errors?: FormikErrors<Pick<ContentApiApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;
|
|
6
|
+
onChange: ({ target: { name, value } }: {
|
|
7
|
+
target: {
|
|
8
|
+
name: string;
|
|
9
|
+
value: string;
|
|
10
|
+
};
|
|
11
|
+
}) => void;
|
|
12
|
+
canEditInputs: boolean;
|
|
13
|
+
values?: Partial<Pick<ContentApiApiToken, 'name' | 'description' | 'lifespan' | 'type'>>;
|
|
14
|
+
isCreating: boolean;
|
|
15
|
+
apiToken?: null | Partial<ApiToken>;
|
|
16
|
+
kind: 'admin' | 'content-api';
|
|
17
|
+
onDispatch: React.Dispatch<{
|
|
18
|
+
type: any;
|
|
19
|
+
value?: unknown;
|
|
20
|
+
}>;
|
|
21
|
+
setHasChangedPermissions: (hasChanged: boolean) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare const FormApiTokenContainer: ({ errors, onChange, canEditInputs, isCreating, values, apiToken, kind, onDispatch, setHasChangedPermissions, }: FormApiTokenContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export {};
|
|
@@ -11,7 +11,8 @@ interface TableProps extends Pick<TableImpl.Props<SanitizedTransferToken | ApiTo
|
|
|
11
11
|
};
|
|
12
12
|
tokens: SanitizedTransferToken[] | ApiToken[];
|
|
13
13
|
tokenType: 'api-token' | 'transfer-token';
|
|
14
|
+
showOwner?: boolean;
|
|
14
15
|
}
|
|
15
|
-
declare const Table: ({ permissions, headers, isLoading, tokens, onConfirmDelete, tokenType, }: TableProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare const Table: ({ permissions, headers, isLoading, tokens, onConfirmDelete, tokenType, showOwner, }: TableProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
export { Table };
|
|
17
18
|
export type { TableProps };
|
|
@@ -1,2 +1,19 @@
|
|
|
1
|
+
import * as yup from 'yup';
|
|
1
2
|
export declare const API_TOKEN_TYPE = "api-token";
|
|
2
3
|
export declare const TRANSFER_TOKEN_TYPE = "transfer-token";
|
|
4
|
+
export declare const apiTokenInformationSchema: yup.default<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
5
|
+
name: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
6
|
+
type: yup.default<string | undefined, Record<string, any>, string | undefined>;
|
|
7
|
+
description: yup.default<string | null | undefined, Record<string, any>, string | null | undefined>;
|
|
8
|
+
lifespan: import("yup/lib/number").DefinedNumberSchema<number | null | undefined, Record<string, any>>;
|
|
9
|
+
}>, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
10
|
+
name: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
11
|
+
type: yup.default<string | undefined, Record<string, any>, string | undefined>;
|
|
12
|
+
description: yup.default<string | null | undefined, Record<string, any>, string | null | undefined>;
|
|
13
|
+
lifespan: import("yup/lib/number").DefinedNumberSchema<number | null | undefined, Record<string, any>>;
|
|
14
|
+
}>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
15
|
+
name: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
|
|
16
|
+
type: yup.default<string | undefined, Record<string, any>, string | undefined>;
|
|
17
|
+
description: yup.default<string | null | undefined, Record<string, any>, string | null | undefined>;
|
|
18
|
+
lifespan: import("yup/lib/number").DefinedNumberSchema<number | null | undefined, Record<string, any>>;
|
|
19
|
+
}>>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { RouteObject } from 'react-router-dom';
|
|
2
|
-
export declare const ROUTES_CE: RouteObject[];
|
|
2
|
+
export declare const ROUTES_CE: () => RouteObject[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ProtectedCreateView: () => import("react/jsx-runtime").JSX.Element;
|
package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PermissionsAPI } from '../../../Roles/components/Permissions';
|
|
3
|
+
import type { Permission } from '../../../../../../../../shared/contracts/shared';
|
|
4
|
+
import type { Data } from '@strapi/types';
|
|
5
|
+
export interface AdminPermissionsProps {
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
initialAdminPermissions: Permission[];
|
|
8
|
+
/** Undefined in create mode. */
|
|
9
|
+
tokenId?: string;
|
|
10
|
+
/** The owner's user id. Undefined in create mode, user can only create a token for themselves. */
|
|
11
|
+
ownerUserId?: Data.ID | null;
|
|
12
|
+
}
|
|
13
|
+
export declare const AdminPermissions: React.ForwardRefExoticComponent<AdminPermissionsProps & React.RefAttributes<PermissionsAPI>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Action, SubjectProperty } from '../../../../../../../shared/contracts/permissions';
|
|
2
|
-
interface CollapsePropertyMatrixProps extends Pick<ActionRowProps, 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName'> {
|
|
2
|
+
interface CollapsePropertyMatrixProps extends Pick<ActionRowProps, 'childrenForm' | 'isFormDisabled' | 'label' | 'pathToData' | 'propertyName' | 'subject'> {
|
|
3
3
|
availableActions?: Array<Action & {
|
|
4
4
|
isDisplayed: boolean;
|
|
5
5
|
}>;
|
|
@@ -9,8 +9,8 @@ interface PropertyAction {
|
|
|
9
9
|
actionId: string;
|
|
10
10
|
isActionRelatedToCurrentProperty: boolean;
|
|
11
11
|
}
|
|
12
|
-
declare const CollapsePropertyMatrix: ({ availableActions, childrenForm, isFormDisabled, label, pathToData, propertyName, }: CollapsePropertyMatrixProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
interface ActionRowProps extends Pick<SubActionRowProps, 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName'> {
|
|
12
|
+
declare const CollapsePropertyMatrix: ({ availableActions, childrenForm, isFormDisabled, label, pathToData, propertyName, subject, }: CollapsePropertyMatrixProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
interface ActionRowProps extends Pick<SubActionRowProps, 'childrenForm' | 'isFormDisabled' | 'propertyActions' | 'propertyName' | 'subject'> {
|
|
14
14
|
label: string;
|
|
15
15
|
name: string;
|
|
16
16
|
required?: boolean;
|
|
@@ -24,6 +24,7 @@ interface SubActionRowProps {
|
|
|
24
24
|
pathToDataFromActionRow: string;
|
|
25
25
|
propertyActions: PropertyAction[];
|
|
26
26
|
propertyName: string;
|
|
27
|
+
subject?: string;
|
|
27
28
|
recursiveLevel: number;
|
|
28
29
|
}
|
|
29
30
|
export { CollapsePropertyMatrix };
|
|
@@ -11,9 +11,10 @@ interface ConditionAction extends Pick<ActionRowProps, 'label'> {
|
|
|
11
11
|
interface ConditionsModalProps extends Pick<ActionRowProps, 'isFormDisabled'> {
|
|
12
12
|
actions?: Array<ConditionAction | HiddenCheckboxAction | VisibleCheckboxAction>;
|
|
13
13
|
headerBreadCrumbs?: string[];
|
|
14
|
+
isReadOnly?: boolean;
|
|
14
15
|
onClose?: () => void;
|
|
15
16
|
}
|
|
16
|
-
declare const ConditionsModal: ({ actions, headerBreadCrumbs, isFormDisabled, onClose, }: ConditionsModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare const ConditionsModal: ({ actions, headerBreadCrumbs, isFormDisabled, isReadOnly, onClose, }: ConditionsModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
interface ActionRowProps {
|
|
18
19
|
arrayOfOptionsGroupedByCategory: Array<[
|
|
19
20
|
string,
|
|
@@ -21,6 +22,7 @@ interface ActionRowProps {
|
|
|
21
22
|
]>;
|
|
22
23
|
isFormDisabled?: boolean;
|
|
23
24
|
isGrey?: boolean;
|
|
25
|
+
isReadOnly?: boolean;
|
|
24
26
|
label: string;
|
|
25
27
|
name: string;
|
|
26
28
|
onChange?: (name: string, values: Record<string, boolean>) => void;
|
|
@@ -13,6 +13,7 @@ interface CollapseProps extends Pick<RowLabelWithCheckboxProps, 'isActive' | 'is
|
|
|
13
13
|
isGrey?: boolean;
|
|
14
14
|
onClickToggle: RowLabelWithCheckboxProps['onClick'];
|
|
15
15
|
pathToData: string;
|
|
16
|
+
subject: string;
|
|
16
17
|
}
|
|
17
18
|
interface VisibleCheckboxAction {
|
|
18
19
|
actionId: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as PermissonContracts from '../../../../../../../shared/contracts/permissions';
|
|
3
3
|
import { Permission } from '../../../../../../../shared/contracts/shared';
|
|
4
|
+
import { Permission as AuthPermission } from '../../../../../features/Auth';
|
|
4
5
|
import { ConditionForm, Form } from '../utils/forms';
|
|
5
6
|
import { GenericLayout } from '../utils/layouts';
|
|
6
7
|
export interface PermissionsAPI {
|
|
@@ -15,6 +16,7 @@ interface PermissionsProps {
|
|
|
15
16
|
isFormDisabled?: boolean;
|
|
16
17
|
permissions?: Permission[];
|
|
17
18
|
layout: PermissonContracts.GetAll.Response['data'];
|
|
19
|
+
userPermissions?: AuthPermission[];
|
|
18
20
|
}
|
|
19
21
|
declare const Permissions: React.ForwardRefExoticComponent<PermissionsProps & React.RefAttributes<PermissionsAPI>>;
|
|
20
22
|
interface PermissionForms {
|
|
@@ -38,6 +40,7 @@ interface OnChangeCollectionTypeGlobalActionCheckboxAction {
|
|
|
38
40
|
collectionTypeKind: keyof PermissionForms;
|
|
39
41
|
actionId: string;
|
|
40
42
|
value: boolean;
|
|
43
|
+
userPermissions?: AuthPermission[];
|
|
41
44
|
}
|
|
42
45
|
interface OnChangeCollectionTypeRowLeftCheckboxAction {
|
|
43
46
|
type: 'ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX';
|
|
@@ -45,10 +48,12 @@ interface OnChangeCollectionTypeRowLeftCheckboxAction {
|
|
|
45
48
|
propertyName: string;
|
|
46
49
|
rowName: string;
|
|
47
50
|
value: boolean;
|
|
51
|
+
userPermissions?: AuthPermission[];
|
|
48
52
|
}
|
|
49
53
|
interface OnChangeConditionsAction {
|
|
50
54
|
type: 'ON_CHANGE_CONDITIONS';
|
|
51
55
|
conditions: Record<string, ConditionForm>;
|
|
56
|
+
userPermissions?: AuthPermission[];
|
|
52
57
|
}
|
|
53
58
|
export { Permissions };
|
|
54
59
|
export type { State, OnChangeCollectionTypeRowLeftCheckboxAction, OnChangeConditionsAction, OnChangeCollectionTypeGlobalActionCheckboxAction, };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { Condition } from '../../../../../../../shared/contracts/permissions';
|
|
3
|
+
import { Permission as AuthPermission } from '../../../../../features/Auth';
|
|
3
4
|
import type { OnChangeCollectionTypeGlobalActionCheckboxAction, OnChangeCollectionTypeRowLeftCheckboxAction, OnChangeConditionsAction, State } from '../components/Permissions';
|
|
4
5
|
export interface PermissionsDataManagerContextValue extends Pick<State, 'modifiedData'> {
|
|
5
6
|
availableConditions: Condition[];
|
|
@@ -18,12 +19,12 @@ export interface PermissionsDataManagerContextValue extends Pick<State, 'modifie
|
|
|
18
19
|
};
|
|
19
20
|
}) => void;
|
|
20
21
|
onChangeCollectionTypeGlobalActionCheckbox: (collectionTypeKind: OnChangeCollectionTypeGlobalActionCheckboxAction['collectionTypeKind'], actionId: OnChangeCollectionTypeGlobalActionCheckboxAction['actionId'], value: OnChangeCollectionTypeGlobalActionCheckboxAction['value']) => void;
|
|
22
|
+
userPermissions?: AuthPermission[];
|
|
23
|
+
checkUserHasPermission: (action: string, subject?: string | null, field?: string) => boolean;
|
|
21
24
|
}
|
|
22
|
-
declare const PermissionsDataManagerProvider: {
|
|
23
|
-
(props: PermissionsDataManagerContextValue & {
|
|
24
|
-
children: import("react").ReactNode;
|
|
25
|
-
}): JSX.Element;
|
|
26
|
-
displayName: string;
|
|
27
|
-
};
|
|
28
25
|
export declare const usePermissionsDataManager: () => PermissionsDataManagerContextValue;
|
|
26
|
+
interface PermissionsDataManagerProviderProps extends Omit<PermissionsDataManagerContextValue, 'checkUserHasPermission'> {
|
|
27
|
+
children: React.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
declare const PermissionsDataManagerProvider: ({ children, userPermissions, availableConditions, modifiedData, onChangeConditions, onChangeSimpleCheckbox, onChangeParentCheckbox, onChangeCollectionTypeLeftActionRowCheckbox, onChangeCollectionTypeGlobalActionCheckbox, }: PermissionsDataManagerProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
30
|
export { PermissionsDataManagerProvider };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for creating permission checkers used in bulk update operations.
|
|
3
|
+
* These functions encapsulate the logic for validating whether a user has permission
|
|
4
|
+
* to modify specific fields/actions during role and app token editing.
|
|
5
|
+
*/
|
|
6
|
+
import type { Permission as AuthPermission } from '../../../../../features/Auth';
|
|
7
|
+
/**
|
|
8
|
+
* Creates a permission checker function for field-level permission validation.
|
|
9
|
+
* Used in bulk update operations to filter which leaves can be modified.
|
|
10
|
+
*
|
|
11
|
+
* @param actionId - The action to check (e.g., 'plugin::content-manager.explorer.create')
|
|
12
|
+
* @param subject - The subject to check (e.g., 'api::article.article'), or null for plugins/settings
|
|
13
|
+
* @param userPermissions - Array of user permissions, or undefined for Role editing mode
|
|
14
|
+
* @returns A checker function that validates if a given path should be allowed,
|
|
15
|
+
* or undefined if in Role editing mode (no restrictions)
|
|
16
|
+
*/
|
|
17
|
+
export declare const createFieldPermissionChecker: (actionId: string, subject: string | null, userPermissions: AuthPermission[] | undefined) => ((path: string[]) => boolean) | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a permission checker for content type operations where the action ID
|
|
20
|
+
* may need to be extracted from the path itself (for content type name checkboxes).
|
|
21
|
+
*
|
|
22
|
+
* @param subject - The subject to check
|
|
23
|
+
* @param actionIdFromContext - The action ID from parent context (may be undefined)
|
|
24
|
+
* @param userPermissions - Array of user permissions, or undefined for Role editing mode
|
|
25
|
+
* @returns A checker function or undefined if in Role editing mode
|
|
26
|
+
*/
|
|
27
|
+
export declare const createDynamicActionPermissionChecker: (subject: string | null | undefined, actionIdFromContext: string | undefined, userPermissions: AuthPermission[] | undefined) => ((path: string[]) => boolean) | undefined;
|
|
@@ -4,5 +4,11 @@
|
|
|
4
4
|
* of an object.
|
|
5
5
|
* This utility is very helpful when dealing with parent<>children checkboxes
|
|
6
6
|
*/
|
|
7
|
-
declare const updateValues: (obj: object, valueToSet: boolean, isFieldUpdate?: boolean) =>
|
|
8
|
-
|
|
7
|
+
declare const updateValues: (obj: object, valueToSet: boolean, isFieldUpdate?: boolean) => Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Permission-aware version of updateValues.
|
|
10
|
+
* When permissionChecker is undefined (Role editing), behaves like updateValues.
|
|
11
|
+
* When permissionChecker is provided (Admin Token editing), filters leaf updates based on permissions.
|
|
12
|
+
*/
|
|
13
|
+
declare const updateValuesWithPermissions: (obj: object, valueToSet: boolean, permissionChecker?: (path: string[]) => boolean, currentPath?: string[], isFieldUpdate?: boolean) => Record<string, unknown>;
|
|
14
|
+
export { updateValues, updateValuesWithPermissions };
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import * as AdminToken from '../../../shared/contracts/admin-token';
|
|
1
2
|
import * as ApiToken from '../../../shared/contracts/api-token';
|
|
2
|
-
declare const useGetAPITokensQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", ApiToken.
|
|
3
|
-
|
|
3
|
+
declare const useGetAPITokensQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | {}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", ApiToken.ContentApiApiToken[], "adminApi">>, useGetAPITokenQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<import("@strapi/types/dist/data").ID, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", ApiToken.ContentApiApiToken, "adminApi">>, useCreateAPITokenMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<ApiToken.ContentApiApiTokenBody, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", ApiToken.ContentApiApiToken, "adminApi">>, useDeleteAPITokenMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<import("@strapi/types/dist/data").ID, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", ApiToken.ContentApiApiToken, "adminApi">>, useUpdateAPITokenMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<ApiToken.Update.Params & Partial<ApiToken.ContentApiApiTokenBody>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", ApiToken.ContentApiApiToken, "adminApi">>, useGetAPITokenOwnerPermissionsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", import("../../../shared/contracts/shared").Permission[], "adminApi">>, useGetAdminTokensQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", AdminToken.AdminApiToken[], "adminApi">>, useGetAdminTokenQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<import("@strapi/types/dist/data").ID, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", AdminToken.AdminApiToken, "adminApi">>, useCreateAdminTokenMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Pick<AdminToken.AdminApiToken, "description" | "name" | "lifespan"> & {
|
|
4
|
+
adminPermissions?: Omit<import("../../../shared/contracts/shared").Permission, "id" | "createdAt" | "updatedAt" | "actionParameters">[] | undefined;
|
|
5
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", AdminToken.AdminApiToken, "adminApi">>, useDeleteAdminTokenMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<import("@strapi/types/dist/data").ID, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", AdminToken.AdminApiToken, "adminApi">>, useUpdateAdminTokenMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<AdminToken.Update.Params & Partial<AdminToken.AdminTokenBody>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ApiToken", AdminToken.AdminApiToken, "adminApi">>;
|
|
6
|
+
export { useGetAPITokensQuery, useGetAPITokenQuery, useCreateAPITokenMutation, useDeleteAPITokenMutation, useUpdateAPITokenMutation, useGetAPITokenOwnerPermissionsQuery, useGetAdminTokensQuery, useGetAdminTokenQuery, useCreateAdminTokenMutation, useDeleteAdminTokenMutation, useUpdateAdminTokenMutation, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Permission } from '../features/Auth';
|
|
2
|
-
type SettingsPermissions = 'api-tokens' | 'project-settings' | 'roles' | 'transfer-tokens' | 'users' | 'webhooks';
|
|
2
|
+
type SettingsPermissions = 'admin-tokens' | 'api-tokens' | 'project-settings' | 'roles' | 'transfer-tokens' | 'users' | 'webhooks';
|
|
3
3
|
type EESettingsPermissions = 'auditLogs' | 'review-workflows' | 'sso' | 'releases';
|
|
4
4
|
type CRUDPermissions = {
|
|
5
5
|
main?: Permission[];
|
|
@@ -30,10 +30,42 @@ const registerModelHooks = ()=>{
|
|
|
30
30
|
],
|
|
31
31
|
afterCreate: sendDidChangeInterfaceLanguage,
|
|
32
32
|
afterDelete: sendDidChangeInterfaceLanguage,
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
async beforeDelete (event) {
|
|
34
|
+
// Delete all admin API tokens owned by this user before the user row is removed
|
|
35
|
+
await index.getService('api-token-admin').deleteTokensForUser(event.params.where.id);
|
|
36
|
+
},
|
|
37
|
+
async afterUpdate (event) {
|
|
38
|
+
if (event.params.data?.preferedLanguage) {
|
|
35
39
|
sendDidChangeInterfaceLanguage();
|
|
36
40
|
}
|
|
41
|
+
if (event.params.data?.roles !== undefined) {
|
|
42
|
+
// We re-sync token permissions for all owner users with their role when the user is updated
|
|
43
|
+
await index.getService('api-token-admin').syncPermissionsForUser(event.result.id);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
strapi.db.lifecycles.subscribe({
|
|
48
|
+
models: [
|
|
49
|
+
'admin::role'
|
|
50
|
+
],
|
|
51
|
+
// We re-sync token permissions for all owner users with this role when the role is deleted
|
|
52
|
+
async beforeDelete (event) {
|
|
53
|
+
const users = await strapi.db.query('admin::user').findMany({
|
|
54
|
+
where: {
|
|
55
|
+
roles: {
|
|
56
|
+
id: event.params.where.id
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
select: [
|
|
60
|
+
'id'
|
|
61
|
+
]
|
|
62
|
+
});
|
|
63
|
+
event.state.affectedUserIds = users.map((u)=>u.id);
|
|
64
|
+
},
|
|
65
|
+
async afterDelete (event) {
|
|
66
|
+
for (const userId of event.state.affectedUserIds ?? []){
|
|
67
|
+
await index.getService('api-token-admin').syncPermissionsForUser(userId);
|
|
68
|
+
}
|
|
37
69
|
}
|
|
38
70
|
});
|
|
39
71
|
};
|
|
@@ -83,9 +115,9 @@ const syncAPITokensPermissions = async ()=>{
|
|
|
83
115
|
* @sideEffects Creates new API tokens in the database if conditions are met.
|
|
84
116
|
*/ const createDefaultAPITokensIfNeeded = async ()=>{
|
|
85
117
|
const userService = index.getService('user');
|
|
86
|
-
const apiTokenService = index.getService('api-token');
|
|
118
|
+
const apiTokenService = index.getService('api-token-content-api');
|
|
87
119
|
const usersCount = await userService.count();
|
|
88
|
-
const apiTokenCount = await apiTokenService.
|
|
120
|
+
const apiTokenCount = await apiTokenService.countAll();
|
|
89
121
|
if (usersCount === 0 && apiTokenCount === 0) {
|
|
90
122
|
for (const token of constants.DEFAULT_API_TOKENS){
|
|
91
123
|
await apiTokenService.create(token);
|
|
@@ -126,7 +158,7 @@ var bootstrap = (async ({ strapi: strapi1 })=>{
|
|
|
126
158
|
const permissionService = index.getService('permission');
|
|
127
159
|
const userService = index.getService('user');
|
|
128
160
|
const roleService = index.getService('role');
|
|
129
|
-
const apiTokenService = index.getService('api-token');
|
|
161
|
+
const apiTokenService = index.getService('api-token-content-api');
|
|
130
162
|
const transferService = index.getService('transfer');
|
|
131
163
|
const tokenService = index.getService('token');
|
|
132
164
|
await roleService.createRolesIfNoneExist();
|