@strapi/plugin-users-permissions 0.0.0-00a3f69152eb918683ed5c05bfed9c45495c0a87

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 (169) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +1 -0
  3. package/admin/src/components/BoundRoute/getMethodColor.js +41 -0
  4. package/admin/src/components/BoundRoute/index.js +72 -0
  5. package/admin/src/components/FormModal/Input/index.js +121 -0
  6. package/admin/src/components/FormModal/index.js +121 -0
  7. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.js +30 -0
  8. package/admin/src/components/Permissions/PermissionRow/SubCategory.js +114 -0
  9. package/admin/src/components/Permissions/PermissionRow/index.js +53 -0
  10. package/admin/src/components/Permissions/index.js +56 -0
  11. package/admin/src/components/Permissions/init.js +9 -0
  12. package/admin/src/components/Permissions/reducer.js +27 -0
  13. package/admin/src/components/Policies/index.js +60 -0
  14. package/admin/src/components/UsersPermissions/index.js +94 -0
  15. package/admin/src/components/UsersPermissions/init.js +10 -0
  16. package/admin/src/components/UsersPermissions/reducer.js +60 -0
  17. package/admin/src/contexts/UsersPermissionsContext/index.js +17 -0
  18. package/admin/src/hooks/index.js +5 -0
  19. package/admin/src/hooks/useFetchRole/index.js +64 -0
  20. package/admin/src/hooks/useFetchRole/reducer.js +31 -0
  21. package/admin/src/hooks/useForm/index.js +70 -0
  22. package/admin/src/hooks/useForm/reducer.js +40 -0
  23. package/admin/src/hooks/usePlugins/index.js +65 -0
  24. package/admin/src/hooks/usePlugins/init.js +5 -0
  25. package/admin/src/hooks/usePlugins/reducer.js +34 -0
  26. package/admin/src/hooks/useRolesList/index.js +63 -0
  27. package/admin/src/hooks/useRolesList/init.js +5 -0
  28. package/admin/src/hooks/useRolesList/reducer.js +31 -0
  29. package/admin/src/index.js +123 -0
  30. package/admin/src/pages/AdvancedSettings/index.js +238 -0
  31. package/admin/src/pages/AdvancedSettings/utils/api.js +13 -0
  32. package/admin/src/pages/AdvancedSettings/utils/layout.js +96 -0
  33. package/admin/src/pages/AdvancedSettings/utils/schema.js +19 -0
  34. package/admin/src/pages/EmailTemplates/components/EmailForm.js +173 -0
  35. package/admin/src/pages/EmailTemplates/components/EmailTable.js +121 -0
  36. package/admin/src/pages/EmailTemplates/index.js +162 -0
  37. package/admin/src/pages/EmailTemplates/utils/api.js +13 -0
  38. package/admin/src/pages/EmailTemplates/utils/schema.js +22 -0
  39. package/admin/src/pages/Providers/index.js +274 -0
  40. package/admin/src/pages/Providers/reducer.js +54 -0
  41. package/admin/src/pages/Providers/utils/api.js +21 -0
  42. package/admin/src/pages/Providers/utils/createProvidersArray.js +21 -0
  43. package/admin/src/pages/Providers/utils/forms.js +244 -0
  44. package/admin/src/pages/Roles/CreatePage/index.js +177 -0
  45. package/admin/src/pages/Roles/CreatePage/utils/schema.js +9 -0
  46. package/admin/src/pages/Roles/EditPage/index.js +190 -0
  47. package/admin/src/pages/Roles/EditPage/utils/schema.js +9 -0
  48. package/admin/src/pages/Roles/ListPage/components/TableBody.js +96 -0
  49. package/admin/src/pages/Roles/ListPage/index.js +216 -0
  50. package/admin/src/pages/Roles/ListPage/utils/api.js +28 -0
  51. package/admin/src/pages/Roles/ProtectedCreatePage/index.js +12 -0
  52. package/admin/src/pages/Roles/ProtectedEditPage/index.js +12 -0
  53. package/admin/src/pages/Roles/ProtectedListPage/index.js +15 -0
  54. package/admin/src/pages/Roles/index.js +27 -0
  55. package/admin/src/permissions.js +31 -0
  56. package/admin/src/pluginId.js +5 -0
  57. package/admin/src/translations/ar.json +40 -0
  58. package/admin/src/translations/cs.json +46 -0
  59. package/admin/src/translations/de.json +58 -0
  60. package/admin/src/translations/dk.json +83 -0
  61. package/admin/src/translations/en.json +83 -0
  62. package/admin/src/translations/es.json +83 -0
  63. package/admin/src/translations/fr.json +46 -0
  64. package/admin/src/translations/id.json +58 -0
  65. package/admin/src/translations/it.json +58 -0
  66. package/admin/src/translations/ja.json +44 -0
  67. package/admin/src/translations/ko.json +83 -0
  68. package/admin/src/translations/ms.json +45 -0
  69. package/admin/src/translations/nl.json +44 -0
  70. package/admin/src/translations/pl.json +83 -0
  71. package/admin/src/translations/pt-BR.json +40 -0
  72. package/admin/src/translations/pt.json +44 -0
  73. package/admin/src/translations/ru.json +58 -0
  74. package/admin/src/translations/sk.json +46 -0
  75. package/admin/src/translations/sv.json +83 -0
  76. package/admin/src/translations/th.json +56 -0
  77. package/admin/src/translations/tr.json +44 -0
  78. package/admin/src/translations/uk.json +45 -0
  79. package/admin/src/translations/vi.json +46 -0
  80. package/admin/src/translations/zh-Hans.json +62 -0
  81. package/admin/src/translations/zh.json +83 -0
  82. package/admin/src/utils/axiosInstance.js +36 -0
  83. package/admin/src/utils/cleanPermissions.js +25 -0
  84. package/admin/src/utils/formatPluginName.js +26 -0
  85. package/admin/src/utils/formatPolicies.js +8 -0
  86. package/admin/src/utils/getRequestURL.js +5 -0
  87. package/admin/src/utils/getTrad.js +5 -0
  88. package/admin/src/utils/index.js +5 -0
  89. package/documentation/content-api.yaml +870 -0
  90. package/jest.config.front.js +10 -0
  91. package/package.json +68 -0
  92. package/server/bootstrap/grant-config.js +123 -0
  93. package/server/bootstrap/index.js +133 -0
  94. package/server/bootstrap/users-permissions-actions.js +80 -0
  95. package/server/config.js +23 -0
  96. package/server/content-types/index.js +11 -0
  97. package/server/content-types/permission/index.js +34 -0
  98. package/server/content-types/role/index.js +51 -0
  99. package/server/content-types/user/index.js +72 -0
  100. package/server/content-types/user/schema-config.js +15 -0
  101. package/server/controllers/auth.js +410 -0
  102. package/server/controllers/content-manager-user.js +175 -0
  103. package/server/controllers/index.js +17 -0
  104. package/server/controllers/permissions.js +26 -0
  105. package/server/controllers/role.js +77 -0
  106. package/server/controllers/settings.js +85 -0
  107. package/server/controllers/user.js +198 -0
  108. package/server/controllers/validation/auth.js +57 -0
  109. package/server/controllers/validation/email-template.js +50 -0
  110. package/server/controllers/validation/user.js +59 -0
  111. package/server/graphql/index.js +44 -0
  112. package/server/graphql/mutations/auth/change-password.js +38 -0
  113. package/server/graphql/mutations/auth/email-confirmation.js +39 -0
  114. package/server/graphql/mutations/auth/forgot-password.js +35 -0
  115. package/server/graphql/mutations/auth/login.js +35 -0
  116. package/server/graphql/mutations/auth/register.js +36 -0
  117. package/server/graphql/mutations/auth/reset-password.js +38 -0
  118. package/server/graphql/mutations/crud/role/create-role.js +34 -0
  119. package/server/graphql/mutations/crud/role/delete-role.js +25 -0
  120. package/server/graphql/mutations/crud/role/update-role.js +35 -0
  121. package/server/graphql/mutations/crud/user/create-user.js +45 -0
  122. package/server/graphql/mutations/crud/user/delete-user.js +39 -0
  123. package/server/graphql/mutations/crud/user/update-user.js +46 -0
  124. package/server/graphql/mutations/index.js +43 -0
  125. package/server/graphql/queries/index.js +13 -0
  126. package/server/graphql/queries/me.js +17 -0
  127. package/server/graphql/resolvers-configs.js +42 -0
  128. package/server/graphql/types/create-role-payload.js +11 -0
  129. package/server/graphql/types/delete-role-payload.js +11 -0
  130. package/server/graphql/types/index.js +21 -0
  131. package/server/graphql/types/login-input.js +13 -0
  132. package/server/graphql/types/login-payload.js +12 -0
  133. package/server/graphql/types/me-role.js +14 -0
  134. package/server/graphql/types/me.js +16 -0
  135. package/server/graphql/types/password-payload.js +11 -0
  136. package/server/graphql/types/register-input.js +13 -0
  137. package/server/graphql/types/update-role-payload.js +11 -0
  138. package/server/graphql/utils.js +27 -0
  139. package/server/index.js +21 -0
  140. package/server/middlewares/index.js +7 -0
  141. package/server/middlewares/rateLimit.js +27 -0
  142. package/server/register.js +23 -0
  143. package/server/routes/admin/index.js +10 -0
  144. package/server/routes/admin/permissions.js +20 -0
  145. package/server/routes/admin/role.js +79 -0
  146. package/server/routes/admin/settings.js +95 -0
  147. package/server/routes/content-api/auth.js +82 -0
  148. package/server/routes/content-api/index.js +11 -0
  149. package/server/routes/content-api/permissions.js +9 -0
  150. package/server/routes/content-api/role.js +29 -0
  151. package/server/routes/content-api/user.js +60 -0
  152. package/server/routes/index.js +6 -0
  153. package/server/services/index.js +19 -0
  154. package/server/services/jwt.js +55 -0
  155. package/server/services/permission.js +45 -0
  156. package/server/services/providers-registry.js +292 -0
  157. package/server/services/providers.js +115 -0
  158. package/server/services/role.js +177 -0
  159. package/server/services/user.js +140 -0
  160. package/server/services/users-permissions.js +236 -0
  161. package/server/strategies/users-permissions.js +114 -0
  162. package/server/utils/index.d.ts +18 -0
  163. package/server/utils/index.js +12 -0
  164. package/server/utils/sanitize/index.js +9 -0
  165. package/server/utils/sanitize/sanitizers.js +19 -0
  166. package/server/utils/sanitize/visitors/index.js +5 -0
  167. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +11 -0
  168. package/strapi-admin.js +3 -0
  169. package/strapi-server.js +3 -0
