@strapi/plugin-users-permissions 0.0.0-next.c443fb2cf1a0b330fbf8f4bf6b967c3002ccbd92 → 0.0.0-next.d1dda661d262d4773c59ee693c38542d9b0dc54c

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 (46) hide show
  1. package/admin/src/components/BoundRoute/index.js +5 -3
  2. package/admin/src/components/FormModal/Input/index.js +3 -2
  3. package/admin/src/components/FormModal/index.js +13 -10
  4. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.js +1 -1
  5. package/admin/src/components/Permissions/PermissionRow/SubCategory.js +26 -5
  6. package/admin/src/components/Permissions/PermissionRow/index.js +4 -2
  7. package/admin/src/components/Permissions/index.js +5 -2
  8. package/admin/src/components/Policies/index.js +3 -2
  9. package/admin/src/components/UsersPermissions/index.js +8 -5
  10. package/admin/src/{permissions.js → constants.js} +1 -3
  11. package/admin/src/contexts/UsersPermissionsContext/index.js +1 -0
  12. package/admin/src/hooks/index.js +1 -1
  13. package/admin/src/hooks/useFetchRole/index.js +6 -3
  14. package/admin/src/hooks/useForm/index.js +4 -1
  15. package/admin/src/hooks/usePlugins.js +71 -0
  16. package/admin/src/hooks/useRolesList/index.js +4 -1
  17. package/admin/src/index.js +7 -5
  18. package/admin/src/pages/AdvancedSettings/index.js +24 -24
  19. package/admin/src/pages/AdvancedSettings/utils/api.js +1 -0
  20. package/admin/src/pages/AdvancedSettings/utils/schema.js +1 -1
  21. package/admin/src/pages/EmailTemplates/components/EmailForm.js +13 -12
  22. package/admin/src/pages/EmailTemplates/components/EmailTable.js +9 -7
  23. package/admin/src/pages/EmailTemplates/index.js +15 -12
  24. package/admin/src/pages/EmailTemplates/utils/api.js +1 -0
  25. package/admin/src/pages/EmailTemplates/utils/schema.js +1 -1
  26. package/admin/src/pages/Providers/index.js +31 -28
  27. package/admin/src/pages/Providers/utils/api.js +1 -0
  28. package/admin/src/pages/Providers/utils/forms.js +1 -1
  29. package/admin/src/pages/Roles/{CreatePage/index.js → CreatePage.js} +25 -22
  30. package/admin/src/pages/Roles/{EditPage/index.js → EditPage.js} +22 -19
  31. package/admin/src/pages/Roles/ListPage/components/TableBody.js +4 -3
  32. package/admin/src/pages/Roles/ListPage/index.js +26 -24
  33. package/admin/src/pages/Roles/ListPage/utils/api.js +2 -1
  34. package/admin/src/pages/Roles/{ProtectedCreatePage/index.js → ProtectedCreatePage.js} +6 -3
  35. package/admin/src/pages/Roles/{ProtectedEditPage/index.js → ProtectedEditPage.js} +6 -3
  36. package/admin/src/pages/Roles/{ProtectedListPage/index.js → ProtectedListPage.js} +5 -3
  37. package/admin/src/pages/Roles/{CreatePage/utils/schema.js → constants.js} +2 -4
  38. package/admin/src/pages/Roles/index.js +9 -6
  39. package/admin/src/utils/index.js +1 -1
  40. package/jest.config.front.js +1 -0
  41. package/package.json +15 -17
  42. package/server/strategies/users-permissions.js +1 -8
  43. package/admin/src/hooks/usePlugins/index.js +0 -67
  44. package/admin/src/hooks/usePlugins/init.js +0 -5
  45. package/admin/src/hooks/usePlugins/reducer.js +0 -34
  46. package/admin/src/pages/Roles/EditPage/utils/schema.js +0 -9
@@ -1,43 +1,46 @@
1
1
  import React, { useMemo, useRef, useState } from 'react';
