@strapi/plugin-users-permissions 0.0.0-next.f45143c5e2a8a9d85691d0abf79a3f42024a0c71 → 0.0.0-next.f5107c72369ee86a8ec1b6782f2e890925033ca3

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 (52) hide show
  1. package/admin/src/components/BoundRoute/index.js +5 -3
  2. package/admin/src/components/FormModal/Input/index.js +6 -3
  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 +6 -8
  15. package/admin/src/hooks/usePlugins.js +71 -0
  16. package/admin/src/hooks/useRolesList/index.js +22 -20
  17. package/admin/src/index.js +7 -5
  18. package/admin/src/pages/AdvancedSettings/index.js +27 -28
  19. package/admin/src/pages/AdvancedSettings/utils/api.js +2 -3
  20. package/admin/src/pages/AdvancedSettings/utils/schema.js +1 -1
  21. package/admin/src/pages/EmailTemplates/components/EmailForm.js +14 -13
  22. package/admin/src/pages/EmailTemplates/components/EmailTable.js +9 -7
  23. package/admin/src/pages/EmailTemplates/index.js +16 -17
  24. package/admin/src/pages/EmailTemplates/utils/api.js +2 -3
  25. package/admin/src/pages/EmailTemplates/utils/schema.js +1 -1
  26. package/admin/src/pages/Providers/index.js +31 -32
  27. package/admin/src/pages/Providers/utils/api.js +2 -3
  28. package/admin/src/pages/Providers/utils/forms.js +1 -1
  29. package/admin/src/pages/Roles/{CreatePage/index.js → CreatePage.js} +26 -23
  30. package/admin/src/pages/Roles/{EditPage/index.js → EditPage.js} +23 -20
  31. package/admin/src/pages/Roles/ListPage/components/TableBody.js +4 -3
  32. package/admin/src/pages/Roles/ListPage/index.js +31 -34
  33. package/admin/src/pages/Roles/ListPage/utils/api.js +3 -4
  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/translations/ru.json +50 -26
  40. package/admin/src/utils/index.js +1 -2
  41. package/documentation/content-api.yaml +23 -15
  42. package/jest.config.front.js +2 -0
  43. package/package.json +23 -26
  44. package/server/middlewares/rateLimit.js +41 -21
  45. package/server/register.js +7 -1
  46. package/server/services/providers-registry.js +1 -1
  47. package/server/strategies/users-permissions.js +1 -8
  48. package/admin/src/hooks/usePlugins/index.js +0 -67
  49. package/admin/src/hooks/usePlugins/init.js +0 -5
  50. package/admin/src/hooks/usePlugins/reducer.js +0 -34
  51. package/admin/src/pages/Roles/EditPage/utils/schema.js +0 -9
  52. package/admin/src/utils/getRequestURL.js +0 -5
@@ -1,20 +1,22 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useIntl } from 'react-intl';
2
+
4
3
  import {
4
+ Icon,
5
+ IconButton,
5
6
  Table,
6
- Thead,
7
7
  Tbody,
8
- Tr,
9
8
  Td,
10
9
  Th,
10
+ Thead,
11
+ Tr,
11
12
  Typography,
12
- IconButton,
13
- Icon,
14
13
  VisuallyHidden,
15
14
  } from '@strapi/design-system';
16
- import { Pencil, Refresh, Check } from '@strapi/icons';
17
15
  import { onRowClick, stopPropagation } from '@strapi/helper-plugin';
16
+ import { Check, Pencil, Refresh } from '@strapi/icons';
17
+ import PropTypes from 'prop-types';
18
+ import { useIntl } from 'react-intl';
19
+
18
20
  import { getTrad } from '../../../utils';
19
21
 
