@strapi/plugin-users-permissions 4.0.0-next.6 → 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 (196) 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 +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 +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/permissions.js +12 -14
  37. package/admin/src/translations/ar.json +0 -8
  38. package/admin/src/translations/cs.json +0 -8
  39. package/admin/src/translations/de.json +0 -8
  40. package/admin/src/translations/dk.json +0 -8
  41. package/admin/src/translations/en.json +33 -12
  42. package/admin/src/translations/es.json +0 -8
  43. package/admin/src/translations/fr.json +0 -8
  44. package/admin/src/translations/id.json +0 -8
  45. package/admin/src/translations/it.json +0 -8
  46. package/admin/src/translations/ja.json +0 -8
  47. package/admin/src/translations/ko.json +0 -8
  48. package/admin/src/translations/ms.json +0 -8
  49. package/admin/src/translations/nl.json +0 -8
  50. package/admin/src/translations/pl.json +0 -8
  51. package/admin/src/translations/pt-BR.json +0 -8
  52. package/admin/src/translations/pt.json +0 -8
  53. package/admin/src/translations/ru.json +0 -8
  54. package/admin/src/translations/sk.json +0 -8
  55. package/admin/src/translations/sv.json +0 -8
  56. package/admin/src/translations/th.json +0 -8
  57. package/admin/src/translations/tr.json +0 -8
  58. package/admin/src/translations/uk.json +0 -8
  59. package/admin/src/translations/vi.json +0 -8
  60. package/admin/src/translations/zh-Hans.json +5 -14
  61. package/admin/src/translations/zh.json +0 -8
  62. package/admin/src/utils/axiosInstance.js +36 -0
  63. package/admin/src/utils/formatPluginName.js +26 -0
  64. package/admin/src/utils/index.js +1 -0
  65. package/documentation/1.0.0/overrides/users-permissions-Role.json +6 -6
  66. package/documentation/1.0.0/overrides/users-permissions-User.json +7 -7
  67. package/package.json +30 -29
  68. package/{config/functions/bootstrap.js → server/bootstrap/index.js} +26 -33
  69. package/{config → server/bootstrap}/users-permissions-actions.js +0 -0
  70. package/server/config.js +23 -0
  71. package/server/content-types/index.js +11 -0
  72. package/server/content-types/permission/index.js +34 -0
  73. package/server/content-types/role/index.js +51 -0
  74. package/server/content-types/user/index.js +72 -0
  75. package/{models/User.config.js → server/content-types/user/schema-config.js} +0 -0
  76. package/server/controllers/auth.js +440 -0
  77. package/server/controllers/content-manager-user.js +183 -0
  78. package/server/controllers/index.js +17 -0
  79. package/server/controllers/permissions.js +26 -0
  80. package/server/controllers/role.js +77 -0
  81. package/server/controllers/settings.js +85 -0
  82. package/server/controllers/user.js +191 -0
  83. package/server/controllers/validation/auth.js +29 -0
  84. package/{controllers → server/controllers}/validation/email-template.js +0 -0
  85. package/server/controllers/validation/user.js +38 -0
  86. package/server/graphql/index.js +44 -0
  87. package/server/graphql/mutations/auth/email-confirmation.js +39 -0
  88. package/server/graphql/mutations/auth/forgot-password.js +38 -0
  89. package/server/graphql/mutations/auth/login.js +38 -0
  90. package/server/graphql/mutations/auth/register.js +39 -0
  91. package/server/graphql/mutations/auth/reset-password.js +41 -0
  92. package/server/graphql/mutations/crud/role/create-role.js +37 -0
  93. package/server/graphql/mutations/crud/role/delete-role.js +28 -0
  94. package/server/graphql/mutations/crud/role/update-role.js +38 -0
  95. package/server/graphql/mutations/crud/user/create-user.js +48 -0
  96. package/server/graphql/mutations/crud/user/delete-user.js +42 -0
  97. package/server/graphql/mutations/crud/user/update-user.js +49 -0
  98. package/server/graphql/mutations/index.js +42 -0
  99. package/server/graphql/queries/index.js +13 -0
  100. package/server/graphql/queries/me.js +17 -0
  101. package/server/graphql/resolvers-configs.js +37 -0
  102. package/server/graphql/types/create-role-payload.js +11 -0
  103. package/server/graphql/types/delete-role-payload.js +11 -0
  104. package/server/graphql/types/index.js +21 -0
  105. package/server/graphql/types/login-input.js +13 -0
  106. package/server/graphql/types/login-payload.js +12 -0
  107. package/server/graphql/types/me-role.js +14 -0
  108. package/server/graphql/types/me.js +16 -0
  109. package/server/graphql/types/password-payload.js +11 -0
  110. package/server/graphql/types/register-input.js +13 -0
  111. package/server/graphql/types/update-role-payload.js +11 -0
  112. package/server/graphql/utils.js +27 -0
  113. package/server/index.js +21 -0
  114. package/server/middlewares/index.js +7 -0
  115. package/{config/policies → server/middlewares}/rateLimit.js +4 -8
  116. package/server/register.js +11 -0
  117. package/server/routes/admin/index.js +10 -0
  118. package/server/routes/admin/permissions.js +20 -0
  119. package/server/routes/admin/role.js +79 -0
  120. package/server/routes/admin/settings.js +95 -0
  121. package/server/routes/content-api/auth.js +73 -0
  122. package/server/routes/content-api/index.js +11 -0
  123. package/server/routes/content-api/permissions.js +9 -0
  124. package/server/routes/content-api/role.js +29 -0
  125. package/server/routes/content-api/user.js +61 -0
  126. package/server/routes/index.js +6 -0
  127. package/server/services/index.js +15 -0
  128. package/server/services/jwt.js +55 -0
  129. package/server/services/providers.js +599 -0
  130. package/server/services/role.js +177 -0
  131. package/{services → server/services}/user.js +32 -35
  132. package/server/services/users-permissions.js +233 -0
  133. package/server/strategies/users-permissions.js +123 -0
  134. package/{utils → server/utils}/index.d.ts +6 -1
  135. package/server/utils/index.js +9 -0
  136. package/strapi-admin.js +3 -0
  137. package/strapi-server.js +3 -0
  138. package/admin/src/assets/images/logo.svg +0 -1
  139. package/admin/src/components/BaselineAlignement/index.js +0 -33
  140. package/admin/src/components/Bloc/index.js +0 -10
  141. package/admin/src/components/BoundRoute/Components.js +0 -78
  142. package/admin/src/components/ContainerFluid/index.js +0 -13
  143. package/admin/src/components/FormBloc/index.js +0 -61
  144. package/admin/src/components/IntlInput/index.js +0 -38
  145. package/admin/src/components/ListBaselineAlignment/index.js +0 -8
  146. package/admin/src/components/ListRow/Components.js +0 -74
  147. package/admin/src/components/ListRow/index.js +0 -35
  148. package/admin/src/components/ModalForm/Wrapper.js +0 -12
  149. package/admin/src/components/ModalForm/index.js +0 -59
  150. package/admin/src/components/Permissions/ListWrapper.js +0 -9
  151. package/admin/src/components/Permissions/PermissionRow/BaselineAlignment.js +0 -7
  152. package/admin/src/components/Permissions/PermissionRow/RowStyle.js +0 -28
  153. package/admin/src/components/Permissions/PermissionRow/SubCategory/ConditionsButtonWrapper.js +0 -13
  154. package/admin/src/components/Permissions/PermissionRow/SubCategory/PolicyWrapper.js +0 -8
  155. package/admin/src/components/Permissions/PermissionRow/SubCategory/SubCategoryWrapper.js +0 -26
  156. package/admin/src/components/Permissions/PermissionRow/SubCategory/index.js +0 -116
  157. package/admin/src/components/Policies/Components.js +0 -26
  158. package/admin/src/components/PrefixedIcon/index.js +0 -27
  159. package/admin/src/components/Roles/EmptyRole/BaselineAlignment.js +0 -7
  160. package/admin/src/components/Roles/EmptyRole/index.js +0 -27
  161. package/admin/src/components/Roles/RoleListWrapper/index.js +0 -17
  162. package/admin/src/components/Roles/RoleRow/RoleDescription.js +0 -9
  163. package/admin/src/components/Roles/RoleRow/index.js +0 -45
  164. package/admin/src/components/Roles/index.js +0 -3
  165. package/admin/src/components/SizedInput/index.js +0 -24
  166. package/admin/src/pages/AdvancedSettings/reducer.js +0 -65
  167. package/admin/src/pages/AdvancedSettings/utils/form.js +0 -52
  168. package/admin/src/pages/EmailTemplates/CustomTextInput.js +0 -105
  169. package/admin/src/pages/EmailTemplates/Wrapper.js +0 -36
  170. package/admin/src/pages/EmailTemplates/reducer.js +0 -58
  171. package/admin/src/pages/EmailTemplates/utils/forms.js +0 -81
  172. package/admin/src/pages/Roles/ListPage/BaselineAlignment.js +0 -8
  173. package/config/layout.js +0 -10
  174. package/config/policies/isAuthenticated.js +0 -9
  175. package/config/policies/permissions.js +0 -94
  176. package/config/request.json +0 -6
  177. package/config/routes.json +0 -381
  178. package/config/schema.graphql.js +0 -284
  179. package/config/security.json +0 -5
  180. package/controllers/auth.js +0 -596
  181. package/controllers/user/admin.js +0 -230
  182. package/controllers/user/api.js +0 -174
  183. package/controllers/user.js +0 -117
  184. package/controllers/users-permissions.js +0 -271
  185. package/middlewares/users-permissions/defaults.json +0 -5
  186. package/middlewares/users-permissions/index.js +0 -40
  187. package/models/Permission.js +0 -7
  188. package/models/Permission.settings.json +0 -45
  189. package/models/Role.js +0 -7
  190. package/models/Role.settings.json +0 -43
  191. package/models/User.js +0 -7
  192. package/models/User.settings.json +0 -63
  193. package/services/jwt.js +0 -65
  194. package/services/providers.js +0 -598
  195. package/services/users-permissions.js +0 -429
  196. package/utils/index.js +0 -11