2
- import { useIntl } from 'react-intl';
3
- import {
4
- SettingsPageTitle,
5
- LoadingIndicatorPage,
6
- useTracking,
7
- useNotification,
8
- useOverlayBlocker,
9
- CheckPagePermissions,
10
- useRBAC,
11
- useFocusWhenNavigate,
12
- onRowClick,
13
- stopPropagation,
14
- } from '@strapi/helper-plugin';
15
- import has from 'lodash/has';
16
- import upperFirst from 'lodash/upperFirst';
2
+
17
3
  import {
4
+ ContentLayout,
18
5
  HeaderLayout,
6
+ IconButton,
19
7
  Layout,
20
- ContentLayout,
21
8
  Main,
22
- useNotifyAT,
23
9
  Table,
24
- Thead,
25
- Tr,
26
- Th,
27
10
  Tbody,
28
11
  Td,
12
+ Th,
13
+ Thead,
14
+ Tr,
29
15
  Typography,
30
- IconButton,
16
+ useNotifyAT,
31
17
  VisuallyHidden,
32
18
  } from '@strapi/design-system';
19
+ import {
20
+ CheckPagePermissions,
21
+ LoadingIndicatorPage,
22
+ onRowClick,
23
+ SettingsPageTitle,
24
+ stopPropagation,
25
+ useFocusWhenNavigate,
26
+ useNotification,
27
+ useOverlayBlocker,
28
+ useRBAC,
29
+ useTracking,
30
+ } from '@strapi/helper-plugin';
33
31
  import { Pencil } from '@strapi/icons';
34
- import { useQuery, useMutation, useQueryClient } from 'react-query';
35
- import forms from './utils/forms';
32
+ import has from 'lodash/has';
33
+ import upperFirst from 'lodash/upperFirst';
34
+ import { useIntl } from 'react-intl';
35
+ import { useMutation, useQuery, useQueryClient } from 'react-query';
36
+
37
+ import FormModal from '../../components/FormModal';
38
+ import { PERMISSIONS } from '../../constants';
39
+ import { getTrad } from '../../utils';
40
+
36
41
  import { fetchData, putProvider } from './utils/api';
37
42
  import createProvidersArray from './utils/createProvidersArray';
38
- import { getTrad } from '../../utils';
39
- import pluginPermissions from '../../permissions';
40
- import FormModal from '../../components/FormModal';
43
+ import forms from './utils/forms';
41
44
 