20
22
  const EmailTable = ({ canUpdate, onEditClick }) => {
@@ -1,25 +1,28 @@
1
- import React, { useMemo, useRef, useState } from 'react';
2
- import { useQuery, useMutation, useQueryClient } from 'react-query';
3
- import { useIntl } from 'react-intl';
1
+ import React, { useRef, useState } from 'react';
2
+
3
+ import { ContentLayout, HeaderLayout, Main, useNotifyAT } from '@strapi/design-system';
4
4
  import {
5
+ CheckPagePermissions,
6
+ LoadingIndicatorPage,
5
7
  SettingsPageTitle,
6
- useTracking,
8
+ useFocusWhenNavigate,
7
9
  useNotification,
8
10
  useOverlayBlocker,
9
- CheckPagePermissions,
10
11
  useRBAC,
11
- useFocusWhenNavigate,
12
- LoadingIndicatorPage,
12
+ useTracking,
13
13
  } from '@strapi/helper-plugin';
14
- import { useNotifyAT, Main, ContentLayout, HeaderLayout } from '@strapi/design-system';
15
- import pluginPermissions from '../../permissions';
14
+ import { useIntl } from 'react-intl';
15
+ import { useMutation, useQuery, useQueryClient } from 'react-query';
16
+
17
+ import { PERMISSIONS } from '../../constants';
16
18
  import { getTrad } from '../../utils';
17
- import { fetchData, putEmailTemplate } from './utils/api';
18
- import EmailTable from './components/EmailTable';
19
+
19
20
  import EmailForm from './components/EmailForm';
21
+ import EmailTable from './components/EmailTable';
22
+ import { fetchData, putEmailTemplate } from './utils/api';
20
23
 
21
24
  const ProtectedEmailTemplatesPage = () => (
22
- <CheckPagePermissions permissions={pluginPermissions.readEmailTemplates}>
25
+ <CheckPagePermissions permissions={PERMISSIONS.readEmailTemplates}>
23
26
  <EmailTemplatesPage />
24
27
  </CheckPagePermissions>
25
28
  );
@@ -37,14 +40,10 @@ const EmailTemplatesPage = () => {
37
40
  const [isModalOpen, setIsModalOpen] = useState(false);
38
41
  const [templateToEdit, setTemplateToEdit] = useState(null);
39
42
 
40
- const updatePermissions = useMemo(() => {
41
- return { update: pluginPermissions.updateEmailTemplates };
42
- }, []);
43
-
44
43
  const {
45
44
  isLoading: isLoadingForPermissions,
46
45
  allowedActions: { canUpdate },
47
- } = useRBAC(updatePermissions);
46
+ } = useRBAC({ update: PERMISSIONS.updateEmailTemplates });
48
47
 
49
48
  const { status: isLoadingData, data } = useQuery('email-templates', () => fetchData(), {
50
49
  onSuccess() {
@@ -1,9 +1,8 @@
1
1
  import { getFetchClient } from '@strapi/helper-plugin';
2
- import { getRequestURL } from '../../../utils';
3
2
 
4
3
  const fetchData = async () => {
5
4
  const { get } = getFetchClient();
6
- const { data } = await get(getRequestURL('email-templates'));
5
+ const { data } = await get('/users-permissions/email-templates');
7
6
 
8
7
  return data;
9
8
  };
@@ -11,7 +10,7 @@ const fetchData = async () => {
11
10
  const putEmailTemplate = (body) => {
12
11
  const { put } = getFetchClient();
13
12
 
14
- return put(getRequestURL('email-templates'), body);
13
+ return put('/users-permissions/email-templates', body);
15
14
  };
16
15
 
17
16
  export { fetchData, putEmailTemplate };
@@ -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
  const schema = yup.object().shape({
5
5
  options: yup
@@ -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();
@@ -52,14 +55,10 @@ export const ProvidersPage = () => {
52
55
  const toggleNotification = useNotification();
53
56
  const { lockApp, unlockApp } = useOverlayBlocker();
54
57
 
55
- const updatePermissions = useMemo(() => {
56
- return { update: pluginPermissions.updateProviders };
57
- }, []);
58
-
59
58
  const {
60
59
  isLoading: isLoadingForPermissions,
61
60
  allowedActions: { canUpdate },
62
- } = useRBAC(updatePermissions);
61
+ } = useRBAC({ update: PERMISSIONS.updateProviders });
63
62
 
64
63
  const {
65
64
  isLoading: isLoadingForData,
@@ -264,7 +263,7 @@ export const ProvidersPage = () => {
264
263
  };
265
264
 
266
265
  const ProtectedProvidersPage = () => (
267
- <CheckPagePermissions permissions={pluginPermissions.readProviders}>
266
+ <CheckPagePermissions permissions={PERMISSIONS.readProviders}>
268
267
  <ProvidersPage />
269
268
  </CheckPagePermissions>
270
269
  );
@@ -1,11 +1,10 @@
1
1
  import { getFetchClient } from '@strapi/helper-plugin';
2
- import { getRequestURL } from '../../../utils';
3
2
 
4
3
  // eslint-disable-next-line import/prefer-default-export
5
4
  export const fetchData = async (toggleNotification) => {
6
5
  try {
7
6
  const { get } = getFetchClient();
8
- const { data } = await get(getRequestURL('providers'));
7
+ const { data } = await get('/users-permissions/providers');
9
8
 
10
9
  return data;
11
10
  } catch (err) {
@@ -21,5 +20,5 @@ export const fetchData = async (toggleNotification) => {
21
20
  export const putProvider = (body) => {
22
21
  const { put } = getFetchClient();
23
22
 
24
- return put(getRequestURL('providers'), body);
23
+ return put('/users-permissions/providers', body);
25
24
  };
@@ -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}>
@@ -143,7 +146,7 @@ const EditPage = () => {
143
146
  </GridItem>
144
147
  <GridItem col={6}>
145
148
  <Textarea
146
- name="description"
149
+ id="description"
147
150
  value={values.description || ''}
148
151
  onChange={handleChange}
149
152
  label={formatMessage({
@@ -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}>
@@ -155,7 +158,7 @@ const EditPage = () => {
155
158
  </GridItem>
156
159
  <GridItem col={6}>
157
160
  <Textarea
158
- name="description"
161
+ id="description"
159
162
  value={values.description || ''}
160
163
  onChange={handleChange}
161
164
  label={formatMessage({
@@ -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
- import React, { useMemo, useState } from 'react';
1
+ import React, { 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';
36
+ import { useMutation, useQuery } from 'react-query';
35
37
  import { useHistory } from 'react-router-dom';
36
- import { useMutation, useQuery, useQueryClient } from 'react-query';
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();
@@ -54,26 +56,21 @@ const RoleListPage = () => {
54
56
  const [roleToDelete, setRoleToDelete] = useState();
55
57
  useFocusWhenNavigate();
56
58
 
57
- const queryClient = useQueryClient();
58
-
59
- const updatePermissions = useMemo(() => {
60
- return {
61
- create: permissions.createRole,
62
- read: permissions.readRoles,
63
- update: permissions.updateRole,
64
- delete: permissions.deleteRole,
65
- };
66
- }, []);
67
-
68
59
  const {
69
60
  isLoading: isLoadingForPermissions,
70
61
  allowedActions: { canRead, canDelete },
71
- } = useRBAC(updatePermissions);
62
+ } = useRBAC({
63
+ create: PERMISSIONS.createRole,
64
+ read: PERMISSIONS.readRoles,
65
+ update: PERMISSIONS.updateRole,
66
+ delete: PERMISSIONS.deleteRole,
67
+ });
72
68
 
73
69
  const {
74
70
  isLoading: isLoadingForData,
75
71
  data: { roles },
76
72
  isFetching,
73
+ refetch,
77
74
  } = useQuery('get-roles', () => fetchData(toggleNotification, notifyStatus), {
78
75
  initialData: {},
79
76
  enabled: canRead,
@@ -119,7 +116,7 @@ const RoleListPage = () => {
119
116
 
120
117
  const deleteMutation = useMutation((id) => deleteData(id, toggleNotification), {
121
118
  async onSuccess() {
122
- await queryClient.invalidateQueries('get-roles');
119
+ await refetch();
123
120
  },
124
121
  });
125
122
 
@@ -155,7 +152,7 @@ const RoleListPage = () => {
155
152
  defaultMessage: 'List of roles',
156
153
  })}
157
154
  primaryAction={
158
- <CheckPermissions permissions={permissions.createRole}>
155
+ <CheckPermissions permissions={PERMISSIONS.createRole}>
159
156
  <Button onClick={handleNewRoleClick} startIcon={<Plus />} size="S">
160
157
  {formatMessage({
161
158
  id: getTrad('List.button.roles'),
@@ -218,7 +215,7 @@ const RoleListPage = () => {
218
215
  <TableBody
219
216
  sortedRoles={sortedRoles}
220
217
  canDelete={canDelete}
221
- permissions={permissions}
218
+ permissions={PERMISSIONS}
222
219
  setRoleToDelete={setRoleToDelete}
223
220
  onDelete={[showConfirmDelete, setShowConfirmDelete]}
224
221
  />
@@ -1,10 +1,9 @@
1
1
  import { getFetchClient } from '@strapi/helper-plugin';
2
- import { getRequestURL } from '../../../../utils';
3
2
 
4
3
  export const fetchData = async (toggleNotification, notifyStatus) => {
5
4
  try {
6
5
  const { get } = getFetchClient();
7
- const { data } = await get(getRequestURL('roles'));
6
+ const { data } = await get('/users-permissions/roles');
8
7
  notifyStatus('The roles have loaded successfully');
9
8
 
10
9
  return data;
@@ -14,14 +13,14 @@ export const fetchData = async (toggleNotification, notifyStatus) => {
14
13
  message: { id: 'notification.error' },
15
14
  });
16
15
 
17
- throw new Error('error');
16
+ throw new Error(err);
18
17
  }
19
18
  };
20
19
 
21
20
  export const deleteData = async (id, toggleNotification) => {
22
21
  try {
23
22
  const { del } = getFetchClient();
24
- await del(`${getRequestURL('roles')}/${id}`);
23
+ await del(`/users-permissions/roles/${id}`);
25
24
  } catch (error) {
26
25
  toggleNotification({
27
26
  type: 'warning',
@@ -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`}