@strapi/plugin-users-permissions 5.19.0 → 5.21.0

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 (41) hide show
  1. package/dist/server/controllers/content-manager-user.js +3 -3
  2. package/dist/server/controllers/content-manager-user.js.map +1 -1
  3. package/dist/server/controllers/content-manager-user.mjs +3 -3
  4. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  5. package/dist/server/controllers/validation/user.js +6 -1
  6. package/dist/server/controllers/validation/user.js.map +1 -1
  7. package/dist/server/controllers/validation/user.mjs +6 -1
  8. package/dist/server/controllers/validation/user.mjs.map +1 -1
  9. package/dist/server/routes/content-api/auth.js +139 -91
  10. package/dist/server/routes/content-api/auth.js.map +1 -1
  11. package/dist/server/routes/content-api/auth.mjs +139 -91
  12. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  13. package/dist/server/routes/content-api/index.js +10 -8
  14. package/dist/server/routes/content-api/index.js.map +1 -1
  15. package/dist/server/routes/content-api/index.mjs +10 -8
  16. package/dist/server/routes/content-api/index.mjs.map +1 -1
  17. package/dist/server/routes/content-api/permissions.js +14 -7
  18. package/dist/server/routes/content-api/permissions.js.map +1 -1
  19. package/dist/server/routes/content-api/permissions.mjs +14 -7
  20. package/dist/server/routes/content-api/permissions.mjs.map +1 -1
  21. package/dist/server/routes/content-api/role.js +61 -27
  22. package/dist/server/routes/content-api/role.js.map +1 -1
  23. package/dist/server/routes/content-api/role.mjs +61 -27
  24. package/dist/server/routes/content-api/role.mjs.map +1 -1
  25. package/dist/server/routes/content-api/user.js +119 -57
  26. package/dist/server/routes/content-api/user.js.map +1 -1
  27. package/dist/server/routes/content-api/user.mjs +119 -57
  28. package/dist/server/routes/content-api/user.mjs.map +1 -1
  29. package/dist/server/routes/content-api/validation.js +216 -0
  30. package/dist/server/routes/content-api/validation.js.map +1 -0
  31. package/dist/server/routes/content-api/validation.mjs +214 -0
  32. package/dist/server/routes/content-api/validation.mjs.map +1 -0
  33. package/package.json +5 -4
  34. package/server/controllers/content-manager-user.js +3 -4
  35. package/server/controllers/validation/user.js +12 -1
  36. package/server/routes/content-api/auth.js +107 -71
  37. package/server/routes/content-api/index.js +10 -3
  38. package/server/routes/content-api/permissions.js +14 -7
  39. package/server/routes/content-api/role.js +57 -27
  40. package/server/routes/content-api/user.js +108 -51
  41. package/server/routes/content-api/validation.js +249 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sources":["../../../../server/routes/content-api/validation.js"],"sourcesContent":["'use strict';\n\nconst { AbstractRouteValidator } = require('@strapi/utils');\nconst z = require('zod/v4');\n\nclass UsersPermissionsRouteValidator extends AbstractRouteValidator {\n constructor(strapi) {\n super();\n this._strapi = strapi;\n }\n\n get userSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n username: z.string(),\n email: z.string(),\n provider: z.string(),\n confirmed: z.boolean(),\n blocked: z.boolean(),\n role: z\n .union([\n z.number(),\n z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n ])\n .optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n });\n }\n\n get roleSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n nb_users: z.number().optional(),\n permissions: z\n .record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n )\n .optional(),\n users: z.array(z.unknown()).optional(),\n });\n }\n\n get permissionSchema() {\n return z.object({\n id: z.number(),\n action: z.string(),\n role: z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n }),\n createdAt: z.string(),\n updatedAt: z.string(),\n });\n }\n\n get authResponseSchema() {\n return z.object({\n jwt: z.string(),\n user: this.userSchema,\n });\n }\n\n get authResponseWithoutJwtSchema() {\n return z.object({\n user: this.userSchema,\n });\n }\n\n get authRegisterResponseSchema() {\n return z.union([this.authResponseSchema, this.authResponseWithoutJwtSchema]);\n }\n\n get forgotPasswordResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get sendEmailConfirmationResponseSchema() {\n return z.object({\n email: z.string(),\n sent: z.boolean(),\n });\n }\n\n get rolesResponseSchema() {\n return z.object({\n roles: z.array(this.roleSchema),\n });\n }\n\n get roleResponseSchema() {\n return z.object({\n role: this.roleSchema,\n });\n }\n\n get roleSuccessResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get permissionsResponseSchema() {\n return z.object({\n permissions: z.record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n ),\n });\n }\n\n get loginBodySchema() {\n return z.object({\n identifier: z.string(),\n password: z.string(),\n });\n }\n\n get registerBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n });\n }\n\n get forgotPasswordBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get resetPasswordBodySchema() {\n return z.object({\n code: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get changePasswordBodySchema() {\n return z.object({\n currentPassword: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get sendEmailConfirmationBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get createUserBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n role: z.number().optional(),\n });\n }\n\n get updateUserBodySchema() {\n return z.object({\n username: z.string().optional(),\n email: z.email().optional(),\n password: z.string().optional(),\n role: z.number().optional(),\n });\n }\n\n get createRoleBodySchema() {\n return z.object({\n name: z.string(),\n description: z.string().optional(),\n type: z.string(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get updateRoleBodySchema() {\n return z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n type: z.string().optional(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get userIdParam() {\n return z.string();\n }\n\n get roleIdParam() {\n return z.string();\n }\n\n get providerParam() {\n return z.string();\n }\n}\n\nmodule.exports = {\n UsersPermissionsRouteValidator,\n};\n"],"names":["AbstractRouteValidator","require$$0","z","require$$1","UsersPermissionsRouteValidator","userSchema","object","id","number","documentId","string","username","email","provider","confirmed","boolean","blocked","role","union","name","description","nullable","type","createdAt","updatedAt","optional","publishedAt","roleSchema","nb_users","permissions","record","controllers","enabled","policy","users","array","unknown","permissionSchema","action","authResponseSchema","jwt","user","authResponseWithoutJwtSchema","authRegisterResponseSchema","forgotPasswordResponseSchema","ok","sendEmailConfirmationResponseSchema","sent","rolesResponseSchema","roles","roleResponseSchema","roleSuccessResponseSchema","permissionsResponseSchema","loginBodySchema","identifier","password","registerBodySchema","forgotPasswordBodySchema","resetPasswordBodySchema","code","passwordConfirmation","changePasswordBodySchema","currentPassword","sendEmailConfirmationBodySchema","createUserBodySchema","updateUserBodySchema","createRoleBodySchema","updateRoleBodySchema","userIdParam","roleIdParam","providerParam","constructor","strapi","_strapi","validation"],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ import require$$1 from '@strapi/utils';
2
+ import require$$1$1 from 'zod/v4';
3
+
4
+ var validation;
5
+ var hasRequiredValidation;
6
+ function requireValidation() {
7
+ if (hasRequiredValidation) return validation;
8
+ hasRequiredValidation = 1;
9
+ const { AbstractRouteValidator } = require$$1;
10
+ const z = require$$1$1;
11
+ class UsersPermissionsRouteValidator extends AbstractRouteValidator {
12
+ get userSchema() {
13
+ return z.object({
14
+ id: z.number(),
15
+ documentId: z.string(),
16
+ username: z.string(),
17
+ email: z.string(),
18
+ provider: z.string(),
19
+ confirmed: z.boolean(),
20
+ blocked: z.boolean(),
21
+ role: z.union([
22
+ z.number(),
23
+ z.object({
24
+ id: z.number(),
25
+ name: z.string(),
26
+ description: z.string().nullable(),
27
+ type: z.string(),
28
+ createdAt: z.string(),
29
+ updatedAt: z.string()
30
+ })
31
+ ]).optional(),
32
+ createdAt: z.string(),
33
+ updatedAt: z.string(),
34
+ publishedAt: z.string()
35
+ });
36
+ }
37
+ get roleSchema() {
38
+ return z.object({
39
+ id: z.number(),
40
+ documentId: z.string(),
41
+ name: z.string(),
42
+ description: z.string().nullable(),
43
+ type: z.string(),
44
+ createdAt: z.string(),
45
+ updatedAt: z.string(),
46
+ publishedAt: z.string(),
47
+ nb_users: z.number().optional(),
48
+ permissions: z.record(z.string(), z.object({
49
+ controllers: z.record(z.string(), z.record(z.string(), z.object({
50
+ enabled: z.boolean(),
51
+ policy: z.string()
52
+ })))
53
+ })).optional(),
54
+ users: z.array(z.unknown()).optional()
55
+ });
56
+ }
57
+ get permissionSchema() {
58
+ return z.object({
59
+ id: z.number(),
60
+ action: z.string(),
61
+ role: z.object({
62
+ id: z.number(),
63
+ name: z.string(),
64
+ description: z.string().nullable(),
65
+ type: z.string()
66
+ }),
67
+ createdAt: z.string(),
68
+ updatedAt: z.string()
69
+ });
70
+ }
71
+ get authResponseSchema() {
72
+ return z.object({
73
+ jwt: z.string(),
74
+ user: this.userSchema
75
+ });
76
+ }
77
+ get authResponseWithoutJwtSchema() {
78
+ return z.object({
79
+ user: this.userSchema
80
+ });
81
+ }
82
+ get authRegisterResponseSchema() {
83
+ return z.union([
84
+ this.authResponseSchema,
85
+ this.authResponseWithoutJwtSchema
86
+ ]);
87
+ }
88
+ get forgotPasswordResponseSchema() {
89
+ return z.object({
90
+ ok: z.boolean()
91
+ });
92
+ }
93
+ get sendEmailConfirmationResponseSchema() {
94
+ return z.object({
95
+ email: z.string(),
96
+ sent: z.boolean()
97
+ });
98
+ }
99
+ get rolesResponseSchema() {
100
+ return z.object({
101
+ roles: z.array(this.roleSchema)
102
+ });
103
+ }
104
+ get roleResponseSchema() {
105
+ return z.object({
106
+ role: this.roleSchema
107
+ });
108
+ }
109
+ get roleSuccessResponseSchema() {
110
+ return z.object({
111
+ ok: z.boolean()
112
+ });
113
+ }
114
+ get permissionsResponseSchema() {
115
+ return z.object({
116
+ permissions: z.record(z.string(), z.object({
117
+ controllers: z.record(z.string(), z.record(z.string(), z.object({
118
+ enabled: z.boolean(),
119
+ policy: z.string()
120
+ })))
121
+ }))
122
+ });
123
+ }
124
+ get loginBodySchema() {
125
+ return z.object({
126
+ identifier: z.string(),
127
+ password: z.string()
128
+ });
129
+ }
130
+ get registerBodySchema() {
131
+ return z.object({
132
+ username: z.string(),
133
+ email: z.email(),
134
+ password: z.string()
135
+ });
136
+ }
137
+ get forgotPasswordBodySchema() {
138
+ return z.object({
139
+ email: z.email()
140
+ });
141
+ }
142
+ get resetPasswordBodySchema() {
143
+ return z.object({
144
+ code: z.string(),
145
+ password: z.string(),
146
+ passwordConfirmation: z.string()
147
+ });
148
+ }
149
+ get changePasswordBodySchema() {
150
+ return z.object({
151
+ currentPassword: z.string(),
152
+ password: z.string(),
153
+ passwordConfirmation: z.string()
154
+ });
155
+ }
156
+ get sendEmailConfirmationBodySchema() {
157
+ return z.object({
158
+ email: z.email()
159
+ });
160
+ }
161
+ get createUserBodySchema() {
162
+ return z.object({
163
+ username: z.string(),
164
+ email: z.email(),
165
+ password: z.string(),
166
+ role: z.number().optional()
167
+ });
168
+ }
169
+ get updateUserBodySchema() {
170
+ return z.object({
171
+ username: z.string().optional(),
172
+ email: z.email().optional(),
173
+ password: z.string().optional(),
174
+ role: z.number().optional()
175
+ });
176
+ }
177
+ get createRoleBodySchema() {
178
+ return z.object({
179
+ name: z.string(),
180
+ description: z.string().optional(),
181
+ type: z.string(),
182
+ permissions: z.record(z.string(), z.unknown()).optional()
183
+ });
184
+ }
185
+ get updateRoleBodySchema() {
186
+ return z.object({
187
+ name: z.string().optional(),
188
+ description: z.string().optional(),
189
+ type: z.string().optional(),
190
+ permissions: z.record(z.string(), z.unknown()).optional()
191
+ });
192
+ }
193
+ get userIdParam() {
194
+ return z.string();
195
+ }
196
+ get roleIdParam() {
197
+ return z.string();
198
+ }
199
+ get providerParam() {
200
+ return z.string();
201
+ }
202
+ constructor(strapi){
203
+ super();
204
+ this._strapi = strapi;
205
+ }
206
+ }
207
+ validation = {
208
+ UsersPermissionsRouteValidator
209
+ };
210
+ return validation;
211
+ }
212
+
213
+ export { requireValidation as __require };
214
+ //# sourceMappingURL=validation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.mjs","sources":["../../../../server/routes/content-api/validation.js"],"sourcesContent":["'use strict';\n\nconst { AbstractRouteValidator } = require('@strapi/utils');\nconst z = require('zod/v4');\n\nclass UsersPermissionsRouteValidator extends AbstractRouteValidator {\n constructor(strapi) {\n super();\n this._strapi = strapi;\n }\n\n get userSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n username: z.string(),\n email: z.string(),\n provider: z.string(),\n confirmed: z.boolean(),\n blocked: z.boolean(),\n role: z\n .union([\n z.number(),\n z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n ])\n .optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n });\n }\n\n get roleSchema() {\n return z.object({\n id: z.number(),\n documentId: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string(),\n nb_users: z.number().optional(),\n permissions: z\n .record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n )\n .optional(),\n users: z.array(z.unknown()).optional(),\n });\n }\n\n get permissionSchema() {\n return z.object({\n id: z.number(),\n action: z.string(),\n role: z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n type: z.string(),\n }),\n createdAt: z.string(),\n updatedAt: z.string(),\n });\n }\n\n get authResponseSchema() {\n return z.object({\n jwt: z.string(),\n user: this.userSchema,\n });\n }\n\n get authResponseWithoutJwtSchema() {\n return z.object({\n user: this.userSchema,\n });\n }\n\n get authRegisterResponseSchema() {\n return z.union([this.authResponseSchema, this.authResponseWithoutJwtSchema]);\n }\n\n get forgotPasswordResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get sendEmailConfirmationResponseSchema() {\n return z.object({\n email: z.string(),\n sent: z.boolean(),\n });\n }\n\n get rolesResponseSchema() {\n return z.object({\n roles: z.array(this.roleSchema),\n });\n }\n\n get roleResponseSchema() {\n return z.object({\n role: this.roleSchema,\n });\n }\n\n get roleSuccessResponseSchema() {\n return z.object({\n ok: z.boolean(),\n });\n }\n\n get permissionsResponseSchema() {\n return z.object({\n permissions: z.record(\n z.string(), // plugin name\n z.object({\n controllers: z.record(\n z.string(), // controller name\n z.record(\n z.string(), // action name\n z.object({\n enabled: z.boolean(),\n policy: z.string(),\n })\n )\n ),\n })\n ),\n });\n }\n\n get loginBodySchema() {\n return z.object({\n identifier: z.string(),\n password: z.string(),\n });\n }\n\n get registerBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n });\n }\n\n get forgotPasswordBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get resetPasswordBodySchema() {\n return z.object({\n code: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get changePasswordBodySchema() {\n return z.object({\n currentPassword: z.string(),\n password: z.string(),\n passwordConfirmation: z.string(),\n });\n }\n\n get sendEmailConfirmationBodySchema() {\n return z.object({\n email: z.email(),\n });\n }\n\n get createUserBodySchema() {\n return z.object({\n username: z.string(),\n email: z.email(),\n password: z.string(),\n role: z.number().optional(),\n });\n }\n\n get updateUserBodySchema() {\n return z.object({\n username: z.string().optional(),\n email: z.email().optional(),\n password: z.string().optional(),\n role: z.number().optional(),\n });\n }\n\n get createRoleBodySchema() {\n return z.object({\n name: z.string(),\n description: z.string().optional(),\n type: z.string(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get updateRoleBodySchema() {\n return z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n type: z.string().optional(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n });\n }\n\n get userIdParam() {\n return z.string();\n }\n\n get roleIdParam() {\n return z.string();\n }\n\n get providerParam() {\n return z.string();\n }\n}\n\nmodule.exports = {\n UsersPermissionsRouteValidator,\n};\n"],"names":["AbstractRouteValidator","require$$0","z","require$$1","UsersPermissionsRouteValidator","userSchema","object","id","number","documentId","string","username","email","provider","confirmed","boolean","blocked","role","union","name","description","nullable","type","createdAt","updatedAt","optional","publishedAt","roleSchema","nb_users","permissions","record","controllers","enabled","policy","users","array","unknown","permissionSchema","action","authResponseSchema","jwt","user","authResponseWithoutJwtSchema","authRegisterResponseSchema","forgotPasswordResponseSchema","ok","sendEmailConfirmationResponseSchema","sent","rolesResponseSchema","roles","roleResponseSchema","roleSuccessResponseSchema","permissionsResponseSchema","loginBodySchema","identifier","password","registerBodySchema","forgotPasswordBodySchema","resetPasswordBodySchema","code","passwordConfirmation","changePasswordBodySchema","currentPassword","sendEmailConfirmationBodySchema","createUserBodySchema","updateUserBodySchema","createRoleBodySchema","updateRoleBodySchema","userIdParam","roleIdParam","providerParam","constructor","strapi","_strapi","validation"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/plugin-users-permissions",
3
- "version": "5.19.0",
3
+ "version": "5.21.0",
4
4
  "description": "Protect your API with a full-authentication process based on JWT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -50,7 +50,7 @@
50
50
  "dependencies": {
51
51
  "@strapi/design-system": "2.0.0-rc.29",
52
52
  "@strapi/icons": "2.0.0-rc.29",
53
- "@strapi/utils": "5.19.0",
53
+ "@strapi/utils": "5.21.0",
54
54
  "bcryptjs": "2.4.3",
55
55
  "formik": "2.4.5",
56
56
  "grant": "^5.4.8",
@@ -66,10 +66,11 @@
66
66
  "react-query": "3.39.3",
67
67
  "react-redux": "8.1.3",
68
68
  "url-join": "4.0.1",
69
- "yup": "0.32.9"
69
+ "yup": "0.32.9",
70
+ "zod": "3.25.67"
70
71
  },
71
72
  "devDependencies": {
72
- "@strapi/strapi": "5.19.0",
73
+ "@strapi/strapi": "5.21.0",
73
74
  "@testing-library/dom": "10.1.0",
74
75
  "@testing-library/react": "15.0.7",
75
76
  "@testing-library/user-event": "14.5.2",
@@ -2,8 +2,7 @@
2
2
 
3
3
  const _ = require('lodash');
4
4
  const { contentTypes: contentTypesUtils } = require('@strapi/utils');
5
- const { ApplicationError, ValidationError, NotFoundError, ForbiddenError } =
6
- require('@strapi/utils').errors;
5
+ const { ApplicationError, NotFoundError, ForbiddenError } = require('@strapi/utils').errors;
7
6
  const { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');
8
7
 
9
8
  const { UPDATED_BY_ATTRIBUTE, CREATED_BY_ATTRIBUTE } = contentTypesUtils.constants;
@@ -133,8 +132,8 @@ module.exports = {
133
132
 
134
133
  await validateUpdateUserBody(ctx.request.body);
135
134
 
136
- if (_.has(body, 'password') && !password && user.provider === 'local') {
137
- throw new ValidationError('password.notNull');
135
+ if (_.has(body, 'password') && (password == null || password === '')) {
136
+ delete body.password;
138
137
  }
139
138
 
140
139
  if (_.has(body, 'username')) {
@@ -29,7 +29,18 @@ const createUserBodySchema = yup.object().shape({
29
29
  const updateUserBodySchema = yup.object().shape({
30
30
  email: yup.string().email().min(1),
31
31
  username: yup.string().min(1),
32
- password: yup.string().min(1),
32
+ password: yup
33
+ .mixed()
34
+ .test(
35
+ 'password-validation',
36
+ 'Password must be at least 1 character',
37
+ function validatePassword(value) {
38
+ if (value == null || value === '') {
39
+ return true;
40
+ }
41
+ return typeof value === 'string' && value.length >= 1;
42
+ }
43
+ ),
33
44
  role: yup.lazy((value) =>
34
45
  typeof value === 'object'
35
46
  ? yup.object().shape({
@@ -1,82 +1,118 @@
1
1
  'use strict';
2
2
 
3
- module.exports = [
4
- {
5
- method: 'GET',
6
- path: '/connect/(.*)',
7
- handler: 'auth.connect',
8
- config: {
9
- middlewares: ['plugin::users-permissions.rateLimit'],
10
- prefix: '',
3
+ const { UsersPermissionsRouteValidator } = require('./validation');
4
+
5
+ module.exports = (strapi) => {
6
+ const validator = new UsersPermissionsRouteValidator(strapi);
7
+
8
+ return [
9
+ {
10
+ method: 'GET',
11
+ path: '/connect/(.*)',
12
+ handler: 'auth.connect',
13
+ config: {
14
+ middlewares: ['plugin::users-permissions.rateLimit'],
15
+ prefix: '',
16
+ },
11
17
  },
12
- },
13
- {
14
- method: 'POST',
15
- path: '/auth/local',
16
- handler: 'auth.callback',
17
- config: {
18
- middlewares: ['plugin::users-permissions.rateLimit'],
19
- prefix: '',
18
+ {
19
+ method: 'POST',
20
+ path: '/auth/local',
21
+ handler: 'auth.callback',
22
+ config: {
23
+ middlewares: ['plugin::users-permissions.rateLimit'],
24
+ prefix: '',
25
+ },
26
+ request: {
27
+ body: { 'application/json': validator.loginBodySchema },
28
+ },
29
+ response: validator.authResponseSchema,
20
30
  },
21
- },
22
- {
23
- method: 'POST',
24
- path: '/auth/local/register',
25
- handler: 'auth.register',
26
- config: {
27
- middlewares: ['plugin::users-permissions.rateLimit'],
28
- prefix: '',
31
+ {
32
+ method: 'POST',
33
+ path: '/auth/local/register',
34
+ handler: 'auth.register',
35
+ config: {
36
+ middlewares: ['plugin::users-permissions.rateLimit'],
37
+ prefix: '',
38
+ },
39
+ request: {
40
+ body: { 'application/json': validator.registerBodySchema },
41
+ },
42
+ response: validator.authRegisterResponseSchema,
29
43
  },
30
- },
31
- {
32
- method: 'GET',
33
- path: '/auth/:provider/callback',
34
- handler: 'auth.callback',
35
- config: {
36
- prefix: '',
44
+ {
45
+ method: 'GET',
46
+ path: '/auth/:provider/callback',
47
+ handler: 'auth.callback',
48
+ config: {
49
+ prefix: '',
50
+ },
51
+ request: {
52
+ params: {
53
+ provider: validator.providerParam,
54
+ },
55
+ },
56
+ response: validator.authResponseSchema,
37
57
  },
38
- },
39
- {
40
- method: 'POST',
41
- path: '/auth/forgot-password',
42
- handler: 'auth.forgotPassword',
43
- config: {
44
- middlewares: ['plugin::users-permissions.rateLimit'],
45
- prefix: '',
58
+ {
59
+ method: 'POST',
60
+ path: '/auth/forgot-password',
61
+ handler: 'auth.forgotPassword',
62
+ config: {
63
+ middlewares: ['plugin::users-permissions.rateLimit'],
64
+ prefix: '',
65
+ },
66
+ request: {
67
+ body: { 'application/json': validator.forgotPasswordBodySchema },
68
+ },
69
+ response: validator.forgotPasswordResponseSchema,
46
70
  },
47
- },
48
- {
49
- method: 'POST',
50
- path: '/auth/reset-password',
51
- handler: 'auth.resetPassword',
52
- config: {
53
- middlewares: ['plugin::users-permissions.rateLimit'],
54
- prefix: '',
71
+ {
72
+ method: 'POST',
73
+ path: '/auth/reset-password',
74
+ handler: 'auth.resetPassword',
75
+ config: {
76
+ middlewares: ['plugin::users-permissions.rateLimit'],
77
+ prefix: '',
78
+ },
79
+ request: {
80
+ body: { 'application/json': validator.resetPasswordBodySchema },
81
+ },
82
+ response: validator.authResponseSchema,
55
83
  },
56
- },
57
- {
58
- method: 'GET',
59
- path: '/auth/email-confirmation',
60
- handler: 'auth.emailConfirmation',
61
- config: {
62
- prefix: '',
84
+ {
85
+ method: 'GET',
86
+ path: '/auth/email-confirmation',
87
+ handler: 'auth.emailConfirmation',
88
+ config: {
89
+ prefix: '',
90
+ },
63
91
  },
64
- },
65
- {
66
- method: 'POST',
67
- path: '/auth/send-email-confirmation',
68
- handler: 'auth.sendEmailConfirmation',
69
- config: {
70
- prefix: '',
92
+ {
93
+ method: 'POST',
94
+ path: '/auth/send-email-confirmation',
95
+ handler: 'auth.sendEmailConfirmation',
96
+ config: {
97
+ prefix: '',
98
+ },
99
+ request: {
100
+ body: { 'application/json': validator.sendEmailConfirmationBodySchema },
101
+ },
102
+ response: validator.sendEmailConfirmationResponseSchema,
71
103
  },
72
- },
73
- {
74
- method: 'POST',
75
- path: '/auth/change-password',
76
- handler: 'auth.changePassword',
77
- config: {
78
- middlewares: ['plugin::users-permissions.rateLimit'],
79
- prefix: '',
104
+ {
105
+ method: 'POST',
106
+ path: '/auth/change-password',
107
+ handler: 'auth.changePassword',
108
+ config: {
109
+ middlewares: ['plugin::users-permissions.rateLimit'],
110
+ prefix: '',
111
+ },
112
+ request: {
113
+ body: { 'application/json': validator.changePasswordBodySchema },
114
+ },
115
+ response: validator.authResponseSchema,
80
116
  },
81
- },
82
- ];
117
+ ];
118
+ };
@@ -5,7 +5,14 @@ const userRoutes = require('./user');
5
5
  const roleRoutes = require('./role');
6
6
  const permissionsRoutes = require('./permissions');
7
7
 
8
- module.exports = {
9
- type: 'content-api',
10
- routes: [...authRoutes, ...userRoutes, ...roleRoutes, ...permissionsRoutes],
8
+ module.exports = (strapi) => {
9
+ return {
10
+ type: 'content-api',
11
+ routes: [
12
+ ...authRoutes(strapi),
13
+ ...userRoutes(strapi),
14
+ ...roleRoutes(strapi),
15
+ ...permissionsRoutes(strapi),
16
+ ],
17
+ };
11
18
  };
@@ -1,9 +1,16 @@
1
1
  'use strict';
2
2
 
3
- module.exports = [
4
- {
5
- method: 'GET',
6
- path: '/permissions',
7
- handler: 'permissions.getPermissions',
8
- },
9
- ];
3
+ const { UsersPermissionsRouteValidator } = require('./validation');
4
+
5
+ module.exports = (strapi) => {
6
+ const validator = new UsersPermissionsRouteValidator(strapi);
7
+
8
+ return [
9
+ {
10
+ method: 'GET',
11
+ path: '/permissions',
12
+ handler: 'permissions.getPermissions',
13
+ response: validator.permissionsResponseSchema,
14
+ },
15
+ ];
16
+ };