42
45
  export const ProvidersPage = () => {
43
46
  const { formatMessage } = useIntl();
@@ -53,7 +56,7 @@ export const ProvidersPage = () => {
53
56
  const { lockApp, unlockApp } = useOverlayBlocker();
54
57
 
55
58
  const updatePermissions = useMemo(() => {
56
- return { update: pluginPermissions.updateProviders };
59
+ return { update: PERMISSIONS.updateProviders };
57
60
  }, []);
58
61
 
59
62
  const {
@@ -264,7 +267,7 @@ export const ProvidersPage = () => {
264
267
  };
265
268
 
266
269
  const ProtectedProvidersPage = () => (
267
- <CheckPagePermissions permissions={pluginPermissions.readProviders}>
270
+ <CheckPagePermissions permissions={PERMISSIONS.readProviders}>
268
271
  <ProvidersPage />
269
272
  </CheckPagePermissions>
270
273
  );
@@ -1,4 +1,5 @@
1
1
  import { getFetchClient } from '@strapi/helper-plugin';
2
+
2
3
  import { getRequestURL } from '../../../utils';
3
4
 
4
5
  // eslint-disable-next-line import/prefer-default-export
@@ -1,5 +1,5 @@
1
- import * as yup from 'yup';
2
1
  import { translatedErrors } from '@strapi/helper-plugin';
2
+ import * as yup from 'yup';
3
3
 
4
4
  import { getTrad } from '../../../utils';
5
5
 
@@ -1,36 +1,39 @@
1
- import React, { useState, useRef } from 'react';
2
- import { useHistory } from 'react-router-dom';
1
+ import React, { useRef, useState } from 'react';
2
+
3
3
  import {
4
+ Box,
5
+ Button,
4
6
  ContentLayout,
7
+ Flex,
8
+ Grid,
9
+ GridItem,
5
10
  HeaderLayout,
6
11
  Main,
7
- Button,
8
- Flex,
9
- Box,
10
- TextInput,
11
12
  Textarea,
13
+ TextInput,
12
14
  Typography,
13
- GridItem,
14
- Grid,
15
15
  } from '@strapi/design-system';
16
- import { Check } from '@strapi/icons';
17
- import { Formik } from 'formik';
18
- import { useIntl } from 'react-intl';
19
16
  import {
20
- useOverlayBlocker,
17
+ Form,
21
18
  SettingsPageTitle,
22
19
  useFetchClient,
23
- useTracking,
24
- Form,
25
20
  useNotification,
21
+ useOverlayBlocker,
22
+ useTracking,
26
23
  } from '@strapi/helper-plugin';
27
- import UsersPermissions from '../../../components/UsersPermissions';
28
- import getTrad from '../../../utils/getTrad';
29
- import pluginId from '../../../pluginId';
30
- import { usePlugins } from '../../../hooks';
31
- import schema from './utils/schema';
24
+ import { Check } from '@strapi/icons';
25
+ import { Formik } from 'formik';
26
+ import { useIntl } from 'react-intl';
27
+ import { useHistory } from 'react-router-dom';
28
+
29
+ import UsersPermissions from '../../components/UsersPermissions';
30
+ import { usePlugins } from '../../hooks';
31
+ import pluginId from '../../pluginId';
32
+ import getTrad from '../../utils/getTrad';
33
+
34
+ import { createRoleSchema } from './constants';
32
35
 
33
- const EditPage = () => {
36
+ const CreatePage = () => {
34
37
  const { formatMessage } = useIntl();
35
38
  const [isSubmitting, setIsSubmitting] = useState(false);
36
39
  const toggleNotification = useNotification();
@@ -82,7 +85,7 @@ const EditPage = () => {
82
85
  enableReinitialize
83
86
  initialValues={{ name: '', description: '' }}
84
87
  onSubmit={handleCreateRoleSubmit}
85
- validationSchema={schema}
88
+ validationSchema={createRoleSchema}
86
89
  >
87
90
  {({ handleSubmit, values, handleChange, errors }) => (
88
91
  <Form noValidate onSubmit={handleSubmit}>
@@ -179,4 +182,4 @@ const EditPage = () => {
179
182
  );
180
183
  };
181
184
 
182
- export default EditPage;
185
+ export default CreatePage;
@@ -1,16 +1,5 @@
1
- import React, { useState, useRef } from 'react';
2
- import { Formik } from 'formik';
3
- import { useIntl } from 'react-intl';
4
- import { useRouteMatch } from 'react-router-dom';
5
- import {
6
- useFetchClient,
7
- useOverlayBlocker,
8
- SettingsPageTitle,
9
- LoadingIndicatorPage,
10
- Form,
11
- useNotification,
12
- Link,
13
- } from '@strapi/helper-plugin';
1
+ import React, { useRef, useState } from 'react';
2
+
14
3
  import {
15
4
  ContentLayout,
16
5
  HeaderLayout,
@@ -24,12 +13,26 @@ import {
24
13
  GridItem,
25
14
  Grid,
26
15
  } from '@strapi/design-system';
16
+ import {
17
+ useFetchClient,
18
+ useOverlayBlocker,
19
+ SettingsPageTitle,
20
+ LoadingIndicatorPage,
21
+ Form,
22
+ useNotification,
23
+ Link,
24
+ } from '@strapi/helper-plugin';
27
25
  import { ArrowLeft, Check } from '@strapi/icons';
28
- import UsersPermissions from '../../../components/UsersPermissions';
29
- import getTrad from '../../../utils/getTrad';
30
- import pluginId from '../../../pluginId';
31
- import { usePlugins, useFetchRole } from '../../../hooks';
32
- import schema from './utils/schema';
26
+ import { Formik } from 'formik';
27
+ import { useIntl } from 'react-intl';
28
+ import { useRouteMatch } from 'react-router-dom';
29
+
30
+ import UsersPermissions from '../../components/UsersPermissions';
31
+ import { usePlugins, useFetchRole } from '../../hooks';
32
+ import pluginId from '../../pluginId';
33
+ import getTrad from '../../utils/getTrad';
34
+
35
+ import { createRoleSchema } from './constants';
33
36
 
34
37
  const EditPage = () => {
35
38
  const { formatMessage } = useIntl();
@@ -87,7 +90,7 @@ const EditPage = () => {
87
90
  enableReinitialize
88
91
  initialValues={{ name: role.name, description: role.description }}
89
92
  onSubmit={handleEditRoleSubmit}
90
- validationSchema={schema}
93
+ validationSchema={createRoleSchema}
91
94
  >
92
95
  {({ handleSubmit, values, handleChange, errors }) => (
93
96
  <Form noValidate onSubmit={handleSubmit}>
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { IconButton, Typography, Flex, Tbody, Tr, Td } from '@strapi/design-system';
4
- import { Pencil, Trash } from '@strapi/icons';
2
+
3
+ import { Flex, IconButton, Tbody, Td, Tr, Typography } from '@strapi/design-system';
5
4
  import { CheckPermissions, onRowClick, stopPropagation } from '@strapi/helper-plugin';
5
+ import { Pencil, Trash } from '@strapi/icons';
6
+ import PropTypes from 'prop-types';
6
7
  import { useIntl } from 'react-intl';
7
8
  import { useHistory } from 'react-router-dom';
8
9
 
@@ -1,45 +1,47 @@
1
1
  import React, { useMemo, useState } from 'react';
2
+
2
3
  import {
4
+ ActionLayout,
3
5
  Button,
6
+ ContentLayout,
4
7
  HeaderLayout,
5
8
  Layout,
6
- ContentLayout,
7
- ActionLayout,
8
9
  Main,
9
10
  Table,
10
- Tr,
11
- Thead,
12
11
  Th,
12
+ Thead,
13
+ Tr,
13
14
  Typography,
14
15
  useNotifyAT,
15
16
  VisuallyHidden,
16
17
  } from '@strapi/design-system';
17
- import { Plus } from '@strapi/icons';
18
18
  import {
19
- useTracking,
20
- SettingsPageTitle,
21
19
  CheckPermissions,
22
- useNotification,
23
- useRBAC,
24
- NoPermissions,
20
+ ConfirmDialog,
21
+ EmptyStateLayout,
25
22
  LoadingIndicatorPage,
23
+ NoPermissions,
26
24
  SearchURLQuery,
25
+ SettingsPageTitle,
26
+ useCollator,
27
+ useFilter,
27
28
  useFocusWhenNavigate,
29
+ useNotification,
28
30
  useQueryParams,
29
- EmptyStateLayout,
30
- ConfirmDialog,
31
- useFilter,
32
- useCollator,
31
+ useRBAC,
32
+ useTracking,
33
33
  } from '@strapi/helper-plugin';
34
+ import { Plus } from '@strapi/icons';
34
35
  import { useIntl } from 'react-intl';
35
- import { useHistory } from 'react-router-dom';
36
36
  import { useMutation, useQuery, useQueryClient } from 'react-query';
37
+ import { useHistory } from 'react-router-dom';
37
38
 
38
- import { fetchData, deleteData } from './utils/api';
39
- import { getTrad } from '../../../utils';
39
+ import { PERMISSIONS } from '../../../constants';
40
40
  import pluginId from '../../../pluginId';
41
- import permissions from '../../../permissions';
41
+ import { getTrad } from '../../../utils';
42
+
42
43
  import TableBody from './components/TableBody';
44
+ import { deleteData, fetchData } from './utils/api';
43
45
 
44
46
  const RoleListPage = () => {
45
47
  const { trackUsage } = useTracking();
@@ -58,10 +60,10 @@ const RoleListPage = () => {
58
60
 
59
61
  const updatePermissions = useMemo(() => {
60
62
  return {
61
- create: permissions.createRole,
62
- read: permissions.readRoles,
63
- update: permissions.updateRole,
64
- delete: permissions.deleteRole,
63
+ create: PERMISSIONS.createRole,
64
+ read: PERMISSIONS.readRoles,
65
+ update: PERMISSIONS.updateRole,
66
+ delete: PERMISSIONS.deleteRole,
65
67
  };
66
68
  }, []);
67
69
 
@@ -155,7 +157,7 @@ const RoleListPage = () => {
155
157
  defaultMessage: 'List of roles',
156
158
  })}
157
159
  primaryAction={
158
- <CheckPermissions permissions={permissions.createRole}>
160
+ <CheckPermissions permissions={PERMISSIONS.createRole}>
159
161
  <Button onClick={handleNewRoleClick} startIcon={<Plus />} size="S">
160
162
  {formatMessage({
161
163
  id: getTrad('List.button.roles'),
@@ -218,7 +220,7 @@ const RoleListPage = () => {
218
220
  <TableBody
219
221
  sortedRoles={sortedRoles}
220
222
  canDelete={canDelete}
221
- permissions={permissions}
223
+ permissions={PERMISSIONS}
222
224
  setRoleToDelete={setRoleToDelete}
223
225
  onDelete={[showConfirmDelete, setShowConfirmDelete]}
224
226
  />
@@ -1,4 +1,5 @@
1
1
  import { getFetchClient } from '@strapi/helper-plugin';
2
+
2
3
  import { getRequestURL } from '../../../../utils';
3
4
 
4
5
  export const fetchData = async (toggleNotification, notifyStatus) => {
@@ -14,7 +15,7 @@ export const fetchData = async (toggleNotification, notifyStatus) => {
14
15
  message: { id: 'notification.error' },
15
16
  });
16
17
 
17
- throw new Error('error');
18
+ throw new Error(err);
18
19
  }
19
20
  };
20
21
 
@@ -1,10 +1,13 @@
1
1
  import React from 'react';
2
+
2
3
  import { CheckPagePermissions } from '@strapi/helper-plugin';
3
- import pluginPermissions from '../../../permissions';
4
- import RolesCreatePage from '../CreatePage';
4
+
5
+ import { PERMISSIONS } from '../../constants';
6
+
7
+ import RolesCreatePage from './CreatePage';
5
8
 
6
9
  const ProtectedRolesCreatePage = () => (
7
- <CheckPagePermissions permissions={pluginPermissions.createRole}>
10
+ <CheckPagePermissions permissions={PERMISSIONS.createRole}>
8
11
  <RolesCreatePage />
9
12
  </CheckPagePermissions>
10
13
  );
@@ -1,10 +1,13 @@
1
1
  import React from 'react';
2
+
2
3
  import { CheckPagePermissions } from '@strapi/helper-plugin';
3
- import pluginPermissions from '../../../permissions';
4
- import RolesEditPage from '../EditPage';
4
+
5
+ import { PERMISSIONS } from '../../constants';
6
+
7
+ import RolesEditPage from './EditPage';
5
8
 
6
9
  const ProtectedRolesEditPage = () => (
7
- <CheckPagePermissions permissions={pluginPermissions.updateRole}>
10
+ <CheckPagePermissions permissions={PERMISSIONS.updateRole}>
8
11
  <RolesEditPage />
9
12
  </CheckPagePermissions>
10
13
  );
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
+
2
3
  import { CheckPagePermissions } from '@strapi/helper-plugin';
3
- import pluginPermissions from '../../../permissions';
4
4
 
5
- import RolesListPage from '../ListPage';
5
+ import { PERMISSIONS } from '../../constants';
6
+
7
+ import RolesListPage from './ListPage';
6
8
 
7
9
  const ProtectedRolesListPage = () => {
8
10
  return (
9
- <CheckPagePermissions permissions={pluginPermissions.accessRoles}>
11
+ <CheckPagePermissions permissions={PERMISSIONS.accessRoles}>
10
12
  <RolesListPage />
11
13
  </CheckPagePermissions>
12
14
  );
@@ -1,9 +1,7 @@
1
- import * as yup from 'yup';
2
1
  import { translatedErrors } from '@strapi/helper-plugin';
2
+ import * as yup from 'yup';
3
3
 
4
- const schema = yup.object().shape({
4
+ export const createRoleSchema = yup.object().shape({
5
5
  name: yup.string().required(translatedErrors.required),
6
6
  description: yup.string().required(translatedErrors.required),
7
7
  });
8
-
9
- export default schema;
@@ -1,15 +1,18 @@
1
1
  import React from 'react';
2
- import { Switch, Route } from 'react-router-dom';
3
- import { CheckPagePermissions, AnErrorOccurred } from '@strapi/helper-plugin';
2
+
3
+ import { AnErrorOccurred, CheckPagePermissions } from '@strapi/helper-plugin';
4
+ import { Route, Switch } from 'react-router-dom';
5
+
6
+ import { PERMISSIONS } from '../../constants';
4
7
  import pluginId from '../../pluginId';
5
- import pluginPermissions from '../../permissions';
6
- import ProtectedRolesListPage from './ProtectedListPage';
7
- import ProtectedRolesEditPage from './ProtectedEditPage';
8
+
8
9
  import ProtectedRolesCreatePage from './ProtectedCreatePage';
10
+ import ProtectedRolesEditPage from './ProtectedEditPage';
11
+ import ProtectedRolesListPage from './ProtectedListPage';
9
12
 
10
13
  const Roles = () => {
11
14
  return (
12
- <CheckPagePermissions permissions={pluginPermissions.accessRoles}>
15
+ <CheckPagePermissions permissions={PERMISSIONS.accessRoles}>
13
16
  <Switch>
14
17
  <Route
15
18
  path={`/settings/${pluginId}/roles/new`}
@@ -1,4 +1,4 @@
1
1
  export { default as cleanPermissions } from './cleanPermissions';
2
+ export { default as formatPolicies } from './formatPolicies';
2
3
  export { default as getRequestURL } from './getRequestURL';
3
4
  export { default as getTrad } from './getTrad';
4
- export { default as formatPolicies } from './formatPolicies';
@@ -3,4 +3,5 @@
3
3
  module.exports = {
4
4
  preset: '../../../jest-preset.front.js',
5
5
  displayName: 'Users & Permissions plugin',
6
+ setupFilesAfterEnv: ['./tests/setup.js'],
6
7
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/plugin-users-permissions",
3
- "version": "0.0.0-next.c443fb2cf1a0b330fbf8f4bf6b967c3002ccbd92",
3
+ "version": "0.0.0-next.d1dda661d262d4773c59ee693c38542d9b0dc54c",
4
4
  "description": "Protect your API with a full-authentication process based on JWT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,10 +29,10 @@
29
29
  "lint": "run -T eslint ."
30
30
  },
31
31
  "dependencies": {
32
- "@strapi/design-system": "1.7.9",
33
- "@strapi/helper-plugin": "0.0.0-next.c443fb2cf1a0b330fbf8f4bf6b967c3002ccbd92",
34
- "@strapi/icons": "1.7.9",
35
- "@strapi/utils": "0.0.0-next.c443fb2cf1a0b330fbf8f4bf6b967c3002ccbd92",
32
+ "@strapi/design-system": "1.8.0",
33
+ "@strapi/helper-plugin": "0.0.0-next.d1dda661d262d4773c59ee693c38542d9b0dc54c",
34
+ "@strapi/icons": "1.8.0",
35
+ "@strapi/utils": "0.0.0-next.d1dda661d262d4773c59ee693c38542d9b0dc54c",
36
36
  "bcryptjs": "2.4.3",
37
37
  "formik": "2.4.0",
38
38
  "grant-koa": "5.4.8",
@@ -42,7 +42,7 @@
42
42
  "koa": "^2.13.4",
43
43
  "koa2-ratelimit": "^1.1.2",
44
44
  "lodash": "4.17.21",
45
- "prop-types": "^15.7.2",
45
+ "prop-types": "^15.8.1",
46
46
  "purest": "4.0.2",
47
47
  "react-intl": "6.4.1",
48
48
  "react-query": "3.39.3",
@@ -51,22 +51,20 @@
51
51
  "yup": "^0.32.9"
52
52
  },
53
53
  "devDependencies": {
54
- "@testing-library/dom": "8.20.0",
55
- "@testing-library/react": "12.1.4",
56
- "@testing-library/react-hooks": "8.0.1",
54
+ "@testing-library/dom": "9.2.0",
55
+ "@testing-library/react": "14.0.0",
57
56
  "@testing-library/user-event": "14.4.3",
58
- "history": "^4.9.0",
59
57
  "msw": "1.2.1",
60
- "react": "^17.0.2",
61
- "react-dom": "^17.0.2",
58
+ "react": "^18.2.0",
59
+ "react-dom": "^18.2.0",
62
60
  "react-router-dom": "5.3.4",
63
61
  "styled-components": "5.3.3"
64
62
  },
65
63
  "peerDependencies": {
66
- "react": "^17.0.2",
67
- "react-dom": "^17.0.2",
68
- "react-router-dom": "^5.3.4",
69
- "styled-components": "^5.3.3"
64
+ "react": "^17.0.0 || ^18.0.0",
65
+ "react-dom": "^17.0.0 || ^18.0.0",
66
+ "react-router-dom": "5.3.4",
67
+ "styled-components": "5.3.3"
70
68
  },
71
69
  "engines": {
72
70
  "node": ">=14.19.1 <=18.x.x",
@@ -79,5 +77,5 @@
79
77
  "required": true,
80
78
  "kind": "plugin"
81
79
  },
82
- "gitHead": "c443fb2cf1a0b330fbf8f4bf6b967c3002ccbd92"
80
+ "gitHead": "d1dda661d262d4773c59ee693c38542d9b0dc54c"
83
81
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const { castArray, map, every, pipe, isEmpty } = require('lodash/fp');
3
+ const { castArray, map, every, pipe } = require('lodash/fp');
4
4
  const { ForbiddenError, UnauthorizedError } = require('@strapi/utils').errors;
5
5
 
6
6
  const { getService } = require('../utils');
@@ -80,13 +80,6 @@ const authenticate = async (ctx) => {
80
80
  const verify = async (auth, config) => {
81
81
  const { credentials: user, ability } = auth;
82
82
 
83
- strapi.telemetry.send('didReceiveAPIRequest', {
84
- eventProperties: {
85
- authenticationMethod: auth?.strategy?.name,
86
- isAuthenticated: !isEmpty(user),
87
- },
88
- });
89
-
90
83
  if (!config.scope) {
91
84
  if (!user) {
92
85
  // A non authenticated user cannot access routes that do not have a scope
@@ -1,67 +0,0 @@
1
- import { useCallback, useEffect, useReducer } from 'react';
2
- import { useNotification, useFetchClient } from '@strapi/helper-plugin';
3
- import get from 'lodash/get';
4
- import init from './init';
5
- import pluginId from '../../pluginId';
6
- import { cleanPermissions } from '../../utils';
7
- import reducer, { initialState } from './reducer';
8
-
9
- const usePlugins = (shouldFetchData = true) => {
10
- const toggleNotification = useNotification();
11
- const [{ permissions, routes, isLoading }, dispatch] = useReducer(reducer, initialState, () =>
12
- init(initialState, shouldFetchData)
13
- );
14
- const fetchClient = useFetchClient();
15
-
16
- const fetchPlugins = useCallback(async () => {
17
- try {
18
- dispatch({
19
- type: 'GET_DATA',
20
- });
21
-
22
- const [{ permissions }, { routes }] = await Promise.all(
23
- [`/${pluginId}/permissions`, `/${pluginId}/routes`].map(async (endpoint) => {
24
- const res = await fetchClient.get(endpoint);
25
-
26
- return res.data;
27
- })
28
- );
29
-
30
- dispatch({
31
- type: 'GET_DATA_SUCCEEDED',
32
- permissions: cleanPermissions(permissions),
33
- routes,
34
- });
35
- } catch (err) {
36
- const message = get(err, ['response', 'payload', 'message'], 'An error occured');
37
-
38
- dispatch({
39
- type: 'GET_DATA_ERROR',
40
- });
41
-
42
- if (message !== 'Forbidden') {
43
- toggleNotification({
44
- type: 'warning',
45
- message,
46
- });
47
- }
48
- }
49
-
50
- // eslint-disable-next-line react-hooks/exhaustive-deps
51
- }, [toggleNotification]);
52
-
53
- useEffect(() => {
54
- if (shouldFetchData) {
55
- fetchPlugins();
56
- }
57
- }, [fetchPlugins, shouldFetchData]);
58
-
59
- return {
60
- permissions,
61
- routes,
62
- getData: fetchPlugins,
63
- isLoading,
64
- };
65
- };
66
-
67
- export default usePlugins;
@@ -1,5 +0,0 @@
1
- const init = (initialState, shouldFetchData) => {
2
- return { ...initialState, isLoading: shouldFetchData };
3
- };
4
-
5
- export default init;