@strapi/plugin-users-permissions 5.0.0-beta.1 → 5.0.0-beta.3

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.
Files changed (73) hide show
  1. package/admin/src/pages/AdvancedSettings/index.jsx +4 -4
  2. package/admin/src/pages/EmailTemplates/index.jsx +3 -4
  3. package/admin/src/pages/Providers/index.jsx +3 -4
  4. package/admin/src/pages/Roles/pages/CreatePage.jsx +3 -4
  5. package/admin/src/pages/Roles/pages/EditPage.jsx +3 -4
  6. package/admin/src/pages/Roles/pages/ListPage/index.jsx +3 -4
  7. package/dist/_chunks/{index-_UNneVIg.js → index-21XWiNaI.js} +21 -37
  8. package/dist/_chunks/index-21XWiNaI.js.map +1 -0
  9. package/dist/_chunks/{index-gw-9XoIT.js → index-5Su9tV8W.js} +16 -22
  10. package/dist/_chunks/index-5Su9tV8W.js.map +1 -0
  11. package/dist/_chunks/{index-DtWla9tx.mjs → index-EfXIfij8.mjs} +9 -15
  12. package/dist/_chunks/index-EfXIfij8.mjs.map +1 -0
  13. package/dist/_chunks/{index-46oU0LRy.js → index-Ev6k_nHX.js} +11 -17
  14. package/dist/_chunks/index-Ev6k_nHX.js.map +1 -0
  15. package/dist/_chunks/{index-UxzhJuP2.js → index-I7wqiaSz.js} +13 -19
  16. package/dist/_chunks/index-I7wqiaSz.js.map +1 -0
  17. package/dist/_chunks/{index-G9pZniMC.mjs → index-J5bVMwKb.mjs} +10 -16
  18. package/dist/_chunks/index-J5bVMwKb.mjs.map +1 -0
  19. package/dist/_chunks/{index-JO4fO3Yj.js → index-RdT-49jb.js} +12 -12
  20. package/dist/_chunks/{index-JO4fO3Yj.js.map → index-RdT-49jb.js.map} +1 -1
  21. package/dist/_chunks/{index-PTS42_em.mjs → index-Yd7pX7dw.mjs} +12 -12
  22. package/dist/_chunks/{index-PTS42_em.mjs.map → index-Yd7pX7dw.mjs.map} +1 -1
  23. package/dist/_chunks/{index-Vg50EMBp.mjs → index-fIJnE26b.mjs} +14 -30
  24. package/dist/_chunks/index-fIJnE26b.mjs.map +1 -0
  25. package/dist/_chunks/index-oBxjGftZ-Zv9D3a55.js +10335 -0
  26. package/dist/_chunks/index-oBxjGftZ-Zv9D3a55.js.map +1 -0
  27. package/dist/_chunks/index-oBxjGftZ-sZD2cl-K.mjs +10311 -0
  28. package/dist/_chunks/index-oBxjGftZ-sZD2cl-K.mjs.map +1 -0
  29. package/dist/_chunks/{index-oUZpvYqS.mjs → index-oDAXPgSA.mjs} +10 -16
  30. package/dist/_chunks/index-oDAXPgSA.mjs.map +1 -0
  31. package/dist/admin/index.js +1 -1
  32. package/dist/admin/index.mjs +1 -1
  33. package/package.json +8 -8
  34. package/server/bootstrap/index.js +3 -3
  35. package/server/controllers/content-manager-user.js +4 -2
  36. package/server/services/users-permissions.js +3 -3
  37. package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs +0 -84380
  38. package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs.map +0 -1
  39. package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js +0 -84408
  40. package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js.map +0 -1
  41. package/dist/_chunks/Helmet-En-SEnNC.mjs +0 -1008
  42. package/dist/_chunks/Helmet-En-SEnNC.mjs.map +0 -1
  43. package/dist/_chunks/Helmet-d9JljxUo.js +0 -1010
  44. package/dist/_chunks/Helmet-d9JljxUo.js.map +0 -1
  45. package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js +0 -1595
  46. package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js.map +0 -1
  47. package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs +0 -1571
  48. package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs.map +0 -1
  49. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs +0 -33
  50. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs.map +0 -1
  51. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js +0 -33
  52. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js.map +0 -1
  53. package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js +0 -209
  54. package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js.map +0 -1
  55. package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs +0 -190
  56. package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs.map +0 -1
  57. package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs +0 -16568
  58. package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs.map +0 -1
  59. package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js +0 -16593
  60. package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js.map +0 -1
  61. package/dist/_chunks/index-46oU0LRy.js.map +0 -1
  62. package/dist/_chunks/index-DtWla9tx.mjs.map +0 -1
  63. package/dist/_chunks/index-G9pZniMC.mjs.map +0 -1
  64. package/dist/_chunks/index-UxzhJuP2.js.map +0 -1
  65. package/dist/_chunks/index-Vg50EMBp.mjs.map +0 -1
  66. package/dist/_chunks/index-_UNneVIg.js.map +0 -1
  67. package/dist/_chunks/index-gw-9XoIT.js.map +0 -1
  68. package/dist/_chunks/index-oUZpvYqS.mjs.map +0 -1
  69. package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js +0 -63
  70. package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js.map +0 -1
  71. package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs +0 -45
  72. package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs.map +0 -1
  73. package/dist/style.css +0 -84