@@ -0,0 +1,870 @@
1
+ tags:
2
+ - name: 'Users-Permissions - Auth'
3
+ description: 'Authentication endpoints'
4
+ externalDocs:
5
+ description: 'Find out more'
6
+ url: 'https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html'
7
+
8
+ - name: 'Users-Permissions - Users & Roles'
9
+ description: 'Users, roles, and permissions endpoints'
10
+ externalDocs:
11
+ description: 'Find out more'
12
+ url: 'https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html'
13
+
14
+ paths:
15
+ '/connect/(.*)':
16
+ get:
17
+ tags:
18
+ - Users-Permissions - Auth
19
+ summary: Login with a provider
20
+ description: Redirects to provider login before being redirect to /auth/{provider}/callback
21
+ responses:
22
+ 301:
23
+ description: Redirect response
24
+ default:
25
+ description: Error
26
+ content:
27
+ application/json:
28
+ schema:
29
+ $ref: '#/components/schemas/Error'
30
+ /auth/local:
31
+ post:
32
+ tags:
33
+ - Users-Permissions - Auth
34
+ summary: Local login
35
+ description: Returns a jwt token and user info
36
+ requestBody:
37
+ content:
38
+ application/json:
39
+ schema:
40
+ type: object
41
+ properties:
42
+ identifier:
43
+ type: string
44
+ password:
45
+ type: string
46
+ example:
47
+ identifier: foobar
48
+ password: Test1234
49
+ required: true
50
+ responses:
51
+ 200:
52
+ description: Connection
53
+ content:
54
+ application/json:
55
+ schema:
56
+ $ref: '#/components/schemas/Users-Permissions-UserRegistration'
57
+ default:
58
+ description: Error
59
+ content:
60
+ application/json:
61
+ schema:
62
+ $ref: '#/components/schemas/Error'
63
+ /auth/local/register:
64
+ post:
65
+ tags:
66
+ - Users-Permissions - Auth
67
+ summary: Register a user
68
+ description: Returns a jwt token and user info
69
+ requestBody:
70
+ content:
71
+ application/json:
72
+ schema:
73
+ type: object
74
+ properties:
75
+ username:
76
+ type: string
77
+ email:
78
+ type: string
79
+ password:
80
+ type: string
81
+ example:
82
+ username: foobar
83
+ email: foo.bar@strapi.io
84
+ password: Test1234
85
+ required: true
86
+ responses:
87
+ 200:
88
+ description: Successfull registration
89
+ content:
90
+ application/json:
91
+ schema:
92
+ $ref: '#/components/schemas/Users-Permissions-UserRegistration'
93
+ default:
94
+ description: Error
95
+ content:
96
+ application/json:
97
+ schema:
98
+ $ref: '#/components/schemas/Error'
99
+
100
+ /auth/{provider}/callback:
101
+ get:
102
+ tags:
103
+ - Users-Permissions - Auth
104
+ summary: Default Callback from provider auth
105
+ parameters:
106
+ - name: provider
107
+ in: path
108
+ required: true
109
+ description: Provider name
110
+ schema:
111
+ type: string
112
+ responses:
113
+ 200:
114
+ description: Returns a jwt token and user info
115
+ content:
116
+ application/json:
117
+ schema:
118
+ $ref: '#/components/schemas/Users-Permissions-UserRegistration'
119
+ default:
120
+ description: Error
121
+ content:
122
+ application/json:
123
+ schema:
124
+ $ref: '#/components/schemas/Error'
125
+
126
+ /auth/forgot-password:
127
+ post:
128
+ tags:
129
+ - Users-Permissions - Auth
130
+ summary: Send rest password email
131
+ requestBody:
132
+ required: true
133
+ content:
134
+ application/json:
135
+ schema:
136
+ type: object
137
+ properties:
138
+ email:
139
+ type: string
140
+ example:
141
+ email: foo.bar@strapi.io
142
+ responses:
143
+ 200:
144
+ description: Returns ok
145
+ content:
146
+ application/json:
147
+ schema:
148
+ type: object
149
+ properties:
150
+ ok:
151
+ type: enum
152
+ enum: [true]
153
+ default:
154
+ description: Error
155
+ content:
156
+ application/json:
157
+ schema:
158
+ $ref: '#/components/schemas/Error'
159
+ /auth/reset-password:
160
+ post:
161
+ tags:
162
+ - Users-Permissions - Auth
163
+ summary: Rest user password
164
+ requestBody:
165
+ required: true
166
+ content:
167
+ application/json:
168
+ schema:
169
+ type: object
170
+ properties:
171
+ password:
172
+ type: string
173
+ passwordConfirmation:
174
+ type: string
175
+ code:
176
+ type: string
177
+ example:
178
+ password: Test1234
179
+ passwordConfirmation: Test1234
180
+ code: zertyoaizndoianzodianzdonaizdoinaozdnia
181
+ responses:
182
+ 200:
183
+ description: Returns a jwt token and user info
184
+ content:
185
+ application/json:
186
+ schema:
187
+ $ref: '#/components/schemas/Users-Permissions-UserRegistration'
188
+ default:
189
+ description: Error
190
+ content:
191
+ application/json:
192
+ schema:
193
+ $ref: '#/components/schemas/Error'
194
+
195
+ /auth/change-password:
196
+ post:
197
+ tags:
198
+ - Users-Permissions - Auth
199
+ summary: Update user's own password
200
+ requestBody:
201
+ required: true
202
+ content:
203
+ application/json:
204
+ schema:
205
+ type: object
206
+ required:
207
+ - password
208
+ - currentPassword
209
+ - passwordConfirmation
210
+ properties:
211
+ password:
212
+ type: string
213
+ currentPassword:
214
+ type: string
215
+ passwordConfirmation:
216
+ type: string
217
+ responses:
218
+ 200:
219
+ description: Returns a jwt token and user info
220
+ content:
221
+ application/json:
222
+ schema:
223
+ $ref: '#/components/schemas/Users-Permissions-UserRegistration'
224
+ default:
225
+ description: Error
226
+ content:
227
+ application/json:
228
+ schema:
229
+ $ref: '#/components/schemas/Error'
230
+ /auth/email-confirmation:
231
+ get:
232
+ tags:
233
+ - Users-Permissions - Auth
234
+ summary: Confirm user email
235
+ parameters:
236
+ - in: query
237
+ name: confirmation
238
+ schema:
239
+ type: string
240
+ description: confirmation token received by email
241
+ responses:
242
+ 301:
243
+ description: Redirects to the configure email confirmation redirect url
244
+ default:
245
+ description: Error
246
+ content:
247
+ application/json:
248
+ schema:
249
+ $ref: '#/components/schemas/Error'
250
+
251
+ /auth/send-email-confirmation:
252
+ post:
253
+ tags:
254
+ - Users-Permissions - Auth
255
+ summary: Send confirmation email
256
+ requestBody:
257
+ required: true
258
+ content:
259
+ application/json:
260
+ schema:
261
+ type: object
262
+ properties:
263
+ email:
264
+ type: string
265
+ responses:
266
+ 200:
267
+ description: Returns email and boolean to confirm email was sent
268
+ content:
269
+ application/json:
270
+ schema:
271
+ type: object
272
+ properties:
273
+ email:
274
+ type: string
275
+ sent:
276
+ type: enum
277
+ enum: [true]
278
+ default:
279
+ description: Error
280
+ content:
281
+ application/json:
282
+ schema:
283
+ $ref: '#/components/schemas/Error'
284
+
285
+ /users-permissions/permissions:
286
+ get:
287
+ tags:
288
+ - Users-Permissions - Users & Roles
289
+ summary: Get default generated permissions
290
+ responses:
291
+ 200:
292
+ description: Returns the permissions tree
293
+ content:
294
+ application/json:
295
+ schema:
296
+ type: object
297
+ properties:
298
+ permissions:
299
+ $ref: '#/components/schemas/Users-Permissions-PermissionsTree'
300
+ example:
301
+ permissions:
302
+ api::content-type.content-type:
303
+ controllers:
304
+ controllerA:
305
+ find:
306
+ enabled: false
307
+ policy: ''
308
+ findOne:
309
+ enabled: false
310
+ policy: ''
311
+ create:
312
+ enabled: false
313
+ policy: ''
314
+ controllerB:
315
+ find:
316
+ enabled: false
317
+ policy: ''
318
+ findOne:
319
+ enabled: false
320
+ policy: ''
321
+ create:
322
+ enabled: false
323
+ policy: ''
324
+ default:
325
+ description: Error
326
+ content:
327
+ application/json:
328
+ schema:
329
+ $ref: '#/components/schemas/Error'
330
+ /users-permissions/roles:
331
+ get:
332
+ tags:
333
+ - Users-Permissions - Users & Roles
334
+ summary: List roles
335
+ responses:
336
+ 200:
337
+ description: Returns list of roles
338
+ content:
339
+ application/json:
340
+ schema:
341
+ type: object
342
+ properties:
343
+ roles:
344
+ type: array
345
+ items:
346
+ allOf:
347
+ - $ref: '#/components/schemas/Users-Permissions-Role'
348
+ - type: object
349
+ properties:
350
+ nb_users:
351
+ type: number
352
+ example:
353
+ roles:
354
+ - id: 1
355
+ name: Public
356
+ description: Default role given to unauthenticated user.
357
+ type: public
358
+ createdAt: 2022-05-19T17:35:35.097Z
359
+ updatedAt: 2022-05-31T16:05:36.603Z
360
+ nb_users: 0
361
+
362
+ default:
363
+ description: Error
364
+ content:
365
+ application/json:
366
+ schema:
367
+ $ref: '#/components/schemas/Error'
368
+
369
+ post:
370
+ tags:
371
+ - Users-Permissions - Users & Roles
372
+ summary: Create a role
373
+ requestBody:
374
+ $ref: '#/components/requestBodies/Users-Permissions-RoleRequest'
375
+ responses:
376
+ 200:
377
+ description: Returns ok if the role was create
378
+ content:
379
+ application/json:
380
+ schema:
381
+ type: object
382
+ properties:
383
+ ok:
384
+ type: enum
385
+ enum: [true]
386
+ default:
387
+ description: Error
388
+ content:
389
+ application/json:
390
+ schema:
391
+ $ref: '#/components/schemas/Error'
392
+
393
+ /users-permissions/roles/{id}:
394
+ get:
395
+ tags:
396
+ - Users-Permissions - Users & Roles
397
+ summary: Get a role
398
+ parameters:
399
+ - in: path
400
+ name: id
401
+ required: true
402
+ schema:
403
+ type: string
404
+ description: role Id
405
+ responses:
406
+ 200:
407
+ description: Returns the role
408
+ content:
409
+ application/json:
410
+ schema:
411
+ type: object
412
+ properties:
413
+ role:
414
+ $ref: '#/components/schemas/Users-Permissions-Role'
415
+ example:
416
+ role:
417
+ id: 1
418
+ name: Public
419
+ description: Default role given to unauthenticated user.
420
+ type: public
421
+ createdAt: 2022-05-19T17:35:35.097Z
422
+ updatedAt: 2022-05-31T16:05:36.603Z
423
+ permissions:
424
+ api::content-type.content-type:
425
+ controllers:
426
+ controllerA:
427
+ find:
428
+ enabled: true
429
+ default:
430
+ description: Error
431
+ content:
432
+ application/json:
433
+ schema:
434
+ $ref: '#/components/schemas/Error'
435
+
436
+ /users-permissions/roles/{role}:
437
+ put:
438
+ tags:
439
+ - Users-Permissions - Users & Roles
440
+ summary: Update a role
441
+ parameters:
442
+ - in: path
443
+ name: role
444
+ required: true
445
+ schema:
446
+ type: string
447
+ description: role Id
448
+ requestBody:
449
+ $ref: '#/components/requestBodies/Users-Permissions-RoleRequest'
450
+ responses:
451
+ 200:
452
+ description: Returns ok if the role was udpated
453
+ content:
454
+ application/json:
455
+ schema:
456
+ type: object
457
+ properties:
458
+ ok:
459
+ type: enum
460
+ enum: [true]
461
+ default:
462
+ description: Error
463
+ content:
464
+ application/json:
465
+ schema:
466
+ $ref: '#/components/schemas/Error'
467
+
468
+ delete:
469
+ tags:
470
+ - Users-Permissions - Users & Roles
471
+ summary: Delete a role
472
+ parameters:
473
+ - in: path
474
+ name: role
475
+ required: true
476
+ schema:
477
+ type: string
478
+ description: role Id
479
+ responses:
480
+ 200:
481
+ description: Returns ok if the role was delete
482
+ content:
483
+ application/json:
484
+ schema:
485
+ type: object
486
+ properties:
487
+ ok:
488
+ type: enum
489
+ enum: [true]
490
+ default:
491
+ description: Error
492
+ content:
493
+ application/json:
494
+ schema:
495
+ $ref: '#/components/schemas/Error'
496
+
497
+ /users:
498
+ get:
499
+ tags:
500
+ - Users-Permissions - Users & Roles
501
+ summary: Get list of users
502
+ responses:
503
+ 200:
504
+ description: Returns an array of users
505
+ content:
506
+ application/json:
507
+ schema:
508
+ type: array
509
+ items:
510
+ $ref: '#/components/schemas/Users-Permissions-User'
511
+ example:
512
+ - id: 9
513
+ username: foao@strapi.io
514
+ email: foao@strapi.io
515
+ provider: local
516
+ confirmed: false
517
+ blocked: false
518
+ createdAt: 2022-06-01T18:32:35.211Z
519
+ updatedAt: 2022-06-01T18:32:35.217Z
520
+ default:
521
+ description: Error
522
+ content:
523
+ application/json:
524
+ schema:
525
+ $ref: '#/components/schemas/Error'
526
+
527
+ post:
528
+ tags:
529
+ - Users-Permissions - Users & Roles
530
+ summary: Create a user
531
+ requestBody:
532
+ required: true
533
+ content:
534
+ application/json:
535
+ schema:
536
+ type: object
537
+ required:
538
+ - username
539
+ - email
540
+ - password
541
+ properties:
542
+ email:
543
+ type: string
544
+ username:
545
+ type: string
546
+ password:
547
+ type: string
548
+ example:
549
+ username: foo
550
+ email: foo@strapi.io
551
+ password: foo-password
552
+ responses:
553
+ 201:
554
+ description: Returns created user info
555
+ content:
556
+ application/json:
557
+ schema:
558
+ allOf:
559
+ - $ref: '#/components/schemas/Users-Permissions-User'
560
+ - type: object
561
+ properties:
562
+ role:
563
+ $ref: '#/components/schemas/Users-Permissions-Role'
564
+ example:
565
+ id: 1
566
+ username: foo
567
+ email: foo@strapi.io
568
+ provider: local
569
+ confirmed: false
570
+ blocked: false
571
+ createdAt: 2022-05-19T17:35:35.096Z
572
+ updatedAt: 2022-05-19T17:35:35.096Z
573
+ role:
574
+ id: 1
575
+ name: X
576
+ description: Default role given to authenticated user.
577
+ type: authenticated
578
+ createdAt: 2022-05-19T17:35:35.096Z
579
+ updatedAt: 2022-06-04T07:11:59.551Z
580
+ default:
581
+ description: Error
582
+ content:
583
+ application/json:
584
+ schema:
585
+ $ref: '#/components/schemas/Error'
586
+ /users/{id}:
587
+ get:
588
+ tags:
589
+ - Users-Permissions - Users & Roles
590
+ summary: Get a user
591
+ parameters:
592
+ - in: path
593
+ name: id
594
+ required: true
595
+ schema:
596
+ type: string
597
+ description: user Id
598
+ responses:
599
+ 200:
600
+ description: Returns a user
601
+ content:
602
+ application/json:
603
+ schema:
604
+ $ref: '#/components/schemas/Users-Permissions-User'
605
+ example:
606
+ id: 1
607
+ username: foo
608
+ email: foo@strapi.io
609
+ provider: local
610
+ confirmed: false
611
+ blocked: false
612
+ createdAt: 2022-05-19T17:35:35.096Z
613
+ updatedAt: 2022-05-19T17:35:35.096Z
614
+ default:
615
+ description: Error
616
+ content:
617
+ application/json:
618
+ schema:
619
+ $ref: '#/components/schemas/Error'
620
+ put:
621
+ tags:
622
+ - Users-Permissions - Users & Roles
623
+ summary: Update a user
624
+ parameters:
625
+ - in: path
626
+ name: id
627
+ required: true
628
+ schema:
629
+ type: string
630
+ description: user Id
631
+ requestBody:
632
+ required: true
633
+ content:
634
+ application/json:
635
+ schema:
636
+ type: object
637
+ required:
638
+ - username
639
+ - email
640
+ - password
641
+ properties:
642
+ email:
643
+ type: string
644
+ username:
645
+ type: string
646
+ password:
647
+ type: string
648
+ example:
649
+ username: foo
650
+ email: foo@strapi.io
651
+ password: foo-password
652
+ responses:
653
+ 200:
654
+ description: Returns updated user info
655
+ content:
656
+ application/json:
657
+ schema:
658
+ allOf:
659
+ - $ref: '#/components/schemas/Users-Permissions-User'
660
+ - type: object
661
+ properties:
662
+ role:
663
+ $ref: '#/components/schemas/Users-Permissions-Role'
664
+ example:
665
+ id: 1
666
+ username: foo
667
+ email: foo@strapi.io
668
+ provider: local
669
+ confirmed: false
670
+ blocked: false
671
+ createdAt: 2022-05-19T17:35:35.096Z
672
+ updatedAt: 2022-05-19T17:35:35.096Z
673
+ role:
674
+ id: 1
675
+ name: X
676
+ description: Default role given to authenticated user.
677
+ type: authenticated
678
+ createdAt: 2022-05-19T17:35:35.096Z
679
+ updatedAt: 2022-06-04T07:11:59.551Z
680
+ default:
681
+ description: Error
682
+ content:
683
+ application/json:
684
+ schema:
685
+ $ref: '#/components/schemas/Error'
686
+ delete:
687
+ tags:
688
+ - Users-Permissions - Users & Roles
689
+ summary: Delete a user
690
+ parameters:
691
+ - in: path
692
+ name: id
693
+ required: true
694
+ schema:
695
+ type: string
696
+ description: user Id
697
+ responses:
698
+ '200':
699
+ description: Returns deleted user info
700
+ content:
701
+ application/json:
702
+ schema:
703
+ allOf:
704
+ - $ref: '#/components/schemas/Users-Permissions-User'
705
+ example:
706
+ id: 1
707
+ username: foo
708
+ email: foo@strapi.io
709
+ provider: local
710
+ confirmed: false
711
+ blocked: false
712
+ createdAt: 2022-05-19T17:35:35.096Z
713
+ updatedAt: 2022-05-19T17:35:35.096Z
714
+ default:
715
+ description: Error
716
+ content:
717
+ application/json:
718
+ schema:
719
+ $ref: '#/components/schemas/Error'
720
+ /users/me:
721
+ get:
722
+ tags:
723
+ - Users-Permissions - Users & Roles
724
+ summary: Get authenticated user info
725
+ responses:
726
+ 200:
727
+ description: Returns user info
728
+ content:
729
+ application/json:
730
+ schema:
731
+ $ref: '#/components/schemas/Users-Permissions-User'
732
+ example:
733
+ id: 1
734
+ username: foo
735
+ email: foo@strapi.io
736
+ provider: local
737
+ confirmed: false
738
+ blocked: false
739
+ createdAt: 2022-05-19T17:35:35.096Z
740
+ updatedAt: 2022-05-19T17:35:35.096Z
741
+ default:
742
+ description: Error
743
+ content:
744
+ application/json:
745
+ schema:
746
+ $ref: '#/components/schemas/Error'
747
+
748
+ /users/count:
749
+ get:
750
+ tags:
751
+ - Users-Permissions - Users & Roles
752
+ summary: Get user count
753
+ responses:
754
+ 200:
755
+ description: Returns a number
756
+ content:
757
+ application/json:
758
+ schema:
759
+ type: number
760
+ example: 1
761
+ default:
762
+ description: Error
763
+ content:
764
+ application/json:
765
+ schema:
766
+ $ref: '#/components/schemas/Error'
767
+
768
+ components:
769
+ schemas:
770
+ Users-Permissions-Role:
771
+ type: object
772
+ properties:
773
+ id:
774
+ type: number
775
+ name:
776
+ type: string
777
+ description:
778
+ type: string
779
+ type:
780
+ type: string
781
+ createdAt:
782
+ type: datetime
783
+ updatedAt:
784
+ type: datetime
785
+
786
+ Users-Permissions-User:
787
+ type: object
788
+ properties:
789
+ id:
790
+ type: number
791
+ example: 1
792
+ username:
793
+ type: string
794
+ example: 'foo.bar'
795
+ email:
796
+ type: string
797
+ example: 'foo.bar@strapi.io'
798
+ provider:
799
+ type: string
800
+ example: 'local'
801
+ confirmed:
802
+ type: boolean
803
+ example: true
804
+ blocked:
805
+ type: boolean
806
+ example: false
807
+ createdAt:
808
+ type: datetime
809
+ example: '2022-06-02T08:32:06.258Z'
810
+ updatedAt:
811
+ type: datetime
812
+ example: '2022-06-02T08:32:06.267Z'
813
+
814
+ Users-Permissions-UserRegistration:
815
+ type: object
816
+ properties:
817
+ jwt:
818
+ type: string
819
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
820
+ user:
821
+ $ref: '#/components/schemas/Users-Permissions-User'
822
+
823
+ Users-Permissions-PermissionsTree:
824
+ type: object
825
+ additionalProperties:
826
+ type: object
827
+ description: every api
828
+ properties:
829
+ controllers:
830
+ description: every controller of the api
831
+ type: object
832
+ additionalProperties:
833
+ type: object
834
+ additionalProperties:
835
+ description: every action of every controller
836
+ type: object
837
+ properties:
838
+ enabled:
839
+ type: boolean
840
+ policy:
841
+ type: string
842
+
843
+ parameters:
844
+ responses:
845
+ examples:
846
+ requestBodies:
847
+ Users-Permissions-RoleRequest:
848
+ required: true
849
+ content:
850
+ application/json:
851
+ schema:
852
+ type: object
853
+ properties:
854
+ name:
855
+ type: string
856
+ description:
857
+ type: string
858
+ type:
859
+ type: string
860
+ permissions:
861
+ $ref: '#/components/schemas/Users-Permissions-PermissionsTree'
862
+ example:
863
+ name: foo
864
+ description: role foo
865
+ permissions:
866
+ api::content-type.content-type:
867
+ controllers:
868
+ controllerA:
869
+ find:
870
+ enabled: true