@strapi/plugin-users-permissions 4.11.2 → 4.11.4

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.
@@ -1,4 +1,4 @@
1
- const pluginPermissions = {
1
+ export const PERMISSIONS = {
2
2
  // Roles
3
3
  accessRoles: [
4
4
  { action: 'plugin::users-permissions.roles.create', subject: null },
@@ -27,5 +27,3 @@ const pluginPermissions = {
27
27
  readProviders: [{ action: 'plugin::users-permissions.providers.read', subject: null }],
28
28
  updateProviders: [{ action: 'plugin::users-permissions.providers.update', subject: null }],
29
29
  };
30
-
31
- export default pluginPermissions;
@@ -8,7 +8,7 @@ import { prefixPluginTranslations } from '@strapi/helper-plugin';
8
8
 
9
9
  import pluginPkg from '../../package.json';
10
10
 
11
- import pluginPermissions from './permissions';
11
+ import { PERMISSIONS } from './constants';
12
12
  import pluginId from './pluginId';
13
13
  import getTrad from './utils/getTrad';
14
14
 
@@ -40,7 +40,7 @@ export default {
40
40
 
41
41
  return component;
42
42
  },
43
- permissions: pluginPermissions.accessRoles,
43
+ permissions: PERMISSIONS.accessRoles,
44
44
  },
45
45
  {
46
46
  intlLabel: {
@@ -56,7 +56,7 @@ export default {
56
56
 
57
57
  return component;
58
58
  },
59
- permissions: pluginPermissions.readProviders,
59
+ permissions: PERMISSIONS.readProviders,
60
60
  },
61
61
  {
62
62
  intlLabel: {
@@ -72,7 +72,7 @@ export default {
72
72
 
73
73
  return component;
74
74
  },
75
- permissions: pluginPermissions.readEmailTemplates,
75
+ permissions: PERMISSIONS.readEmailTemplates,
76
76
  },
77
77
  {
78
78
  intlLabel: {
@@ -88,7 +88,7 @@ export default {
88
88
 
89
89
  return component;
90
90
  },
91
- permissions: pluginPermissions.readAdvancedSettings,
91
+ permissions: PERMISSIONS.readAdvancedSettings,
92
92
  },
93
93
  ]
94
94
  );
@@ -1,4 +1,4 @@
1
- import React, { useMemo } from 'react';
1
+ import React from 'react';
2
2
 
3
3
  import {
4
4
  Box,
@@ -30,7 +30,7 @@ import { Formik } from 'formik';
30
30
  import { useIntl } from 'react-intl';
31
31
  import { useMutation, useQuery, useQueryClient } from 'react-query';
32
32
 
33
- import pluginPermissions from '../../permissions';
33
+ import { PERMISSIONS } from '../../constants';
34
34
  import { getTrad } from '../../utils';
35
35
 
36
36
  import { fetchData, putAdvancedSettings } from './utils/api';
@@ -38,7 +38,7 @@ import layout from './utils/layout';
38
38
  import schema from './utils/schema';
39
39
 
40
40
  const ProtectedAdvancedSettingsPage = () => (
41
- <CheckPagePermissions permissions={pluginPermissions.readAdvancedSettings}>
41
+ <CheckPagePermissions permissions={PERMISSIONS.readAdvancedSettings}>
42
42
  <AdvancedSettingsPage />
43
43
  </CheckPagePermissions>
44
44
  );
@@ -51,14 +51,10 @@ const AdvancedSettingsPage = () => {
51
51
  const queryClient = useQueryClient();
52
52
  useFocusWhenNavigate();
53
53
 
54
- const updatePermissions = useMemo(
55
- () => ({ update: pluginPermissions.updateAdvancedSettings }),
56
- []
57
- );
58
54
  const {
59
55
  isLoading: isLoadingForPermissions,
60
56
  allowedActions: { canUpdate },
61
- } = useRBAC(updatePermissions);
57
+ } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });
62
58
 
63
59
  const { status: isLoadingData, data } = useQuery('advanced', () => fetchData(), {
64
60
  onSuccess() {
@@ -146,7 +142,7 @@ const AdvancedSettingsPage = () => {
146
142
  validationSchema={schema}
147
143
  enableReinitialize
148
144
  >
149
- {({ errors, values, handleChange, isSubmitting }) => {
145
+ {({ errors, values, handleChange, isSubmitting, dirty }) => {
150
146
  return (
151
147
  <Form>
152
148
  <HeaderLayout
@@ -158,7 +154,7 @@ const AdvancedSettingsPage = () => {
158
154
  <Button
159
155
  loading={isSubmitting}
160
156
  type="submit"
161
- disabled={!canUpdate}
157
+ disabled={canUpdate ? !dirty : !canUpdate}
162
158
  startIcon={<Check />}
163
159
  size="S"
164
160
  >
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useRef, useState } from 'react';
1
+ import React, { useRef, useState } from 'react';
2
2
 
3
3
  import { ContentLayout, HeaderLayout, Main, useNotifyAT } from '@strapi/design-system';
4
4
  import {
@@ -14,7 +14,7 @@ import {
14
14
  import { useIntl } from 'react-intl';
15
15
  import { useMutation, useQuery, useQueryClient } from 'react-query';
16
16
 
17
- import pluginPermissions from '../../permissions';
17
+ import { PERMISSIONS } from '../../constants';
18
18
  import { getTrad } from '../../utils';
19
19
 
20
20
  import EmailForm from './components/EmailForm';
@@ -22,7 +22,7 @@ import EmailTable from './components/EmailTable';
22
22
  import { fetchData, putEmailTemplate } from './utils/api';
23
23
 
24
24
  const ProtectedEmailTemplatesPage = () => (
25
- <CheckPagePermissions permissions={pluginPermissions.readEmailTemplates}>
25
+ <CheckPagePermissions permissions={PERMISSIONS.readEmailTemplates}>
26
26
  <EmailTemplatesPage />
27
27
  </CheckPagePermissions>
28
28
  );
@@ -40,14 +40,10 @@ const EmailTemplatesPage = () => {
40
40
  const [isModalOpen, setIsModalOpen] = useState(false);
41
41
  const [templateToEdit, setTemplateToEdit] = useState(null);
42
42
 
43
- const updatePermissions = useMemo(() => {
44
- return { update: pluginPermissions.updateEmailTemplates };
45
- }, []);
46
-
47
43
  const {
48
44
  isLoading: isLoadingForPermissions,
49
45
  allowedActions: { canUpdate },
50
- } = useRBAC(updatePermissions);
46
+ } = useRBAC({ update: PERMISSIONS.updateEmailTemplates });
51
47
 
52
48
  const { status: isLoadingData, data } = useQuery('email-templates', () => fetchData(), {
53
49
  onSuccess() {
@@ -35,7 +35,7 @@ import { useIntl } from 'react-intl';
35
35
  import { useMutation, useQuery, useQueryClient } from 'react-query';
36
36
 
37
37
  import FormModal from '../../components/FormModal';
38
- import pluginPermissions from '../../permissions';
38
+ import { PERMISSIONS } from '../../constants';
39
39
  import { getTrad } from '../../utils';
40
40
 
41
41
  import { fetchData, putProvider } from './utils/api';
@@ -55,14 +55,10 @@ export const ProvidersPage = () => {
55
55
  const toggleNotification = useNotification();
56
56
  const { lockApp, unlockApp } = useOverlayBlocker();
57
57
 
58
- const updatePermissions = useMemo(() => {
59
- return { update: pluginPermissions.updateProviders };
60
- }, []);
61
-
62
58
  const {
63
59
  isLoading: isLoadingForPermissions,
64
60
  allowedActions: { canUpdate },
65
- } = useRBAC(updatePermissions);
61
+ } = useRBAC({ update: PERMISSIONS.updateProviders });
66
62
 
67
63
  const {
68
64
  isLoading: isLoadingForData,
@@ -267,7 +263,7 @@ export const ProvidersPage = () => {
267
263
  };
268
264
 
269
265
  const ProtectedProvidersPage = () => (
270
- <CheckPagePermissions permissions={pluginPermissions.readProviders}>
266
+ <CheckPagePermissions permissions={PERMISSIONS.readProviders}>
271
267
  <ProvidersPage />
272
268
  </CheckPagePermissions>
273
269
  );
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState } from 'react';
1
+ import React, { useState } from 'react';
2
2
 
3
3
  import {
4
4
  ActionLayout,
@@ -33,10 +33,10 @@ import {
33
33
  } from '@strapi/helper-plugin';
34
34
  import { Plus } from '@strapi/icons';
35
35
  import { useIntl } from 'react-intl';
36
- import { useMutation, useQuery, useQueryClient } from 'react-query';
36
+ import { useMutation, useQuery } from 'react-query';
37
37
  import { useHistory } from 'react-router-dom';
38
38
 
39
- import permissions from '../../../permissions';
39
+ import { PERMISSIONS } from '../../../constants';
40
40
  import pluginId from '../../../pluginId';
41
41
  import { getTrad } from '../../../utils';
42
42
 
@@ -56,26 +56,21 @@ const RoleListPage = () => {
56
56
  const [roleToDelete, setRoleToDelete] = useState();
57
57
  useFocusWhenNavigate();
58
58
 
59
- const queryClient = useQueryClient();
60
-
61
- const updatePermissions = useMemo(() => {
62
- return {
63
- create: permissions.createRole,
64
- read: permissions.readRoles,
65
- update: permissions.updateRole,
66
- delete: permissions.deleteRole,
67
- };
68
- }, []);
69
-
70
59
  const {
71
60
  isLoading: isLoadingForPermissions,
72
61
  allowedActions: { canRead, canDelete },
73
- } = useRBAC(updatePermissions);
62
+ } = useRBAC({
63
+ create: PERMISSIONS.createRole,
64
+ read: PERMISSIONS.readRoles,
65
+ update: PERMISSIONS.updateRole,
66
+ delete: PERMISSIONS.deleteRole,
67
+ });
74
68
 
75
69
  const {
76
70
  isLoading: isLoadingForData,
77
71
  data: { roles },
78
72
  isFetching,
73
+ refetch,
79
74
  } = useQuery('get-roles', () => fetchData(toggleNotification, notifyStatus), {
80
75
  initialData: {},
81
76
  enabled: canRead,
@@ -121,7 +116,7 @@ const RoleListPage = () => {
121
116
 
122
117
  const deleteMutation = useMutation((id) => deleteData(id, toggleNotification), {
123
118
  async onSuccess() {
124
- await queryClient.invalidateQueries('get-roles');
119
+ await refetch();
125
120
  },
126
121
  });
127
122
 
@@ -157,7 +152,7 @@ const RoleListPage = () => {
157
152
  defaultMessage: 'List of roles',
158
153
  })}
159
154
  primaryAction={
160
- <CheckPermissions permissions={permissions.createRole}>
155
+ <CheckPermissions permissions={PERMISSIONS.createRole}>
161
156
  <Button onClick={handleNewRoleClick} startIcon={<Plus />} size="S">
162
157
  {formatMessage({
163
158
  id: getTrad('List.button.roles'),
@@ -220,7 +215,7 @@ const RoleListPage = () => {
220
215
  <TableBody
221
216
  sortedRoles={sortedRoles}
222
217
  canDelete={canDelete}
223
- permissions={permissions}
218
+ permissions={PERMISSIONS}
224
219
  setRoleToDelete={setRoleToDelete}
225
220
  onDelete={[showConfirmDelete, setShowConfirmDelete]}
226
221
  />
@@ -2,12 +2,12 @@ import React from 'react';
2
2
 
3
3
  import { CheckPagePermissions } from '@strapi/helper-plugin';
4
4
 
5
- import pluginPermissions from '../../permissions';
5
+ import { PERMISSIONS } from '../../constants';
6
6
 
7
7
  import RolesCreatePage from './CreatePage';
8
8
 
9
9
  const ProtectedRolesCreatePage = () => (
10
- <CheckPagePermissions permissions={pluginPermissions.createRole}>
10
+ <CheckPagePermissions permissions={PERMISSIONS.createRole}>
11
11
  <RolesCreatePage />
12
12
  </CheckPagePermissions>
13
13
  );
@@ -2,12 +2,12 @@ import React from 'react';
2
2
 
3
3
  import { CheckPagePermissions } from '@strapi/helper-plugin';
4
4
 
5
- import pluginPermissions from '../../permissions';
5
+ import { PERMISSIONS } from '../../constants';
6
6
 
7
7
  import RolesEditPage from './EditPage';
8
8
 
9
9
  const ProtectedRolesEditPage = () => (
10
- <CheckPagePermissions permissions={pluginPermissions.updateRole}>
10
+ <CheckPagePermissions permissions={PERMISSIONS.updateRole}>
11
11
  <RolesEditPage />
12
12
  </CheckPagePermissions>
13
13
  );
@@ -2,13 +2,13 @@ import React from 'react';
2
2
 
3
3
  import { CheckPagePermissions } from '@strapi/helper-plugin';
4
4
 
5
- import pluginPermissions from '../../permissions';
5
+ import { PERMISSIONS } from '../../constants';
6
6
 
7
7
  import RolesListPage from './ListPage';
8
8
 
9
9
  const ProtectedRolesListPage = () => {
10
10
  return (
11
- <CheckPagePermissions permissions={pluginPermissions.accessRoles}>
11
+ <CheckPagePermissions permissions={PERMISSIONS.accessRoles}>
12
12
  <RolesListPage />
13
13
  </CheckPagePermissions>
14
14
  );
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { AnErrorOccurred, CheckPagePermissions } from '@strapi/helper-plugin';
4
4
  import { Route, Switch } from 'react-router-dom';
5
5
 
6
- import pluginPermissions from '../../permissions';
6
+ import { PERMISSIONS } from '../../constants';
7
7
  import pluginId from '../../pluginId';
8
8
 
9
9
  import ProtectedRolesCreatePage from './ProtectedCreatePage';
@@ -12,7 +12,7 @@ import ProtectedRolesListPage from './ProtectedListPage';
12
12
 
13
13
  const Roles = () => {
14
14
  return (
15
- <CheckPagePermissions permissions={pluginPermissions.accessRoles}>
15
+ <CheckPagePermissions permissions={PERMISSIONS.accessRoles}>
16
16
  <Switch>
17
17
  <Route
18
18
  path={`/settings/${pluginId}/roles/new`}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/plugin-users-permissions",
3
- "version": "4.11.2",
3
+ "version": "4.11.4",
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.8.0",
33
- "@strapi/helper-plugin": "4.11.2",
34
- "@strapi/icons": "1.8.0",
35
- "@strapi/utils": "4.11.2",
32
+ "@strapi/design-system": "1.8.1",
33
+ "@strapi/helper-plugin": "4.11.4",
34
+ "@strapi/icons": "1.8.1",
35
+ "@strapi/utils": "4.11.4",
36
36
  "bcryptjs": "2.4.3",
37
37
  "formik": "2.4.0",
38
38
  "grant-koa": "5.4.8",
@@ -77,5 +77,5 @@
77
77
  "required": true,
78
78
  "kind": "plugin"
79
79
  },
80
- "gitHead": "6f7c815c2bbe41dda7d77136eb8df736c028ff67"
80
+ "gitHead": "8d325a695386ab9b578b360bf768cfa25173050f"
81
81
  }