@strapi/plugin-users-permissions 0.0.0-next.c58b405b44c71a93df733024d1f15c069cb6bdca → 0.0.0-next.de5394e73076ccf7aca1e28dc68894e3c43f8b91
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/components/BoundRoute/index.js +5 -3
- package/admin/src/components/FormModal/Input/index.js +6 -3
- package/admin/src/components/FormModal/index.js +13 -10
- package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.js +1 -1
- package/admin/src/components/Permissions/PermissionRow/SubCategory.js +26 -5
- package/admin/src/components/Permissions/PermissionRow/index.js +4 -2
- package/admin/src/components/Permissions/index.js +5 -2
- package/admin/src/components/Policies/index.js +3 -2
- package/admin/src/components/UsersPermissions/index.js +8 -5
- package/admin/src/contexts/UsersPermissionsContext/index.js +1 -0
- package/admin/src/hooks/index.js +1 -1
- package/admin/src/hooks/useFetchRole/index.js +6 -3
- package/admin/src/hooks/useForm/index.js +7 -7
- package/admin/src/hooks/usePlugins.js +71 -0
- package/admin/src/hooks/useRolesList/index.js +22 -20
- package/admin/src/index.js +2 -0
- package/admin/src/pages/AdvancedSettings/index.js +21 -18
- package/admin/src/pages/AdvancedSettings/utils/api.js +1 -0
- package/admin/src/pages/AdvancedSettings/utils/schema.js +1 -1
- package/admin/src/pages/EmailTemplates/components/EmailForm.js +14 -13
- package/admin/src/pages/EmailTemplates/components/EmailTable.js +9 -7
- package/admin/src/pages/EmailTemplates/index.js +12 -9
- package/admin/src/pages/EmailTemplates/utils/api.js +1 -0
- package/admin/src/pages/EmailTemplates/utils/schema.js +1 -1
- package/admin/src/pages/Providers/index.js +29 -26
- package/admin/src/pages/Providers/utils/api.js +1 -0
- package/admin/src/pages/Providers/utils/forms.js +1 -1
- package/admin/src/pages/Roles/{CreatePage/index.js → CreatePage.js} +26 -23
- package/admin/src/pages/Roles/{EditPage/index.js → EditPage.js} +23 -20
- package/admin/src/pages/Roles/ListPage/components/TableBody.js +4 -3
- package/admin/src/pages/Roles/ListPage/index.js +38 -19
- package/admin/src/pages/Roles/ListPage/utils/api.js +2 -1
- package/admin/src/pages/Roles/{ProtectedCreatePage/index.js → ProtectedCreatePage.js} +5 -2
- package/admin/src/pages/Roles/{ProtectedEditPage/index.js → ProtectedEditPage.js} +5 -2
- package/admin/src/pages/Roles/{ProtectedListPage/index.js → ProtectedListPage.js} +4 -2
- package/admin/src/pages/Roles/{CreatePage/utils/schema.js → constants.js} +2 -4
- package/admin/src/pages/Roles/index.js +9 -6
- package/admin/src/translations/ru.json +50 -26
- package/admin/src/utils/index.js +1 -1
- package/documentation/content-api.yaml +22 -14
- package/jest.config.front.js +2 -0
- package/package.json +17 -21
- package/server/controllers/auth.js +6 -0
- package/server/register.js +7 -1
- package/server/services/providers-registry.js +1 -1
- package/admin/src/hooks/usePlugins/index.js +0 -67
- package/admin/src/hooks/usePlugins/init.js +0 -5
- package/admin/src/hooks/usePlugins/reducer.js +0 -34
- package/admin/src/pages/Roles/EditPage/utils/schema.js +0 -9
|
@@ -12,8 +12,16 @@ tags:
|
|
|
12
12
|
url: 'https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html'
|
|
13
13
|
|
|
14
14
|
paths:
|
|
15
|
-
|
|
15
|
+
/connect/{provider}:
|
|
16
16
|
get:
|
|
17
|
+
parameters:
|
|
18
|
+
- name: provider
|
|
19
|
+
in: path
|
|
20
|
+
required: true
|
|
21
|
+
description: Provider name
|
|
22
|
+
schema:
|
|
23
|
+
type: string
|
|
24
|
+
pattern: '.*'
|
|
17
25
|
tags:
|
|
18
26
|
- Users-Permissions - Auth
|
|
19
27
|
summary: Login with a provider
|
|
@@ -148,7 +156,7 @@ paths:
|
|
|
148
156
|
type: object
|
|
149
157
|
properties:
|
|
150
158
|
ok:
|
|
151
|
-
type:
|
|
159
|
+
type: string
|
|
152
160
|
enum: [true]
|
|
153
161
|
default:
|
|
154
162
|
description: Error
|
|
@@ -273,7 +281,7 @@ paths:
|
|
|
273
281
|
email:
|
|
274
282
|
type: string
|
|
275
283
|
sent:
|
|
276
|
-
type:
|
|
284
|
+
type: string
|
|
277
285
|
enum: [true]
|
|
278
286
|
default:
|
|
279
287
|
description: Error
|
|
@@ -381,7 +389,7 @@ paths:
|
|
|
381
389
|
type: object
|
|
382
390
|
properties:
|
|
383
391
|
ok:
|
|
384
|
-
type:
|
|
392
|
+
type: string
|
|
385
393
|
enum: [true]
|
|
386
394
|
default:
|
|
387
395
|
description: Error
|
|
@@ -456,7 +464,7 @@ paths:
|
|
|
456
464
|
type: object
|
|
457
465
|
properties:
|
|
458
466
|
ok:
|
|
459
|
-
type:
|
|
467
|
+
type: string
|
|
460
468
|
enum: [true]
|
|
461
469
|
default:
|
|
462
470
|
description: Error
|
|
@@ -485,7 +493,7 @@ paths:
|
|
|
485
493
|
type: object
|
|
486
494
|
properties:
|
|
487
495
|
ok:
|
|
488
|
-
type:
|
|
496
|
+
type: string
|
|
489
497
|
enum: [true]
|
|
490
498
|
default:
|
|
491
499
|
description: Error
|
|
@@ -779,9 +787,11 @@ components:
|
|
|
779
787
|
type:
|
|
780
788
|
type: string
|
|
781
789
|
createdAt:
|
|
782
|
-
type:
|
|
790
|
+
type: string
|
|
791
|
+
format: date-time
|
|
783
792
|
updatedAt:
|
|
784
|
-
type:
|
|
793
|
+
type: string
|
|
794
|
+
format: date-time
|
|
785
795
|
|
|
786
796
|
Users-Permissions-User:
|
|
787
797
|
type: object
|
|
@@ -805,10 +815,12 @@ components:
|
|
|
805
815
|
type: boolean
|
|
806
816
|
example: false
|
|
807
817
|
createdAt:
|
|
808
|
-
type:
|
|
818
|
+
type: string
|
|
819
|
+
format: date-time
|
|
809
820
|
example: '2022-06-02T08:32:06.258Z'
|
|
810
821
|
updatedAt:
|
|
811
|
-
type:
|
|
822
|
+
type: string
|
|
823
|
+
format: date-time
|
|
812
824
|
example: '2022-06-02T08:32:06.267Z'
|
|
813
825
|
|
|
814
826
|
Users-Permissions-UserRegistration:
|
|
@@ -839,10 +851,6 @@ components:
|
|
|
839
851
|
type: boolean
|
|
840
852
|
policy:
|
|
841
853
|
type: string
|
|
842
|
-
|
|
843
|
-
parameters:
|
|
844
|
-
responses:
|
|
845
|
-
examples:
|
|
846
854
|
requestBodies:
|
|
847
855
|
Users-Permissions-RoleRequest:
|
|
848
856
|
required: true
|
package/jest.config.front.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/plugin-users-permissions",
|
|
3
|
-
"version": "0.0.0-next.
|
|
3
|
+
"version": "0.0.0-next.de5394e73076ccf7aca1e28dc68894e3c43f8b91",
|
|
4
4
|
"description": "Protect your API with a full-authentication process based on JWT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"lint": "run -T eslint ."
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@strapi/design-system": "1.
|
|
33
|
-
"@strapi/helper-plugin": "0.0.0-next.
|
|
34
|
-
"@strapi/icons": "1.
|
|
35
|
-
"@strapi/utils": "0.0.0-next.
|
|
32
|
+
"@strapi/design-system": "1.8.0",
|
|
33
|
+
"@strapi/helper-plugin": "0.0.0-next.de5394e73076ccf7aca1e28dc68894e3c43f8b91",
|
|
34
|
+
"@strapi/icons": "1.8.0",
|
|
35
|
+
"@strapi/utils": "0.0.0-next.de5394e73076ccf7aca1e28dc68894e3c43f8b91",
|
|
36
36
|
"bcryptjs": "2.4.3",
|
|
37
|
-
"formik": "2.
|
|
37
|
+
"formik": "2.4.0",
|
|
38
38
|
"grant-koa": "5.4.8",
|
|
39
39
|
"immer": "9.0.19",
|
|
40
40
|
"jsonwebtoken": "9.0.0",
|
|
@@ -42,31 +42,27 @@
|
|
|
42
42
|
"koa": "^2.13.4",
|
|
43
43
|
"koa2-ratelimit": "^1.1.2",
|
|
44
44
|
"lodash": "4.17.21",
|
|
45
|
-
"
|
|
46
|
-
"prop-types": "^15.7.2",
|
|
45
|
+
"prop-types": "^15.8.1",
|
|
47
46
|
"purest": "4.0.2",
|
|
48
|
-
"react-intl": "6.
|
|
49
|
-
"react-query": "3.
|
|
47
|
+
"react-intl": "6.4.1",
|
|
48
|
+
"react-query": "3.39.3",
|
|
50
49
|
"react-redux": "8.0.5",
|
|
51
50
|
"url-join": "4.0.1",
|
|
52
51
|
"yup": "^0.32.9"
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
55
|
-
"@testing-library/dom": "
|
|
56
|
-
"@testing-library/react": "
|
|
57
|
-
"@testing-library/react-hooks": "8.0.1",
|
|
54
|
+
"@testing-library/dom": "9.2.0",
|
|
55
|
+
"@testing-library/react": "14.0.0",
|
|
58
56
|
"@testing-library/user-event": "14.4.3",
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"react": "^
|
|
62
|
-
"react-dom": "^17.0.2",
|
|
57
|
+
"msw": "1.2.1",
|
|
58
|
+
"react": "^18.2.0",
|
|
59
|
+
"react-dom": "^18.2.0",
|
|
63
60
|
"react-router-dom": "5.3.4",
|
|
64
|
-
"react-test-renderer": "^17.0.2",
|
|
65
61
|
"styled-components": "5.3.3"
|
|
66
62
|
},
|
|
67
63
|
"peerDependencies": {
|
|
68
|
-
"react": "^17.0.
|
|
69
|
-
"react-dom": "^17.0.
|
|
64
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
65
|
+
"react-dom": "^17.0.0 || ^18.0.0",
|
|
70
66
|
"react-router-dom": "5.3.4",
|
|
71
67
|
"styled-components": "5.3.3"
|
|
72
68
|
},
|
|
@@ -81,5 +77,5 @@
|
|
|
81
77
|
"required": true,
|
|
82
78
|
"kind": "plugin"
|
|
83
79
|
},
|
|
84
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "de5394e73076ccf7aca1e28dc68894e3c43f8b91"
|
|
85
81
|
}
|
package/server/register.js
CHANGED
|
@@ -18,6 +18,12 @@ module.exports = ({ strapi }) => {
|
|
|
18
18
|
const specPath = path.join(__dirname, '../documentation/content-api.yaml');
|
|
19
19
|
const spec = fs.readFileSync(specPath, 'utf8');
|
|
20
20
|
|
|
21
|
-
strapi
|
|
21
|
+
strapi
|
|
22
|
+
.plugin('documentation')
|
|
23
|
+
.service('override')
|
|
24
|
+
.registerOverride(spec, {
|
|
25
|
+
pluginOrigin: 'users-permissions',
|
|
26
|
+
excludeFromGeneration: ['users-permissions'],
|
|
27
|
+
});
|
|
22
28
|
}
|
|
23
29
|
};
|
|
@@ -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,34 +0,0 @@
|
|
|
1
|
-
/* eslint-disable consistent-return */
|
|
2
|
-
import produce from 'immer';
|
|
3
|
-
|
|
4
|
-
export const initialState = {
|
|
5
|
-
permissions: {},
|
|
6
|
-
routes: {},
|
|
7
|
-
isLoading: true,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const reducer = (state, action) =>
|
|
11
|
-
produce(state, (draftState) => {
|
|
12
|
-
switch (action.type) {
|
|
13
|
-
case 'GET_DATA': {
|
|
14
|
-
draftState.isLoading = true;
|
|
15
|
-
draftState.permissions = {};
|
|
16
|
-
draftState.routes = {};
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
case 'GET_DATA_SUCCEEDED': {
|
|
20
|
-
draftState.permissions = action.permissions;
|
|
21
|
-
draftState.routes = action.routes;
|
|
22
|
-
draftState.isLoading = false;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
case 'GET_DATA_ERROR': {
|
|
26
|
-
draftState.isLoading = false;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
default:
|
|
30
|
-
return draftState;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export default reducer;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as yup from 'yup';
|
|
2
|
-
import { translatedErrors } from '@strapi/helper-plugin';
|
|
3
|
-
|
|
4
|
-
const schema = yup.object().shape({
|
|
5
|
-
name: yup.string().required(translatedErrors.required),
|
|
6
|
-
description: yup.string().required(translatedErrors.required),
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
export default schema;
|