@strapi/plugin-users-permissions 4.0.0-next.7 → 4.0.1

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 (180) hide show
  1. package/admin/src/components/BoundRoute/getMethodColor.js +41 -0
  2. package/admin/src/components/BoundRoute/index.js +40 -24
  3. package/admin/src/components/FormModal/Input/index.js +121 -0
  4. package/admin/src/components/FormModal/index.js +123 -0
  5. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.js +19 -26
  6. package/admin/src/components/Permissions/PermissionRow/SubCategory.js +118 -0
  7. package/admin/src/components/Permissions/PermissionRow/index.js +9 -48
  8. package/admin/src/components/Permissions/index.js +36 -24
  9. package/admin/src/components/Permissions/init.js +1 -6
  10. package/admin/src/components/Policies/index.js +46 -47
  11. package/admin/src/components/UsersPermissions/index.js +29 -26
  12. package/admin/src/components/UsersPermissions/init.js +1 -2
  13. package/admin/src/hooks/useFetchRole/index.js +17 -7
  14. package/admin/src/hooks/useForm/index.js +3 -29
  15. package/admin/src/hooks/useForm/reducer.js +2 -21
  16. package/admin/src/hooks/usePlugins/index.js +12 -21
  17. package/admin/src/hooks/usePlugins/reducer.js +0 -3
  18. package/admin/src/index.js +29 -34
  19. package/admin/src/pages/AdvancedSettings/index.js +210 -193
  20. package/admin/src/pages/AdvancedSettings/utils/api.js +13 -0
  21. package/admin/src/pages/AdvancedSettings/utils/layout.js +96 -0
  22. package/admin/src/pages/AdvancedSettings/utils/schema.js +21 -0
  23. package/admin/src/pages/EmailTemplates/components/EmailForm.js +173 -0
  24. package/admin/src/pages/EmailTemplates/components/EmailTable.js +116 -0
  25. package/admin/src/pages/EmailTemplates/index.js +125 -198
  26. package/admin/src/pages/EmailTemplates/utils/api.js +13 -0
  27. package/admin/src/pages/Providers/index.js +208 -216
  28. package/admin/src/pages/Providers/utils/api.js +21 -0
  29. package/admin/src/pages/Providers/utils/forms.js +168 -126
  30. package/admin/src/pages/Roles/CreatePage/index.js +155 -147
  31. package/admin/src/pages/Roles/EditPage/index.js +162 -134
  32. package/admin/src/pages/Roles/ListPage/components/TableBody.js +96 -0
  33. package/admin/src/pages/Roles/ListPage/index.js +176 -156
  34. package/admin/src/pages/Roles/ListPage/utils/api.js +28 -0
  35. package/admin/src/pages/Roles/index.js +14 -8
  36. package/admin/src/translations/ar.json +0 -8
  37. package/admin/src/translations/cs.json +0 -8
  38. package/admin/src/translations/de.json +0 -8
  39. package/admin/src/translations/dk.json +0 -8
  40. package/admin/src/translations/en.json +33 -12
  41. package/admin/src/translations/es.json +0 -8
  42. package/admin/src/translations/fr.json +0 -8
  43. package/admin/src/translations/id.json +0 -8
  44. package/admin/src/translations/it.json +0 -8
  45. package/admin/src/translations/ja.json +0 -8
  46. package/admin/src/translations/ko.json +93 -54
  47. package/admin/src/translations/ms.json +0 -8
  48. package/admin/src/translations/nl.json +0 -8
  49. package/admin/src/translations/pl.json +0 -8
  50. package/admin/src/translations/pt-BR.json +0 -8
  51. package/admin/src/translations/pt.json +0 -8
  52. package/admin/src/translations/ru.json +0 -8
  53. package/admin/src/translations/sk.json +0 -8
  54. package/admin/src/translations/sv.json +0 -8
  55. package/admin/src/translations/th.json +0 -8
  56. package/admin/src/translations/tr.json +0 -8
  57. package/admin/src/translations/uk.json +0 -8
  58. package/admin/src/translations/vi.json +0 -8
  59. package/admin/src/translations/zh-Hans.json +5 -14
  60. package/admin/src/translations/zh.json +0 -8
  61. package/admin/src/utils/axiosInstance.js +36 -0
  62. package/admin/src/utils/formatPluginName.js +26 -0
  63. package/admin/src/utils/index.js +1 -0
  64. package/documentation/1.0.0/overrides/users-permissions-Role.json +6 -6
  65. package/documentation/1.0.0/overrides/users-permissions-User.json +7 -7
  66. package/jest.config.front.js +10 -0
  67. package/package.json +35 -32
  68. package/server/bootstrap/index.js +20 -25
  69. package/server/config.js +3 -3
  70. package/server/content-types/index.js +3 -3
  71. package/server/content-types/permission/index.js +30 -3
  72. package/server/content-types/role/index.js +47 -3
  73. package/server/content-types/user/index.js +65 -4
  74. package/server/controllers/auth.js +85 -237
  75. package/server/controllers/content-manager-user.js +183 -0
  76. package/server/controllers/index.js +12 -6
  77. package/server/controllers/permissions.js +26 -0
  78. package/server/controllers/role.js +77 -0
  79. package/server/controllers/settings.js +85 -0
  80. package/server/controllers/user.js +119 -45
  81. package/server/controllers/validation/auth.js +29 -0
  82. package/server/controllers/validation/user.js +38 -0
  83. package/server/graphql/index.js +44 -0
  84. package/server/graphql/mutations/auth/email-confirmation.js +39 -0
  85. package/server/graphql/mutations/auth/forgot-password.js +38 -0
  86. package/server/graphql/mutations/auth/login.js +38 -0
  87. package/server/graphql/mutations/auth/register.js +39 -0
  88. package/server/graphql/mutations/auth/reset-password.js +41 -0
  89. package/server/graphql/mutations/crud/role/create-role.js +37 -0
  90. package/server/graphql/mutations/crud/role/delete-role.js +28 -0
  91. package/server/graphql/mutations/crud/role/update-role.js +38 -0
  92. package/server/graphql/mutations/crud/user/create-user.js +48 -0
  93. package/server/graphql/mutations/crud/user/delete-user.js +42 -0
  94. package/server/graphql/mutations/crud/user/update-user.js +49 -0
  95. package/server/graphql/mutations/index.js +42 -0
  96. package/server/graphql/queries/index.js +13 -0
  97. package/server/graphql/queries/me.js +17 -0
  98. package/server/graphql/resolvers-configs.js +37 -0
  99. package/server/graphql/types/create-role-payload.js +11 -0
  100. package/server/graphql/types/delete-role-payload.js +11 -0
  101. package/server/graphql/types/index.js +21 -0
  102. package/server/graphql/types/login-input.js +13 -0
  103. package/server/graphql/types/login-payload.js +12 -0
  104. package/server/graphql/types/me-role.js +14 -0
  105. package/server/graphql/types/me.js +16 -0
  106. package/server/graphql/types/password-payload.js +11 -0
  107. package/server/graphql/types/register-input.js +13 -0
  108. package/server/graphql/types/update-role-payload.js +11 -0
  109. package/server/graphql/utils.js +27 -0
  110. package/server/index.js +21 -0
  111. package/server/middlewares/index.js +2 -2
  112. package/server/{policies → middlewares}/rateLimit.js +3 -7
  113. package/server/register.js +11 -0
  114. package/server/routes/admin/index.js +10 -0
  115. package/server/routes/admin/permissions.js +20 -0
  116. package/server/routes/admin/role.js +79 -0
  117. package/server/routes/admin/settings.js +95 -0
  118. package/server/routes/content-api/auth.js +73 -0
  119. package/server/routes/content-api/index.js +11 -0
  120. package/server/routes/content-api/permissions.js +9 -0
  121. package/server/routes/content-api/role.js +29 -0
  122. package/server/routes/content-api/user.js +61 -0
  123. package/server/routes/index.js +4 -3
  124. package/server/services/index.js +10 -8
  125. package/server/services/jwt.js +9 -17
  126. package/server/services/providers.js +32 -33
  127. package/server/services/role.js +177 -0
  128. package/server/services/user.js +9 -15
  129. package/server/services/users-permissions.js +140 -338
  130. package/server/strategies/users-permissions.js +123 -0
  131. package/server/utils/index.d.ts +2 -0
  132. package/strapi-admin.js +3 -0
  133. package/strapi-server.js +1 -19
  134. package/admin/src/assets/images/logo.svg +0 -1
  135. package/admin/src/components/BaselineAlignement/index.js +0 -33
  136. package/admin/src/components/Bloc/index.js +0 -10
  137. package/admin/src/components/BoundRoute/Components.js +0 -78
  138. package/admin/src/components/ContainerFluid/index.js +0 -13
  139. package/admin/src/components/FormBloc/index.js +0 -61
  140. package/admin/src/components/IntlInput/index.js +0 -38
  141. package/admin/src/components/ListBaselineAlignment/index.js +0 -8
  142. package/admin/src/components/ListRow/Components.js +0 -74
  143. package/admin/src/components/ListRow/index.js +0 -35
  144. package/admin/src/components/ModalForm/Wrapper.js +0 -12
  145. package/admin/src/components/ModalForm/index.js +0 -59
  146. package/admin/src/components/Permissions/ListWrapper.js +0 -9
  147. package/admin/src/components/Permissions/PermissionRow/BaselineAlignment.js +0 -7
  148. package/admin/src/components/Permissions/PermissionRow/RowStyle.js +0 -28
  149. package/admin/src/components/Permissions/PermissionRow/SubCategory/ConditionsButtonWrapper.js +0 -13
  150. package/admin/src/components/Permissions/PermissionRow/SubCategory/PolicyWrapper.js +0 -8
  151. package/admin/src/components/Permissions/PermissionRow/SubCategory/SubCategoryWrapper.js +0 -26
  152. package/admin/src/components/Permissions/PermissionRow/SubCategory/index.js +0 -116
  153. package/admin/src/components/Policies/Components.js +0 -26
  154. package/admin/src/components/PrefixedIcon/index.js +0 -27
  155. package/admin/src/components/Roles/EmptyRole/BaselineAlignment.js +0 -7
  156. package/admin/src/components/Roles/EmptyRole/index.js +0 -27
  157. package/admin/src/components/Roles/RoleListWrapper/index.js +0 -17
  158. package/admin/src/components/Roles/RoleRow/RoleDescription.js +0 -9
  159. package/admin/src/components/Roles/RoleRow/index.js +0 -45
  160. package/admin/src/components/Roles/index.js +0 -3
  161. package/admin/src/components/SizedInput/index.js +0 -24
  162. package/admin/src/pages/AdvancedSettings/reducer.js +0 -65
  163. package/admin/src/pages/AdvancedSettings/utils/form.js +0 -52
  164. package/admin/src/pages/EmailTemplates/CustomTextInput.js +0 -105
  165. package/admin/src/pages/EmailTemplates/Wrapper.js +0 -36
  166. package/admin/src/pages/EmailTemplates/reducer.js +0 -58
  167. package/admin/src/pages/EmailTemplates/utils/forms.js +0 -81
  168. package/admin/src/pages/Roles/ListPage/BaselineAlignment.js +0 -8
  169. package/server/content-types/permission/schema.json +0 -48
  170. package/server/content-types/role/schema.json +0 -46
  171. package/server/content-types/user/schema.json +0 -66
  172. package/server/controllers/user/admin.js +0 -230
  173. package/server/controllers/user/api.js +0 -174
  174. package/server/controllers/users-permissions.js +0 -271
  175. package/server/middlewares/users-permissions.js +0 -36
  176. package/server/policies/index.js +0 -11
  177. package/server/policies/isAuthenticated.js +0 -9
  178. package/server/policies/permissions.js +0 -94
  179. package/server/routes/routes.json +0 -381
  180. package/server/schema.graphql.js +0 -317