@@ -1,12 +1,11 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { u as useTracking } from "./index-1NFAbkxM-Km1zKLTh.mjs";
3
+ import { u as useTracking } from "./index-oBxjGftZ-sZD2cl-K.mjs";
4
4
  import { ModalLayout, ModalHeader, ModalBody, Grid, GridItem, ModalFooter, Button, Table, Thead, Tr, Th, VisuallyHidden, Typography, Tbody, Td, Icon, IconButton, useNotifyAT, HeaderLayout, ContentLayout } from "@strapi/design-system";
5
5
  import { translatedErrors, Form, InputRenderer, Page, useNotification, useFetchClient, useAPIErrorHandler, useRBAC } from "@strapi/strapi/admin";
6
- import { H as HelmetExport } from "./Helmet-En-SEnNC.mjs";
7
6
  import { useIntl } from "react-intl";
8
7
  import { useQueryClient, useQuery, useMutation } from "react-query";
9
- import { g as getTrad, P as PERMISSIONS } from "./index-PTS42_em.mjs";
8
+ import { g as getTrad, P as PERMISSIONS } from "./index-Yd7pX7dw.mjs";
10
9
  import "lodash/isEmpty";
11
10
  import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
12
11
  import PropTypes from "prop-types";
@@ -299,20 +298,15 @@ const EmailTemplatesPage = () => {
299
298
  return /* @__PURE__ */ jsx(Page.Loading, {});
300
299
  }
