@strapi/plugin-users-permissions 4.0.0-next.9 → 4.0.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 (177) 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 +0 -8
  19. package/admin/src/pages/AdvancedSettings/index.js +203 -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 +22 -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 +117 -197
  26. package/admin/src/pages/EmailTemplates/utils/api.js +13 -0
  27. package/admin/src/pages/Providers/index.js +206 -221
  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/translations/ar.json +0 -8
  36. package/admin/src/translations/cs.json +0 -8
  37. package/admin/src/translations/de.json +0 -8
  38. package/admin/src/translations/dk.json +0 -8
  39. package/admin/src/translations/en.json +33 -12
  40. package/admin/src/translations/es.json +0 -8
  41. package/admin/src/translations/fr.json +0 -8
  42. package/admin/src/translations/id.json +0 -8
  43. package/admin/src/translations/it.json +0 -8
  44. package/admin/src/translations/ja.json +0 -8
  45. package/admin/src/translations/ko.json +0 -8
  46. package/admin/src/translations/ms.json +0 -8
  47. package/admin/src/translations/nl.json +0 -8
  48. package/admin/src/translations/pl.json +0 -8
  49. package/admin/src/translations/pt-BR.json +0 -8
  50. package/admin/src/translations/pt.json +0 -8
  51. package/admin/src/translations/ru.json +0 -8
  52. package/admin/src/translations/sk.json +0 -8
  53. package/admin/src/translations/sv.json +0 -8
  54. package/admin/src/translations/th.json +0 -8
  55. package/admin/src/translations/tr.json +0 -8
  56. package/admin/src/translations/uk.json +0 -8
  57. package/admin/src/translations/vi.json +0 -8
  58. package/admin/src/translations/zh-Hans.json +5 -14
  59. package/admin/src/translations/zh.json +0 -8
  60. package/admin/src/utils/axiosInstance.js +36 -0
  61. package/admin/src/utils/formatPluginName.js +26 -0
  62. package/admin/src/utils/index.js +1 -0
  63. package/documentation/1.0.0/overrides/users-permissions-Role.json +6 -6
  64. package/documentation/1.0.0/overrides/users-permissions-User.json +7 -7
  65. package/package.json +30 -31
  66. package/server/bootstrap/index.js +19 -21
  67. package/server/config.js +3 -3
  68. package/server/content-types/index.js +3 -3
  69. package/server/content-types/permission/index.js +30 -3
  70. package/server/content-types/role/index.js +47 -3
  71. package/server/content-types/user/index.js +65 -4
  72. package/server/controllers/auth.js +81 -244
  73. package/server/controllers/content-manager-user.js +183 -0
  74. package/server/controllers/index.js +12 -6
  75. package/server/controllers/permissions.js +26 -0
  76. package/server/controllers/role.js +77 -0
  77. package/server/controllers/settings.js +85 -0
  78. package/server/controllers/user.js +118 -44
  79. package/server/controllers/validation/auth.js +29 -0
  80. package/server/controllers/validation/user.js +38 -0
  81. package/server/graphql/index.js +44 -0
  82. package/server/graphql/mutations/auth/email-confirmation.js +39 -0
  83. package/server/graphql/mutations/auth/forgot-password.js +38 -0
  84. package/server/graphql/mutations/auth/login.js +38 -0
  85. package/server/graphql/mutations/auth/register.js +39 -0
  86. package/server/graphql/mutations/auth/reset-password.js +41 -0
  87. package/server/graphql/mutations/crud/role/create-role.js +37 -0
  88. package/server/graphql/mutations/crud/role/delete-role.js +28 -0
  89. package/server/graphql/mutations/crud/role/update-role.js +38 -0
  90. package/server/graphql/mutations/crud/user/create-user.js +48 -0
  91. package/server/graphql/mutations/crud/user/delete-user.js +42 -0
  92. package/server/graphql/mutations/crud/user/update-user.js +49 -0
  93. package/server/graphql/mutations/index.js +42 -0
  94. package/server/graphql/queries/index.js +13 -0
  95. package/server/graphql/queries/me.js +17 -0
  96. package/server/graphql/resolvers-configs.js +37 -0
  97. package/server/graphql/types/create-role-payload.js +11 -0
  98. package/server/graphql/types/delete-role-payload.js +11 -0
  99. package/server/graphql/types/index.js +21 -0
  100. package/server/graphql/types/login-input.js +13 -0
  101. package/server/graphql/types/login-payload.js +12 -0
  102. package/server/graphql/types/me-role.js +14 -0
  103. package/server/graphql/types/me.js +16 -0
  104. package/server/graphql/types/password-payload.js +11 -0
  105. package/server/graphql/types/register-input.js +13 -0
  106. package/server/graphql/types/update-role-payload.js +11 -0
  107. package/server/graphql/utils.js +27 -0
  108. package/server/index.js +21 -0
  109. package/server/middlewares/index.js +2 -2
  110. package/server/{policies → middlewares}/rateLimit.js +3 -7
  111. package/server/register.js +11 -0
  112. package/server/routes/admin/index.js +10 -0
  113. package/server/routes/admin/permissions.js +20 -0
  114. package/server/routes/admin/role.js +79 -0
  115. package/server/routes/admin/settings.js +95 -0
  116. package/server/routes/content-api/auth.js +73 -0
  117. package/server/routes/content-api/index.js +11 -0
  118. package/server/routes/content-api/permissions.js +9 -0
  119. package/server/routes/content-api/role.js +29 -0
  120. package/server/routes/content-api/user.js +61 -0
  121. package/server/routes/index.js +4 -428
  122. package/server/services/index.js +10 -8
  123. package/server/services/jwt.js +9 -17
  124. package/server/services/providers.js +32 -33
  125. package/server/services/role.js +177 -0
  126. package/server/services/user.js +9 -15
  127. package/server/services/users-permissions.js +140 -338
  128. package/server/strategies/users-permissions.js +123 -0
  129. package/server/utils/index.d.ts +2 -0
  130. package/strapi-admin.js +3 -0
  131. package/strapi-server.js +1 -19
  132. package/admin/src/assets/images/logo.svg +0 -1
  133. package/admin/src/components/BaselineAlignement/index.js +0 -33
  134. package/admin/src/components/Bloc/index.js +0 -10
  135. package/admin/src/components/BoundRoute/Components.js +0 -78
  136. package/admin/src/components/ContainerFluid/index.js +0 -13
  137. package/admin/src/components/FormBloc/index.js +0 -61
  138. package/admin/src/components/IntlInput/index.js +0 -38
  139. package/admin/src/components/ListBaselineAlignment/index.js +0 -8
  140. package/admin/src/components/ListRow/Components.js +0 -74
  141. package/admin/src/components/ListRow/index.js +0 -35
  142. package/admin/src/components/ModalForm/Wrapper.js +0 -12
  143. package/admin/src/components/ModalForm/index.js +0 -59
  144. package/admin/src/components/Permissions/ListWrapper.js +0 -9
  145. package/admin/src/components/Permissions/PermissionRow/BaselineAlignment.js +0 -7
  146. package/admin/src/components/Permissions/PermissionRow/RowStyle.js +0 -28
  147. package/admin/src/components/Permissions/PermissionRow/SubCategory/ConditionsButtonWrapper.js +0 -13
  148. package/admin/src/components/Permissions/PermissionRow/SubCategory/PolicyWrapper.js +0 -8
  149. package/admin/src/components/Permissions/PermissionRow/SubCategory/SubCategoryWrapper.js +0 -26
  150. package/admin/src/components/Permissions/PermissionRow/SubCategory/index.js +0 -116
  151. package/admin/src/components/Policies/Components.js +0 -26
  152. package/admin/src/components/PrefixedIcon/index.js +0 -27
  153. package/admin/src/components/Roles/EmptyRole/BaselineAlignment.js +0 -7
  154. package/admin/src/components/Roles/EmptyRole/index.js +0 -27
  155. package/admin/src/components/Roles/RoleListWrapper/index.js +0 -17
  156. package/admin/src/components/Roles/RoleRow/RoleDescription.js +0 -9
  157. package/admin/src/components/Roles/RoleRow/index.js +0 -45
  158. package/admin/src/components/Roles/index.js +0 -3
  159. package/admin/src/components/SizedInput/index.js +0 -24
  160. package/admin/src/pages/AdvancedSettings/reducer.js +0 -65
  161. package/admin/src/pages/AdvancedSettings/utils/form.js +0 -52
  162. package/admin/src/pages/EmailTemplates/CustomTextInput.js +0 -105
  163. package/admin/src/pages/EmailTemplates/Wrapper.js +0 -36
  164. package/admin/src/pages/EmailTemplates/reducer.js +0 -58
  165. package/admin/src/pages/EmailTemplates/utils/forms.js +0 -81
  166. package/admin/src/pages/Roles/ListPage/BaselineAlignment.js +0 -8
  167. package/server/content-types/permission/schema.json +0 -48
  168. package/server/content-types/role/schema.json +0 -46
  169. package/server/content-types/user/schema.json +0 -66
  170. package/server/controllers/user/admin.js +0 -230
  171. package/server/controllers/user/api.js +0 -174
  172. package/server/controllers/users-permissions.js +0 -271
  173. package/server/middlewares/users-permissions.js +0 -44
  174. package/server/policies/index.js +0 -11
  175. package/server/policies/isAuthenticated.js +0 -9
  176. package/server/policies/permissions.js +0 -94
  177. package/server/schema.graphql.js +0 -317
@@ -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
- };