@@ -1,381 +0,0 @@
1
- {
2
- "routes": [
3
- {
4
- "method": "GET",
5
- "path": "/",
6
- "handler": "users-permissions.index",
7
- "config": {
8
- "policies": []
9
- }
10
- },
11
- {
12
- "method": "GET",
13
- "path": "/search/:id",
14
- "handler": "users-permissions.searchUsers",
15
- "config": {
16
- "policies": [],
17
- "description": "Search for users",
18
- "tag": {
19
- "plugin": "users-permissions",
20
- "name": "User",
21
- "actionType": "find"
22
- }
23
- }
24
- },
25
- {
26
- "method": "GET",
27
- "path": "/policies",
28
- "handler": "users-permissions.getPolicies",
29
- "config": {
30
- "policies": []
31
- }
32
- },
33
- {
34
- "method": "GET",
35
- "path": "/roles/:id",
36
- "handler": "users-permissions.getRole",
37
- "config": {
38
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.roles.read"]]],
39
- "description": "Retrieve a role depending on its id",
40
- "tag": {
41
- "plugin": "users-permissions",
42
- "name": "Role",
43
- "actionType": "findOne"
44
- }
45
- }
46
- },
47
- {
48
- "method": "GET",
49
- "path": "/roles",
50
- "handler": "users-permissions.getRoles",
51
- "config": {
52
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.roles.read"]]],
53
- "description": "Retrieve all role documents",
54
- "tag": {
55
- "plugin": "users-permissions",
56
- "name": "Role",
57
- "actionType": "find"
58
- }
59
- }
60
- },
61
- {
62
- "method": "GET",
63
- "path": "/routes",
64
- "handler": "users-permissions.getRoutes",
65
- "config": {
66
- "policies": []
67
- }
68
- },
69
- {
70
- "method": "GET",
71
- "path": "/email-templates",
72
- "handler": "users-permissions.getEmailTemplate",
73
- "config": {
74
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.email-templates.read"]]]
75
- }
76
- },
77
- {
78
- "method": "PUT",
79
- "path": "/email-templates",
80
- "handler": "users-permissions.updateEmailTemplate",
81
- "config": {
82
- "policies": [
83
- ["admin::hasPermissions", ["plugin::users-permissions.email-templates.update"]]
84
- ]
85
- }
86
- },
87
- {
88
- "method": "GET",
89
- "path": "/advanced",
90
- "handler": "users-permissions.getAdvancedSettings",
91
- "config": {
92
- "policies": [
93
- ["admin::hasPermissions", ["plugin::users-permissions.advanced-settings.read"]]
94
- ]
95
- }
96
- },
97
- {
98
- "method": "PUT",
99
- "path": "/advanced",
100
- "handler": "users-permissions.updateAdvancedSettings",
101
- "config": {
102
- "policies": [
103
- ["admin::hasPermissions", ["plugin::users-permissions.advanced-settings.update"]]
104
- ]
105
- }
106
- },
107
- {
108
- "method": "GET",
109
- "path": "/permissions",
110
- "handler": "users-permissions.getPermissions",
111
- "config": {
112
- "policies": []
113
- }
114
- },
115
- {
116
- "method": "GET",
117
- "path": "/providers",
118
- "handler": "users-permissions.getProviders",
119
- "config": {
120
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.providers.read"]]]
121
- }
122
- },
123
-
124
- {
125
- "method": "PUT",
126
- "path": "/providers",
127
- "handler": "users-permissions.updateProviders",
128
- "config": {
129
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.providers.update"]]]
130
- }
131
- },
132
- {
133
- "method": "POST",
134
- "path": "/roles",
135
- "handler": "users-permissions.createRole",
136
- "config": {
137
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.roles.create"]]],
138
- "description": "Create a new role",
139
- "tag": {
140
- "plugin": "users-permissions",
141
- "name": "Role",
142
- "actionType": "create"
143
- }
144
- }
145
- },
146
- {
147
- "method": "PUT",
148
- "path": "/roles/:role",
149
- "handler": "users-permissions.updateRole",
150
- "config": {
151
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.roles.update"]]],
152
- "description": "Update a role",
153
- "tag": {
154
- "plugin": "users-permissions",
155
- "name": "Role",
156
- "actionType": "update"
157
- }
158
- }
159
- },
160
- {
161
- "method": "DELETE",
162
- "path": "/roles/:role",
163
- "handler": "users-permissions.deleteRole",
164
- "config": {
165
- "policies": [["admin::hasPermissions", ["plugin::users-permissions.roles.delete"]]],
166
- "description": "Delete a role",
167
- "tag": {
168
- "plugin": "users-permissions",
169
- "name": "Role",
170
- "actionType": "destroy"
171
- }
172
- }
173
- },
174
- {
175
- "method": "GET",
176
- "path": "/connect/*",
177
- "handler": "auth.connect",
178
- "config": {
179
- "policies": ["plugin::users-permissions.rateLimit"],
180
- "prefix": "",
181
- "description": "Connect a provider",
182
- "tag": {
183
- "plugin": "users-permissions",
184
- "name": "User"
185
- }
186
- }
187
- },
188
- {
189
- "method": "POST",
190
- "path": "/auth/local",
191
- "handler": "auth.callback",
192
- "config": {
193
- "policies": ["plugin::users-permissions.rateLimit"],
194
- "prefix": "",
195
- "description": "Login a user using the identifiers email and password",
196
- "tag": {
197
- "plugin": "users-permissions",
198
- "name": "User"
199
- }
200
- }
201
- },
202
- {
203
- "method": "POST",
204
- "path": "/auth/local/register",
205
- "handler": "auth.register",
206
- "config": {
207
- "policies": ["plugin::users-permissions.rateLimit"],
208
- "prefix": "",
209
- "description": "Register a new user with the default role",
210
- "tag": {
211
- "plugin": "users-permissions",
212
- "name": "User",
213
- "actionType": "create"
214
- }
215
- }
216
- },
217
- {
218
- "method": "GET",
219
- "path": "/auth/:provider/callback",
220
- "handler": "auth.callback",
221
- "config": {
222
- "policies": [],
223
- "prefix": "",
224
- "description": "Successfull redirection after approving a provider",
225
- "tag": {
226
- "plugin": "users-permissions",
227
- "name": "User"
228
- }
229
- }
230
- },
231
- {
232
- "method": "POST",
233
- "path": "/auth/forgot-password",
234
- "handler": "auth.forgotPassword",
235
- "config": {
236
- "policies": ["plugin::users-permissions.rateLimit"],
237
- "prefix": "",
238
- "description": "Send the reset password email link",
239
- "tag": {
240
- "plugin": "users-permissions",
241
- "name": "User"
242
- }
243
- }
244
- },
245
- {
246
- "method": "POST",
247
- "path": "/auth/reset-password",
248
- "handler": "auth.resetPassword",
249
- "config": {
250
- "policies": ["plugin::users-permissions.rateLimit"],
251
- "prefix": "",
252
- "description": "Reset user password with a code (resetToken)",
253
- "tag": {
254
- "plugin": "users-permissions",
255
- "name": "User"
256
- }
257
- }
258
- },
259
- {
260
- "method": "GET",
261
- "path": "/auth/email-confirmation",
262
- "handler": "auth.emailConfirmation",
263
- "config": {
264
- "policies": [],
265
- "prefix": "",
266
- "description": "Validate a user account",
267
- "tag": {
268
- "plugin": "users-permissions",
269
- "name": "User"
270
- }
271
- }
272
- },
273
- {
274
- "method": "POST",
275
- "path": "/auth/send-email-confirmation",
276
- "handler": "auth.sendEmailConfirmation",
277
- "config": {
278
- "policies": [],
279
- "prefix": "",
280
- "description": "Send a confirmation email to user",
281
- "tag": {
282
- "plugin": "users-permissions",
283
- "name": "User"
284
- }
285
- }
286
- },
287
- {
288
- "method": "GET",
289
- "path": "/users/count",
290
- "handler": "user.count",
291
- "config": {
292
- "prefix": "",
293
- "policies": []
294
- }
295
- },
296
- {
297
- "method": "GET",
298
- "path": "/users",
299
- "handler": "user.find",
300
- "config": {
301
- "policies": [],
302
- "prefix": "",
303
- "description": "Retrieve all user documents",
304
- "tag": {
305
- "plugin": "users-permissions",
306
- "name": "User",
307
- "actionType": "find"
308
- }
309
- }
310
- },
311
- {
312
- "method": "GET",
313
- "path": "/users/me",
314
- "handler": "user.me",
315
- "config": {
316
- "policies": [],
317
- "prefix": "",
318
- "description": "Retrieve the logged in user information",
319
- "tag": {
320
- "plugin": "users-permissions",
321
- "name": "User",
322
- "actionType": "findOne"
323
- }
324
- }
325
- },
326
- {
327
- "method": "GET",
328
- "path": "/users/:id",
329
- "handler": "user.findOne",
330
- "config": {
331
- "policies": [],
332
- "prefix": "",
333
- "description": "Retrieve a single user depending on his id",
334
- "tag": {
335
- "plugin": "users-permissions",
336
- "name": "User",
337
- "actionType": "findOne"
338
- }
339
- }
340
- },
341
- {
342
- "method": "POST",
343
- "path": "/users",
344
- "handler": "user.create",
345
- "config": {
346
- "policies": [],
347
- "prefix": ""
348
- }
349
- },
350
- {
351
- "method": "PUT",
352
- "path": "/users/:id",
353
- "handler": "user.update",
354
- "config": {
355
- "policies": [],
356
- "prefix": "",
357
- "description": "Update an existing user",
358
- "tag": {
359
- "plugin": "users-permissions",
360
- "name": "User",
361
- "actionType": "update"
362
- }
363
- }
364
- },
365
- {
366
- "method": "DELETE",
367
- "path": "/users/:id",
368
- "handler": "user.destroy",
369
- "config": {
370
- "policies": [],
371
- "prefix": "",
372
- "description": "Delete an existing user",
373
- "tag": {
374
- "plugin": "users-permissions",
375
- "name": "User",
376
- "actionType": "destroy"
377
- }
378
- }
379
- }
380
- ]
381
- }
@@ -1,317 +0,0 @@
1
- 'use strict';
2
-
3
- const _ = require('lodash');
4
-
5
- /**
6
- * Throws an ApolloError if context body contains a bad request
7
- * @param contextBody - body of the context object given to the resolver
8
- * @throws ApolloError if the body is a bad request
9
- */
10
- function checkBadRequest(contextBody) {
11
- if (_.get(contextBody, 'statusCode', 200) !== 200) {
12
- const message = _.get(contextBody, 'error', 'Bad Request');
13
- const exception = new Error(message);
14
- exception.code = _.get(contextBody, 'statusCode', 400);
15
- exception.data = contextBody;
16
- throw exception;
17
- }
18
- }
19
-
20
- module.exports = {
21
- type: {
22
- UsersPermissionsPermission: false, // Make this type NOT queriable.
23
- },
24
- definition: /* GraphQL */ `
25
- type UsersPermissionsMe {
26
- id: ID!
27
- username: String!
28
- email: String!
29
- confirmed: Boolean
30
- blocked: Boolean
31
- role: UsersPermissionsMeRole
32
- }
33
-
34
- type UsersPermissionsMeRole {
35
- id: ID!
36
- name: String!
37
- description: String
38
- type: String
39
- }
40
-
41
- input UsersPermissionsRegisterInput {
42
- username: String!
43
- email: String!
44
- password: String!
45
- }
46
-
47
- input UsersPermissionsLoginInput {
48
- identifier: String!
49
- password: String!
50
- provider: String = "local"
51
- }
52
-
53
- type UsersPermissionsLoginPayload {
54
- jwt: String
55
- user: UsersPermissionsMe!
56
- }
57
-
58
- type UserPermissionsPasswordPayload {
59
- ok: Boolean!
60
- }
61
- `,
62
- query: `
63
- me: UsersPermissionsMe
64
- `,
65
- mutation: `
66
- login(input: UsersPermissionsLoginInput!): UsersPermissionsLoginPayload!
67
- register(input: UsersPermissionsRegisterInput!): UsersPermissionsLoginPayload!
68
- forgotPassword(email: String!): UserPermissionsPasswordPayload
69
- resetPassword(password: String!, passwordConfirmation: String!, code: String!): UsersPermissionsLoginPayload
70
- emailConfirmation(confirmation: String!): UsersPermissionsLoginPayload
71
- `,
72
- resolver: {
73
- Query: {
74
- me: {
75
- resolver: 'plugin::users-permissions.user.me',
76
- },
77
- role: {
78
- resolverOf: 'plugin::users-permissions.users-permissions.getRole',
79
- resolver: async (obj, options, { context }) => {
80
- context.params = { ...context.params, ...options.input };
81
-
82
- await strapi
83
- .plugin('users-permissions')
84
- .controller('users-permissions')
85
- .getRole(context);
86
-
87
- return context.body.role;
88
- },
89
- },
90
- roles: {
91
- description: `Retrieve all the existing roles. You can't apply filters on this query.`,
92
- resolverOf: 'plugin::users-permissions.users-permissions.getRoles', // Apply the `getRoles` permissions on the resolver.
93
- resolver: async (obj, options, { context }) => {
94
- context.params = { ...context.params, ...options.input };
95
-
96
- await strapi
97
- .plugin('users-permissions')
98
- .controller('users-permissions')
99
- .getRoles(context);
100
-
101
- return context.body.roles;
102
- },
103
- },
104
- },
105
- Mutation: {
106
- createRole: {
107
- description: 'Create a new role',
108
- resolverOf: 'plugin::users-permissions.users-permissions.createRole',
109
- resolver: async (obj, options, { context }) => {
110
- await strapi
111
- .plugin('users-permissions')
112
- .controller('users-permissions')
113
- .createRole(context);
114
-
115
- return { ok: true };
116
- },
117
- },
118
- updateRole: {
119
- description: 'Update an existing role',
120
- resolverOf: 'plugin::users-permissions.users-permissions.updateRole',
121
- resolver: async (obj, options, { context }) => {
122
- context.params = { ...context.params, ...options.input };
123
- context.params.role = context.params.id;
124
-
125
- await strapi
126
- .plugin('users-permissions')
127
- .controller('users-permissions')
128
- .updateRole(context);
129
-
130
- return { ok: true };
131
- },
132
- },
133
- deleteRole: {
134
- description: 'Delete an existing role',
135
- resolverOf: 'plugin::users-permissions.users-permissions.deleteRole',
136
- resolver: async (obj, options, { context }) => {
137
- context.params = { ...context.params, ...options.input };
138
- context.params.role = context.params.id;
139
-
140
- await strapi
141
- .plugin('users-permissions')
142
- .controller('users-permissions')
143
- .deleteRole(context);
144
-
145
- return { ok: true };
146
- },
147
- },
148
- createUser: {
149
- description: 'Create a new user',
150
- resolverOf: 'plugin::users-permissions.user.create',
151
- resolver: async (obj, options, { context }) => {
152
- context.params = _.toPlainObject(options.input.where);
153
- context.request.body = _.toPlainObject(options.input.data);
154
-
155
- await strapi
156
- .plugin('users-permissions')
157
- .controller('user')
158
- .create(context);
159
-
160
- return {
161
- user: context.body,
162
- };
163
- },
164
- },
165
- updateUser: {
166
- description: 'Update an existing user',
167
- resolverOf: 'plugin::users-permissions.user.update',
168
- resolver: async (obj, options, { context }) => {
169
- context.params = _.toPlainObject(options.input.where);
170
- context.request.body = _.toPlainObject(options.input.data);
171
-
172
- await strapi
173
- .plugin('users-permissions')
174
- .controller('user')
175
- .update(context);
176
-
177
- return {
178
- user: context.body,
179
- };
180
- },
181
- },
182
- deleteUser: {
183
- description: 'Delete an existing user',
184
- resolverOf: 'plugin::users-permissions.user.destroy',
185
- resolver: async (obj, options, { context }) => {
186
- // Set parameters to context.
187
- context.params = _.toPlainObject(options.input.where);
188
- context.request.body = _.toPlainObject(options.input.data);
189
-
190
- // Retrieve user to be able to return it because
191
- // Bookshelf doesn't return the row once deleted.
192
- await strapi
193
- .plugin('users-permissions')
194
- .controller('user')
195
- .findOne(context);
196
- // Assign result to user.
197
- const user = context.body;
198
-
199
- // Run destroy query.
200
- await strapi
201
- .plugin('users-permissions')
202
- .controller('user')
203
- .destroy(context);
204
-
205
- return {
206
- user,
207
- };
208
- },
209
- },
210
- register: {
211
- description: 'Register a user',
212
- resolverOf: 'plugin::users-permissions.auth.register',
213
- resolver: async (obj, options, { context }) => {
214
- context.request.body = _.toPlainObject(options.input);
215
-
216
- await strapi
217
- .plugin('users-permissions')
218
- .controller('auth')
219
- .register(context);
220
-
221
- let output = context.body;
222
-
223
- checkBadRequest(output);
224
- return {
225
- user: output.user || output,
226
- jwt: output.jwt,
227
- };
228
- },
229
- },
230
- login: {
231
- resolverOf: 'plugin::users-permissions.auth.callback',
232
- resolver: async (obj, options, { context }) => {
233
- context.params = {
234
- ...context.params,
235
- provider: options.input.provider,
236
- };
237
- context.request.body = _.toPlainObject(options.input);
238
-
239
- await strapi
240
- .plugin('users-permissions')
241
- .controller('auth')
242
- .callback(context);
243
-
244
- let output = context.body;
245
-
246
- checkBadRequest(output);
247
- return {
248
- user: output.user || output,
249
- jwt: output.jwt,
250
- };
251
- },
252
- },
253
- forgotPassword: {
254
- description: 'Request a reset password token',
255
- resolverOf: 'plugin::users-permissions.auth.forgotPassword',
256
- resolver: async (obj, options, { context }) => {
257
- context.request.body = _.toPlainObject(options);
258
-
259
- await strapi
260
- .plugin('users-permissions')
261
- .controller('auth')
262
- .forgotPassword(context);
263
-
264
- let output = context.body;
265
-
266
- checkBadRequest(output);
267
-
268
- return {
269
- ok: output.ok || output,
270
- };
271
- },
272
- },
273
- resetPassword: {
274
- description: 'Reset user password. Confirm with a code (resetToken from forgotPassword)',
275
- resolverOf: 'plugin::users-permissions.auth.resetPassword',
276
- resolver: async (obj, options, { context }) => {
277
- context.request.body = _.toPlainObject(options);
278
-
279
- await strapi
280
- .plugin('users-permissions')
281
- .controller('auth')
282
- .resetPassword(context);
283
-
284
- let output = context.body;
285
-
286
- checkBadRequest(output);
287
-
288
- return {
289
- user: output.user || output,
290
- jwt: output.jwt,
291
- };
292
- },
293
- },
294
- emailConfirmation: {
295
- description: 'Confirm an email users email address',
296
- resolverOf: 'plugin::users-permissions.auth.emailConfirmation',
297
- resolver: async (obj, options, { context }) => {
298
- context.query = _.toPlainObject(options);
299
-
300
- await strapi
301
- .plugin('users-permissions')
302
- .controller('auth')
303
- .emailConfirmation(context, null, true);
304
-
305
- let output = context.body;
306
-
307
- checkBadRequest(output);
308
-
309
- return {
310
- user: output.user || output,
311
- jwt: output.jwt,
312
- };
313
- },
314
- },
315
- },
316
- },
317
- };