301
300
  return /* @__PURE__ */ jsxs(Page.Main, { "aria-busy": submitMutation.isLoading, children: [
302
- /* @__PURE__ */ jsx(
303
- HelmetExport,
301
+ /* @__PURE__ */ jsx(Page.Title, { children: formatMessage(
302
+ { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
304
303
  {
305
- title: formatMessage(
306
- { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
307
- {
308
- name: formatMessage({
309
- id: getTrad("HeaderNav.link.emailTemplates"),
310
- defaultMessage: "Email templates"
311
- })
312
- }
313
- )
304
+ name: formatMessage({
305
+ id: getTrad("HeaderNav.link.emailTemplates"),
306
+ defaultMessage: "Email templates"
307
+ })
314
308
  }
315
- ),
309
+ ) }),
316
310
  /* @__PURE__ */ jsx(
317
311
  HeaderLayout,
318
312
  {
@@ -339,4 +333,4 @@ export {
339
333
  EmailTemplatesPage,
340
334
  ProtectedEmailTemplatesPage
341
335
  };
342
- //# sourceMappingURL=index-oUZpvYqS.mjs.map
336
+ //# sourceMappingURL=index-oDAXPgSA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-oDAXPgSA.mjs","sources":["../../admin/src/pages/EmailTemplates/utils/schema.js","../../admin/src/pages/EmailTemplates/components/EmailForm.jsx","../../admin/src/pages/EmailTemplates/components/EmailTable.jsx","../../admin/src/pages/EmailTemplates/index.jsx"],"sourcesContent":["import { translatedErrors } from '@strapi/strapi/admin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n options: yup\n .object()\n .shape({\n from: yup\n .object()\n .shape({\n name: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n email: yup.string().email(translatedErrors.email).required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n })\n .required(),\n response_email: yup.string().email(translatedErrors.email),\n object: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n message: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n })\n .required(translatedErrors.required.id),\n});\n\nexport default schema;\n","import React from 'react';\n\nimport {\n Button,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { Form, InputRenderer } from '@strapi/strapi/admin';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\nimport schema from '../utils/schema';\n\nconst EmailForm = ({ template, onToggle, onSubmit }) => {\n const { formatMessage } = useIntl();\n\n return (\n <ModalLayout\n onClose={onToggle}\n labelledBy={`${formatMessage({\n id: getTrad('PopUpForm.header.edit.email-templates'),\n defaultMessage: 'Edit email template',\n })}, ${formatMessage({ id: getTrad(template.display), defaultMessage: template.display })}`}\n >\n <ModalHeader>\n <Breadcrumbs\n label={`${formatMessage({\n id: getTrad('PopUpForm.header.edit.email-templates'),\n defaultMessage: 'Edit email template',\n })}, ${formatMessage({\n id: getTrad(template.display),\n defaultMessage: template.display,\n })}`}\n >\n <Crumb>\n {formatMessage({\n id: getTrad('PopUpForm.header.edit.email-templates'),\n defaultMessage: 'Edit email template',\n })}\n </Crumb>\n <Crumb isCurrent>\n {formatMessage({ id: getTrad(template.display), defaultMessage: template.display })}\n </Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Form onSubmit={onSubmit} initialValues={template} validationSchema={schema}>\n {({ isSubmitting }) => {\n return (\n <>\n <ModalBody>\n <Grid gap={5}>\n {[\n {\n label: formatMessage({\n id: getTrad('PopUpForm.Email.options.from.name.label'),\n defaultMessage: 'Shipper name',\n }),\n name: 'options.from.name',\n size: 6,\n type: 'string',\n },\n {\n label: formatMessage({\n id: getTrad('PopUpForm.Email.options.from.email.label'),\n defaultMessage: 'Shipper email',\n }),\n name: 'options.from.email',\n size: 6,\n type: 'string',\n },\n {\n label: formatMessage({\n id: getTrad('PopUpForm.Email.options.response_email.label'),\n defaultMessage: 'Response email',\n }),\n name: 'options.response_email',\n size: 6,\n type: 'string',\n },\n {\n label: formatMessage({\n id: getTrad('PopUpForm.Email.options.object.label'),\n defaultMessage: 'Subject',\n }),\n name: 'options.object',\n size: 6,\n type: 'string',\n },\n {\n label: formatMessage({\n id: getTrad('PopUpForm.Email.options.message.label'),\n defaultMessage: 'Message',\n }),\n name: 'options.message',\n size: 12,\n type: 'text',\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button onClick={onToggle} variant=\"tertiary\">\n Cancel\n </Button>\n }\n endActions={\n <Button loading={isSubmitting} type=\"submit\">\n Finish\n </Button>\n }\n />\n </>\n );\n }}\n </Form>\n </ModalLayout>\n );\n};\n\nEmailForm.propTypes = {\n template: PropTypes.shape({\n display: PropTypes.string,\n icon: PropTypes.string,\n options: PropTypes.shape({\n from: PropTypes.shape({\n name: PropTypes.string,\n email: PropTypes.string,\n }),\n message: PropTypes.string,\n object: PropTypes.string,\n response_email: PropTypes.string,\n }),\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onToggle: PropTypes.func.isRequired,\n};\n\nexport default EmailForm;\n","import React from 'react';\n\nimport {\n Icon,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Check, Pencil, Refresh } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nconst EmailTable = ({ canUpdate, onEditClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Table colCount={3} rowCount={3}>\n <Thead>\n <Tr>\n <Th width=\"1%\">\n <VisuallyHidden>\n {formatMessage({\n id: getTrad('Email.template.table.icon.label'),\n defaultMessage: 'icon',\n })}\n </VisuallyHidden>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('Email.template.table.name.label'),\n defaultMessage: 'name',\n })}\n </Typography>\n </Th>\n <Th width=\"1%\">\n <VisuallyHidden>\n {formatMessage({\n id: getTrad('Email.template.table.action.label'),\n defaultMessage: 'action',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n <Tr onClick={() => onEditClick('reset_password')}>\n <Td>\n <Icon>\n <Refresh\n aria-label={formatMessage({\n id: 'global.reset-password',\n defaultMessage: 'Reset password',\n })}\n />\n </Icon>\n </Td>\n <Td>\n <Typography>\n {formatMessage({\n id: 'global.reset-password',\n defaultMessage: 'Reset password',\n })}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <IconButton\n onClick={() => onEditClick('reset_password')}\n label={formatMessage({\n id: getTrad('Email.template.form.edit.label'),\n defaultMessage: 'Edit a template',\n })}\n noBorder\n icon={canUpdate && <Pencil />}\n />\n </Td>\n </Tr>\n <Tr onClick={() => onEditClick('email_confirmation')}>\n <Td>\n <Icon>\n <Check\n aria-label={formatMessage({\n id: getTrad('Email.template.email_confirmation'),\n defaultMessage: 'Email address confirmation',\n })}\n />\n </Icon>\n </Td>\n <Td>\n <Typography>\n {formatMessage({\n id: getTrad('Email.template.email_confirmation'),\n defaultMessage: 'Email address confirmation',\n })}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <IconButton\n onClick={() => onEditClick('email_confirmation')}\n label={formatMessage({\n id: getTrad('Email.template.form.edit.label'),\n defaultMessage: 'Edit a template',\n })}\n noBorder\n icon={canUpdate && <Pencil />}\n />\n </Td>\n </Tr>\n </Tbody>\n </Table>\n );\n};\n\nEmailTable.propTypes = {\n canUpdate: PropTypes.bool.isRequired,\n onEditClick: PropTypes.func.isRequired,\n};\n\nexport default EmailTable;\n","import * as React from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\nimport { ContentLayout, HeaderLayout, useNotifyAT } from '@strapi/design-system';\nimport {\n Page,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n useRBAC,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport EmailForm from './components/EmailForm';\nimport EmailTable from './components/EmailTable';\n\nconst ProtectedEmailTemplatesPage = () => (\n <Page.Protect permissions={PERMISSIONS.readEmailTemplates}>\n <EmailTemplatesPage />\n </Page.Protect>\n);\nconst EmailTemplatesPage = () => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { notifyStatus } = useNotifyAT();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const [templateToEdit, setTemplateToEdit] = React.useState(null);\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canUpdate },\n } = useRBAC({ update: PERMISSIONS.updateEmailTemplates });\n\n const { isLoading: isLoadingData, data } = useQuery(\n ['users-permissions', 'email-templates'],\n async () => {\n const { data } = await get('/users-permissions/email-templates');\n\n return data;\n },\n {\n onSuccess() {\n notifyStatus(\n formatMessage({\n id: getTrad('Email.template.data.loaded'),\n defaultMessage: 'Email templates has been loaded',\n })\n );\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n }\n );\n\n const isLoading = isLoadingForPermissions || isLoadingData;\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const handleEditClick = (template) => {\n setTemplateToEdit(template);\n handleToggle();\n };\n\n const submitMutation = useMutation(\n (body) => put('/users-permissions/email-templates', { 'email-templates': body }),\n {\n async onSuccess() {\n await queryClient.invalidateQueries(['users-permissions', 'email-templates']);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n trackUsage('didEditEmailTemplates');\n\n handleToggle();\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n }\n );\n\n const handleSubmit = (body) => {\n trackUsage('willEditEmailTemplates');\n\n const editedTemplates = { ...data, [templateToEdit]: body };\n submitMutation.mutate(editedTemplates);\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={submitMutation.isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.emailTemplates'),\n defaultMessage: 'Email templates',\n }),\n }\n )}\n </Page.Title>\n <HeaderLayout\n title={formatMessage({\n id: getTrad('HeaderNav.link.emailTemplates'),\n defaultMessage: 'Email templates',\n })}\n />\n <ContentLayout>\n <EmailTable onEditClick={handleEditClick} canUpdate={canUpdate} />\n {isModalOpen && (\n <EmailForm\n template={data[templateToEdit]}\n onToggle={handleToggle}\n onSubmit={handleSubmit}\n />\n )}\n </ContentLayout>\n </Page.Main>\n );\n};\n\nexport { ProtectedEmailTemplatesPage, EmailTemplatesPage };\n"],"names":["data"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index-JO4fO3Yj.js");
2
+ const index = require("../_chunks/index-RdT-49jb.js");
3
3
  module.exports = index.index;
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { i } from "../_chunks/index-PTS42_em.mjs";
1
+ import { i } from "../_chunks/index-Yd7pX7dw.mjs";
2
2
  export {
3
3
  i as default
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/plugin-users-permissions",
3
- "version": "5.0.0-beta.1",
3
+ "version": "5.0.0-beta.3",
4
4
  "description": "Protect your API with a full-authentication process based on JWT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,17 +46,17 @@
46
46
  "watch": "pack-up watch"
47
47
  },
48
48
  "dependencies": {
49
- "@strapi/design-system": "1.16.0",
49
+ "@strapi/design-system": "1.17.0",
50
50
  "@strapi/icons": "1.16.0",
51
- "@strapi/utils": "5.0.0-beta.1",
51
+ "@strapi/utils": "5.0.0-beta.3",
52
52
  "bcryptjs": "2.4.3",
53
53
  "formik": "2.4.5",
54
54
  "grant-koa": "5.4.8",
55
55
  "immer": "9.0.21",
56
56
  "jsonwebtoken": "9.0.0",
57
57
  "jwk-to-pem": "2.0.5",
58
- "koa": "2.13.4",
59
- "koa2-ratelimit": "^1.1.2",
58
+ "koa": "2.15.2",
59
+ "koa2-ratelimit": "^1.1.3",
60
60
  "lodash": "4.17.21",
61
61
  "prop-types": "^15.8.1",
62
62
  "purest": "4.0.2",
@@ -67,8 +67,8 @@
67
67
  "yup": "0.32.9"
68
68
  },
69
69
  "devDependencies": {
70
- "@strapi/pack-up": "5.0.0-beta.1",
71
- "@strapi/strapi": "5.0.0-beta.1",
70
+ "@strapi/pack-up": "5.0.0-beta.3",
71
+ "@strapi/strapi": "5.0.0-beta.3",
72
72
  "@testing-library/dom": "9.2.0",
73
73
  "@testing-library/react": "14.0.0",
74
74
  "@testing-library/user-event": "14.4.3",
@@ -96,5 +96,5 @@
96
96
  "required": true,
97
97
  "kind": "plugin"
98
98
  },
99
- "gitHead": "ae773621dfcbc67c49dc6fa52ac41ea5de676ecb"
99
+ "gitHead": "cff608ed925db31db7f6cb84aac4a0576f54e90c"
100
100
  }
@@ -103,9 +103,9 @@ module.exports = async ({ strapi }) => {
103
103
  await initEmails(pluginStore);
104
104
  await initAdvancedOptions(pluginStore);
105
105
 
106
- await strapi.admin.services.permission.actionProvider.registerMany(
107
- usersPermissionsActions.actions
108
- );
106
+ await strapi
107
+ .service('admin::permission')
108
+ .actionProvider.registerMany(usersPermissionsActions.actions);
109
109
 
110
110
  await getService('users-permissions').initialize();
111
111
 
@@ -25,7 +25,9 @@ const findEntityAndCheckPermissions = async (ability, action, model, id) => {
25
25
  throw new NotFoundError();
26
26
  }
27
27
 
28
- const pm = strapi.admin.services.permission.createPermissionsManager({ ability, action, model });
28
+ const pm = strapi
29
+ .service('admin::permission')
30
+ .createPermissionsManager({ ability, action, model });
29
31
 
30
32
  if (pm.ability.cannot(pm.action, pm.toSubject(doc))) {
31
33
  throw new ForbiddenError();
@@ -47,7 +49,7 @@ module.exports = {
47
49
 
48
50
  const { email, username } = body;
49
51
 
50
- const pm = strapi.admin.services.permission.createPermissionsManager({
52
+ const pm = strapi.service('admin::permission').createPermissionsManager({
51
53
  ability: userAbility,
52
54
  action: ACTIONS.create,
53
55
  model: userModel,
@@ -45,7 +45,7 @@ module.exports = ({ strapi }) => ({
45
45
  return action[Symbol.for('__type__')].includes('content-api');
46
46
  };
47
47
 
48
- _.forEach(strapi.api, (api, apiName) => {
48
+ _.forEach(strapi.apis, (api, apiName) => {
49
49
  const controllers = _.reduce(
50
50
  api.controllers,
51
51
  (acc, controller, controllerName) => {
@@ -105,7 +105,7 @@ module.exports = ({ strapi }) => ({
105
105
  async getRoutes() {
106
106
  const routesMap = {};
107
107
 
108
- _.forEach(strapi.api, (api, apiName) => {
108
+ _.forEach(strapi.apis, (api, apiName) => {
109
109
  const routes = _.flatMap(api.routes, (route) => {
110
110
  if (_.has(route, 'routes')) {
111
111
  return route.routes;
@@ -156,7 +156,7 @@ module.exports = ({ strapi }) => ({
156
156
 
157
157
  const permissionsFoundInDB = _.uniq(_.map(dbPermissions, 'action'));
158
158
 
159
- const appActions = _.flatMap(strapi.api, (api, apiName) => {
159
+ const appActions = _.flatMap(strapi.apis, (api, apiName) => {
160
160
  return _.flatMap(api.controllers, (controller, controllerName) => {
161
161
  return _.keys(controller).map((actionName) => {
162
162
  return `api::${apiName}.${controllerName}.${actionName}`;