@@ -1,271 +0,0 @@
1
- 'use strict';
2
-
3
- const _ = require('lodash');
4
- const { getService } = require('../utils');
5
- const { isValidEmailTemplate } = require('./validation/email-template');
6
-
7
- module.exports = {
8
- /**
9
- * Default action.
10
- *
11
- * @return {Object}
12
- */
13
- async createRole(ctx) {
14
- if (_.isEmpty(ctx.request.body)) {
15
- return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]);
16
- }
17
-
18
- try {
19
- await getService('users-permissions').createRole(ctx.request.body);
20
-
21
- ctx.send({ ok: true });
22
- } catch (err) {
23
- strapi.log.error(err);
24
- ctx.badRequest(null, [{ messages: [{ id: 'An error occured' }] }]);
25
- }
26
- },
27
-
28
- async deleteRole(ctx) {
29
- // Fetch public role.
30
- const publicRole = await strapi
31
- .query('plugins::users-permissions.role')
32
- .findOne({ where: { type: 'public' } });
33
-
34
- const publicRoleID = publicRole.id;
35
-
36
- const roleID = ctx.params.role;
37
-
38
- if (!roleID) {
39
- return ctx.badRequest(null, [{ messages: [{ id: 'Bad request' }] }]);
40
- }
41
-
42
- // Prevent from removing the public role.
43
- if (roleID.toString() === publicRoleID.toString()) {
44
- return ctx.badRequest(null, [{ messages: [{ id: 'Unauthorized' }] }]);
45
- }
46
-
47
- try {
48
- await getService('users-permissions').deleteRole(roleID, publicRoleID);
49
-
50
- ctx.send({ ok: true });
51
- } catch (err) {
52
- strapi.log.error(err);
53
- ctx.badRequest(null, [{ messages: [{ id: 'Bad request' }] }]);
54
- }
55
- },
56
-
57
- async getPermissions(ctx) {
58
- try {
59
- const permissions = await getService('users-permissions').getActions();
60
-
61
- ctx.send({ permissions });
62
- } catch (err) {
63
- ctx.badRequest(null, [{ message: [{ id: 'Not Found' }] }]);
64
- }
65
- },
66
-
67
- async getPolicies(ctx) {
68
- ctx.send({
69
- policies: _.without(
70
- _.keys(strapi.plugins['users-permissions'].config.policies),
71
- 'permissions'
72
- ),
73
- });
74
- },
75
-
76
- async getRole(ctx) {
77
- const { id } = ctx.params;
78
- const { lang } = ctx.query;
79
- const plugins = await getService('users-permissions').getPlugins(lang);
80
- const role = await getService('users-permissions').getRole(id, plugins);
81
-
82
- if (_.isEmpty(role)) {
83
- return ctx.badRequest(null, [{ messages: [{ id: `Role don't exist` }] }]);
84
- }
85
-
86
- ctx.send({ role });
87
- },
88
-
89
- async getRoles(ctx) {
90
- try {
91
- const roles = await getService('users-permissions').getRoles();
92
-
93
- ctx.send({ roles });
94
- } catch (err) {
95
- ctx.badRequest(null, [{ messages: [{ id: 'Not found' }] }]);
96
- }
97
- },
98
-
99
- async getRoutes(ctx) {
100
- try {
101
- const routes = await getService('users-permissions').getRoutes();
102
-
103
- ctx.send({ routes });
104
- } catch (err) {
105
- ctx.badRequest(null, [{ messages: [{ id: 'Not found' }] }]);
106
- }
107
- },
108
-
109
- async index(ctx) {
110
- // Send 200 `ok`
111
- ctx.send({ message: 'ok' });
112
- },
113
-
114
- async searchUsers(ctx) {
115
- const { id } = ctx.params;
116
-
117
- const data = await strapi.query('plugins::users-permissions.user').custom(searchQueries)({
118
- id,
119
- });
120
-
121
- ctx.send(data);
122
- },
123
-
124
- async updateRole(ctx) {
125
- const roleID = ctx.params.role;
126
-
127
- if (_.isEmpty(ctx.request.body)) {
128
- return ctx.badRequest(null, [{ messages: [{ id: 'Bad request' }] }]);
129
- }
130
-
131
- try {
132
- await getService('users-permissions').updateRole(roleID, ctx.request.body);
133
-
134
- ctx.send({ ok: true });
135
- } catch (err) {
136
- strapi.log.error(err);
137
- ctx.badRequest(null, [{ messages: [{ id: 'An error occurred' }] }]);
138
- }
139
- },
140
-
141
- async getEmailTemplate(ctx) {
142
- ctx.send(
143
- await strapi
144
- .store({
145
- environment: '',
146
- type: 'plugin',
147
- name: 'users-permissions',
148
- key: 'email',
149
- })
150
- .get()
151
- );
152
- },
153
-
154
- async updateEmailTemplate(ctx) {
155
- if (_.isEmpty(ctx.request.body)) {
156
- return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]);
157
- }
158
-
159
- const emailTemplates = ctx.request.body['email-templates'];
160
-
161
- for (let key in emailTemplates) {
162
- const template = emailTemplates[key].options.message;
163
-
164
- if (!isValidEmailTemplate(template)) {
165
- return ctx.badRequest(null, [{ messages: [{ id: 'Invalid template' }] }]);
166
- }
167
- }
168
-
169
- await strapi
170
- .store({
171
- environment: '',
172
- type: 'plugin',
173
- name: 'users-permissions',
174
- key: 'email',
175
- })
176
- .set({ value: emailTemplates });
177
-
178
- ctx.send({ ok: true });
179
- },
180
-
181
- async getAdvancedSettings(ctx) {
182
- ctx.send({
183
- settings: await strapi
184
- .store({
185
- environment: '',
186
- type: 'plugin',
187
- name: 'users-permissions',
188
- key: 'advanced',
189
- })
190
- .get(),
191
- roles: await getService('users-permissions').getRoles(),
192
- });
193
- },
194
-
195
- async updateAdvancedSettings(ctx) {
196
- if (_.isEmpty(ctx.request.body)) {
197
- return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]);
198
- }
199
-
200
- await strapi
201
- .store({
202
- environment: '',
203
- type: 'plugin',
204
- name: 'users-permissions',
205
- key: 'advanced',
206
- })
207
- .set({ value: ctx.request.body });
208
-
209
- ctx.send({ ok: true });
210
- },
211
-
212
- async getProviders(ctx) {
213
- const providers = await strapi
214
- .store({
215
- environment: '',
216
- type: 'plugin',
217
- name: 'users-permissions',
218
- key: 'grant',
219
- })
220
- .get();
221
-
222
- for (const provider in providers) {
223
- if (provider !== 'email') {
224
- providers[provider].redirectUri = strapi.plugins[
225
- 'users-permissions'
226
- ].services.providers.buildRedirectUri(provider);
227
- }
228
- }
229
-
230
- ctx.send(providers);
231
- },
232
-
233
- async updateProviders(ctx) {
234
- if (_.isEmpty(ctx.request.body)) {
235
- return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]);
236
- }
237
-
238
- await strapi
239
- .store({
240
- environment: '',
241
- type: 'plugin',
242
- name: 'users-permissions',
243
- key: 'grant',
244
- })
245
- .set({ value: ctx.request.body.providers });
246
-
247
- ctx.send({ ok: true });
248
- },
249
- };
250
-
251
- const searchQueries = {
252
- bookshelf({ model }) {
253
- return ({ id }) => {
254
- return model
255
- .query(function(qb) {
256
- qb.where('username', 'LIKE', `%${id}%`).orWhere('email', 'LIKE', `%${id}%`);
257
- })
258
- .fetchAll()
259
- .then(results => results.toJSON());
260
- };
261
- },
262
- mongoose({ model }) {
263
- return ({ id }) => {
264
- const re = new RegExp(id);
265
-
266
- return model.find({
267
- $or: [{ username: re }, { email: re }],
268
- });
269
- };
270
- },
271
- };
@@ -1,5 +0,0 @@
1
- {
2
- "users-permissions": {
3
- "enabled": true
4
- }
5
- }
@@ -1,40 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Module dependencies
5
- */
6
-
7
- // Public node modules.
8
- const _ = require('lodash');
9
-
10
- module.exports = strapi => {
11
- return {
12
- beforeInitialize() {
13
- strapi.config.middleware.load.before.unshift('users-permissions');
14
- },
15
-
16
- initialize() {
17
- _.forEach(strapi.admin.config.routes, value => {
18
- if (_.get(value.config, 'policies')) {
19
- value.config.policies.unshift('plugins::users-permissions.permissions');
20
- }
21
- });
22
-
23
- _.forEach(strapi.config.routes, value => {
24
- if (_.get(value.config, 'policies')) {
25
- value.config.policies.unshift('plugins::users-permissions.permissions');
26
- }
27
- });
28
-
29
- if (strapi.plugins) {
30
- _.forEach(strapi.plugins, plugin => {
31
- _.forEach(plugin.config.routes, value => {
32
- if (_.get(value.config, 'policies')) {
33
- value.config.policies.unshift('plugins::users-permissions.permissions');
34
- }
35
- });
36
- });
37
- }
38
- },
39
- };
40
- };
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Lifecycle callbacks for the `Permission` model.
5
- */
6
-
7
- module.exports = {};
@@ -1,45 +0,0 @@
1
- {
2
- "collectionName": "up_permissions",
3
- "info": {
4
- "name": "permission",
5
- "description": ""
6
- },
7
- "pluginOptions": {
8
- "content-manager": {
9
- "visible": false
10
- }
11
- },
12
- "attributes": {
13
- "type": {
14
- "type": "string",
15
- "required": true,
16
- "configurable": false
17
- },
18
- "controller": {
19
- "type": "string",
20
- "required": true,
21
- "configurable": false
22
- },
23
- "action": {
24
- "type": "string",
25
- "required": true,
26
- "configurable": false
27
- },
28
- "enabled": {
29
- "type": "boolean",
30
- "required": true,
31
- "configurable": false
32
- },
33
- "policy": {
34
- "type": "string",
35
- "configurable": false
36
- },
37
- "role": {
38
- "type": "relation",
39
- "relation": "manyToOne",
40
- "target": "plugins::users-permissions.role",
41
- "inversedBy": "permissions",
42
- "configurable": false
43
- }
44
- }
45
- }
package/models/Role.js DELETED
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Lifecycle callbacks for the `Role` model.
5
- */
6
-
7
- module.exports = {};
@@ -1,43 +0,0 @@
1
- {
2
- "collectionName": "up_roles",
3
- "info": {
4
- "name": "role",
5
- "description": ""
6
- },
7
- "pluginOptions": {
8
- "content-manager": {
9
- "visible": false
10
- }
11
- },
12
- "attributes": {
13
- "name": {
14
- "type": "string",
15
- "minLength": 3,
16
- "required": true,
17
- "configurable": false
18
- },
19
- "description": {
20
- "type": "string",
21
- "configurable": false
22
- },
23
- "type": {
24
- "type": "string",
25
- "unique": true,
26
- "configurable": false
27
- },
28
- "permissions": {
29
- "type": "relation",
30
- "relation": "oneToMany",
31
- "target": "plugins::users-permissions.permission",
32
- "mappedBy": "role",
33
- "configurable": false
34
- },
35
- "users": {
36
- "type": "relation",
37
- "relation": "oneToMany",
38
- "target": "plugins::users-permissions.user",
39
- "mappedBy": "role",
40
- "configurable": false
41
- }
42
- }
43
- }
package/models/User.js DELETED
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Lifecycle callbacks for the `User` model.
5
- */
6
-
7
- module.exports = {};
@@ -1,63 +0,0 @@
1
- {
2
- "collectionName": "up_users",
3
- "info": {
4
- "name": "user",
5
- "description": ""
6
- },
7
- "options": {
8
- "draftAndPublish": false,
9
- "timestamps": true
10
- },
11
- "attributes": {
12
- "username": {
13
- "type": "string",
14
- "minLength": 3,
15
- "unique": true,
16
- "configurable": false,
17
- "required": true
18
- },
19
- "email": {
20
- "type": "email",
21
- "minLength": 6,
22
- "configurable": false,
23
- "required": true
24
- },
25
- "provider": {
26
- "type": "string",
27
- "configurable": false
28
- },
29
- "password": {
30
- "type": "password",
31
- "minLength": 6,
32
- "configurable": false,
33
- "private": true
34
- },
35
- "resetPasswordToken": {
36
- "type": "string",
37
- "configurable": false,
38
- "private": true
39
- },
40
- "confirmationToken": {
41
- "type": "string",
42
- "configurable": false,
43
- "private": true
44
- },
45
- "confirmed": {
46
- "type": "boolean",
47
- "default": false,
48
- "configurable": false
49
- },
50
- "blocked": {
51
- "type": "boolean",
52
- "default": false,
53
- "configurable": false
54
- },
55
- "role": {
56
- "type": "relation",
57
- "relation": "manyToOne",
58
- "target": "plugins::users-permissions.role",
59
- "inversedBy": "users",
60
- "configurable": false
61
- }
62
- }
63
- }
package/services/jwt.js DELETED
@@ -1,65 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Jwt.js service
5
- *
6
- * @description: A set of functions similar to controller's actions to avoid code duplication.
7
- */
8
-
9
- const _ = require('lodash');
10
- const jwt = require('jsonwebtoken');
11
-
12
- module.exports = {
13
- getToken(ctx) {
14
- const params = _.assign({}, ctx.request.body, ctx.request.query);
15
-
16
- let token = '';
17
-
18
- if (ctx.request && ctx.request.header && ctx.request.header.authorization) {
19
- const parts = ctx.request.header.authorization.split(' ');
20
-
21
- if (parts.length === 2) {
22
- const scheme = parts[0];
23
- const credentials = parts[1];
24
- if (/^Bearer$/i.test(scheme)) {
25
- token = credentials;
26
- }
27
- } else {
28
- throw new Error(
29
- 'Invalid authorization header format. Format is Authorization: Bearer [token]'
30
- );
31
- }
32
- } else if (params.token) {
33
- token = params.token;
34
- } else {
35
- throw new Error('No authorization header was found');
36
- }
37
-
38
- return this.verify(token);
39
- },
40
-
41
- issue(payload, jwtOptions = {}) {
42
- _.defaults(jwtOptions, strapi.plugins['users-permissions'].config.jwt);
43
- return jwt.sign(
44
- _.clone(payload.toJSON ? payload.toJSON() : payload),
45
- _.get(strapi.plugins, ['users-permissions', 'config', 'jwtSecret']),
46
- jwtOptions
47
- );
48
- },
49
-
50
- verify(token) {
51
- return new Promise(function(resolve, reject) {
52
- jwt.verify(
53
- token,
54
- _.get(strapi.plugins, ['users-permissions', 'config', 'jwtSecret']),
55
- {},
56
- function(err, tokenPayload = {}) {
57
- if (err) {
58
- return reject(new Error('Invalid token.'));
59
- }
60
- resolve(tokenPayload);
61
- }
62
- );
63
- });
64
- },
65
- };