@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.
- package/admin/src/{permissions.js → constants.js} +1 -3
- package/admin/src/index.js +5 -5
- package/admin/src/pages/AdvancedSettings/index.js +6 -10
- package/admin/src/pages/EmailTemplates/index.js +4 -8
- package/admin/src/pages/Providers/index.js +3 -7
- package/admin/src/pages/Roles/ListPage/index.js +13 -18
- package/admin/src/pages/Roles/ProtectedCreatePage.js +2 -2
- package/admin/src/pages/Roles/ProtectedEditPage.js +2 -2
- package/admin/src/pages/Roles/ProtectedListPage.js +2 -2
- package/admin/src/pages/Roles/index.js +2 -2
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
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;
|
package/admin/src/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { prefixPluginTranslations } from '@strapi/helper-plugin';
|
|
|
8
8
|
|
|
9
9
|
import pluginPkg from '../../package.json';
|
|
10
10
|
|
|
11
|
-
import
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
91
|
+
permissions: PERMISSIONS.readAdvancedSettings,
|
|
92
92
|
},
|
|
93
93
|
]
|
|
94
94
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import 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
|
|
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={
|
|
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(
|
|
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, {
|
|
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
|
|
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={
|
|
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(
|
|
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
|
|
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(
|
|
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={
|
|
266
|
+
<CheckPagePermissions permissions={PERMISSIONS.readProviders}>
|
|
271
267
|
<ProvidersPage />
|
|
272
268
|
</CheckPagePermissions>
|
|
273
269
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import 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
|
|
36
|
+
import { useMutation, useQuery } from 'react-query';
|
|
37
37
|
import { useHistory } from 'react-router-dom';
|
|
38
38
|
|
|
39
|
-
import
|
|
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(
|
|
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
|
|
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={
|
|
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={
|
|
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
|
|
5
|
+
import { PERMISSIONS } from '../../constants';
|
|
6
6
|
|
|
7
7
|
import RolesCreatePage from './CreatePage';
|
|
8
8
|
|
|
9
9
|
const ProtectedRolesCreatePage = () => (
|
|
10
|
-
<CheckPagePermissions permissions={
|
|
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
|
|
5
|
+
import { PERMISSIONS } from '../../constants';
|
|
6
6
|
|
|
7
7
|
import RolesEditPage from './EditPage';
|
|
8
8
|
|
|
9
9
|
const ProtectedRolesEditPage = () => (
|
|
10
|
-
<CheckPagePermissions permissions={
|
|
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
|
|
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={
|
|
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
|
|
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={
|
|
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.
|
|
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.
|
|
33
|
-
"@strapi/helper-plugin": "4.11.
|
|
34
|
-
"@strapi/icons": "1.8.
|
|
35
|
-
"@strapi/utils": "4.11.
|
|
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": "
|
|
80
|
+
"gitHead": "8d325a695386ab9b578b360bf768cfa25173050f"
|
|
81
81
|
}
|