@strapi/plugin-users-permissions 4.0.0-next.1 → 4.0.0-next.13

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 (74) hide show
  1. package/admin/src/index.js +31 -28
  2. package/admin/src/pages/AdvancedSettings/index.js +14 -2
  3. package/admin/src/pages/AdvancedSettings/utils/form.js +2 -2
  4. package/admin/src/pages/EmailTemplates/index.js +8 -1
  5. package/admin/src/pages/Providers/index.js +8 -1
  6. package/admin/src/pages/Roles/CreatePage/index.js +1 -1
  7. package/admin/src/pages/Roles/EditPage/index.js +2 -2
  8. package/admin/src/pages/Roles/ListPage/index.js +1 -1
  9. package/admin/src/pages/Roles/index.js +14 -8
  10. package/admin/src/permissions.js +12 -14
  11. package/admin/src/translations/en.json +4 -0
  12. package/admin/src/translations/zh-Hans.json +26 -7
  13. package/documentation/1.0.0/overrides/users-permissions-Role.json +6 -6
  14. package/package.json +8 -6
  15. package/{config/functions/bootstrap.js → server/bootstrap/index.js} +9 -18
  16. package/{config → server/bootstrap}/users-permissions-actions.js +0 -0
  17. package/server/config.js +23 -0
  18. package/server/content-types/index.js +11 -0
  19. package/server/content-types/permission/index.js +31 -0
  20. package/server/content-types/role/index.js +48 -0
  21. package/server/content-types/user/index.js +72 -0
  22. package/{models/User.config.js → server/content-types/user/schema-config.js} +0 -0
  23. package/{controllers → server/controllers}/auth.js +63 -77
  24. package/server/controllers/index.js +15 -0
  25. package/server/controllers/permissions.js +26 -0
  26. package/server/controllers/role.js +77 -0
  27. package/server/controllers/settings.js +84 -0
  28. package/{controllers → server/controllers}/user/admin.js +26 -42
  29. package/{controllers → server/controllers}/user/api.js +11 -27
  30. package/{controllers → server/controllers}/user.js +2 -18
  31. package/{controllers → server/controllers}/validation/email-template.js +0 -0
  32. package/server/index.js +21 -0
  33. package/server/policies/index.js +7 -0
  34. package/{config → server}/policies/rateLimit.js +4 -8
  35. package/server/register.js +7 -0
  36. package/server/routes/admin/index.js +10 -0
  37. package/server/routes/admin/permissions.js +20 -0
  38. package/server/routes/admin/role.js +79 -0
  39. package/server/routes/admin/settings.js +95 -0
  40. package/server/routes/content-api/auth.js +73 -0
  41. package/server/routes/content-api/index.js +11 -0
  42. package/server/routes/content-api/permissions.js +9 -0
  43. package/server/routes/content-api/role.js +29 -0
  44. package/server/routes/content-api/user.js +61 -0
  45. package/server/routes/index.js +6 -0
  46. package/{config → server}/schema.graphql.js +96 -63
  47. package/server/services/index.js +15 -0
  48. package/{services → server/services}/jwt.js +12 -14
  49. package/server/services/providers.js +592 -0
  50. package/server/services/role.js +182 -0
  51. package/{services → server/services}/user.js +31 -34
  52. package/server/services/users-permissions.js +222 -0
  53. package/server/strategies/users-permissions.js +122 -0
  54. package/{utils → server/utils}/index.d.ts +6 -1
  55. package/server/utils/index.js +9 -0
  56. package/strapi-server.js +3 -0
  57. package/config/layout.js +0 -10
  58. package/config/policies/isAuthenticated.js +0 -9
  59. package/config/policies/permissions.js +0 -94
  60. package/config/request.json +0 -6
  61. package/config/routes.json +0 -381
  62. package/config/security.json +0 -5
  63. package/controllers/users-permissions.js +0 -271
  64. package/middlewares/users-permissions/defaults.json +0 -5
  65. package/middlewares/users-permissions/index.js +0 -40
  66. package/models/Permission.js +0 -7
  67. package/models/Permission.settings.json +0 -45
  68. package/models/Role.js +0 -7
  69. package/models/Role.settings.json +0 -43
  70. package/models/User.js +0 -7
  71. package/models/User.settings.json +0 -63
  72. package/services/providers.js +0 -598
  73. package/services/users-permissions.js +0 -430
  74. package/utils/index.js +0 -11
@@ -11,16 +11,16 @@ const formatError = error => [
11
11
  { messages: [{ id: error.id, message: error.message, field: error.field }] },
12
12
  ];
13
13
 
14
- const userModel = 'plugins::users-permissions.user';
14
+ const userModel = 'plugin::users-permissions.user';
15
15
  const ACTIONS = {
16
- read: 'plugins::content-manager.explorer.read',
17
- create: 'plugins::content-manager.explorer.create',
18
- edit: 'plugins::content-manager.explorer.update',
19
- delete: 'plugins::content-manager.explorer.delete',
16
+ read: 'plugin::content-manager.explorer.read',
17
+ create: 'plugin::content-manager.explorer.create',
18
+ edit: 'plugin::content-manager.explorer.update',
19
+ delete: 'plugin::content-manager.explorer.delete',
20
20
  };
21
21
 
22
22
  const findEntityAndCheckPermissions = async (ability, action, model, id) => {
23
- const entity = await strapi.query('plugins::users-permissions.user').findOne({ where: { id } });
23
+ const entity = await strapi.query('plugin::users-permissions.user').findOne({ where: { id } });
24
24
 
25
25
  if (_.isNil(entity)) {
26
26
  throw strapi.errors.notFound();
@@ -29,7 +29,7 @@ const findEntityAndCheckPermissions = async (ability, action, model, id) => {
29
29
  const pm = strapi.admin.services.permission.createPermissionsManager({ ability, action, model });
30
30
 
31
31
  const roles = _.has(entity, `${CREATED_BY_ATTRIBUTE}.id`)
32
- ? await strapi.query('strapi::role').findMany({
32
+ ? await strapi.query('admin::role').findMany({
33
33
  where: {
34
34
  users: { id: entity[CREATED_BY_ATTRIBUTE].id },
35
35
  },
@@ -51,10 +51,9 @@ module.exports = {
51
51
  * @return {Object}
52
52
  */
53
53
  async create(ctx) {
54
- const {
55
- request: { body },
56
- state: { userAbility, admin },
57
- } = ctx;
54
+ const { body } = ctx.request;
55
+ const { user: admin, userAbility } = ctx.state;
56
+
58
57
  const { email, username, password } = body;
59
58
 
60
59
  const pm = strapi.admin.services.permission.createPermissionsManager({
@@ -70,12 +69,7 @@ module.exports = {
70
69
  const sanitizedBody = pm.pickPermittedFieldsOf(body, { subject: userModel });
71
70
 
72
71
  const advanced = await strapi
73
- .store({
74
- environment: '',
75
- type: 'plugin',
76
- name: 'users-permissions',
77
- key: 'advanced',
78
- })
72
+ .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })
79
73
  .get();
80
74
 
81
75
  if (!email) return ctx.badRequest('missing.email');
@@ -83,7 +77,7 @@ module.exports = {
83
77
  if (!password) return ctx.badRequest('missing.password');
84
78
 
85
79
  const userWithSameUsername = await strapi
86
- .query('plugins::users-permissions.user')
80
+ .query('plugin::users-permissions.user')
87
81
  .findOne({ where: { username } });
88
82
 
89
83
  if (userWithSameUsername) {
@@ -99,7 +93,7 @@ module.exports = {
99
93
 
100
94
  if (advanced.unique_email) {
101
95
  const userWithSameEmail = await strapi
102
- .query('plugins::users-permissions.user')
96
+ .query('plugin::users-permissions.user')
103
97
  .findOne({ where: { email: email.toLowerCase() } });
104
98
 
105
99
  if (userWithSameEmail) {
@@ -122,18 +116,18 @@ module.exports = {
122
116
  [UPDATED_BY_ATTRIBUTE]: admin.id,
123
117
  };
124
118
 
125
- user.email = user.email.toLowerCase();
119
+ user.email = _.toLower(user.email);
126
120
 
127
121
  if (!user.role) {
128
122
  const defaultRole = await strapi
129
- .query('plugins::users-permissions.role')
123
+ .query('plugin::users-permissions.role')
130
124
  .findOne({ where: { type: advanced.default_role } });
131
125
 
132
126
  user.role = defaultRole.id;
133
127
  }
134
128
 
135
129
  try {
136
- const data = await strapi.plugins['users-permissions'].services.user.add(user);
130
+ const data = await getService('user').add(user);
137
131
 
138
132
  ctx.created(pm.sanitize(data, { action: ACTIONS.read }));
139
133
  } catch (error) {
@@ -146,20 +140,14 @@ module.exports = {
146
140
  */
147
141
 
148
142
  async update(ctx) {
143
+ const { id } = ctx.params;
144
+ const { body } = ctx.request;
145
+ const { user: admin, userAbility } = ctx.state;
146
+
149
147
  const advancedConfigs = await strapi
150
- .store({
151
- environment: '',
152
- type: 'plugin',
153
- name: 'users-permissions',
154
- key: 'advanced',
155
- })
148
+ .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })
156
149
  .get();
157
150
 
158
- const {
159
- params: { id },
160
- request: { body },
161
- state: { userAbility, admin },
162
- } = ctx;
163
151
  const { email, username, password } = body;
164
152
 
165
153
  const { pm, entity: user } = await findEntityAndCheckPermissions(
@@ -183,7 +171,7 @@ module.exports = {
183
171
 
184
172
  if (_.has(body, 'username')) {
185
173
  const userWithSameUsername = await strapi
186
- .query('plugins::users-permissions.user')
174
+ .query('plugin::users-permissions.user')
187
175
  .findOne({ where: { username } });
188
176
 
189
177
  if (userWithSameUsername && userWithSameUsername.id != id) {
@@ -200,8 +188,8 @@ module.exports = {
200
188
 
201
189
  if (_.has(body, 'email') && advancedConfigs.unique_email) {
202
190
  const userWithSameEmail = await strapi
203
- .query('plugins::users-permissions.user')
204
- .findOne({ where: { email: email.toLowerCase() } });
191
+ .query('plugin::users-permissions.user')
192
+ .findOne({ where: { email: _.toLower(email) } });
205
193
 
206
194
  if (userWithSameEmail && userWithSameEmail.id != id) {
207
195
  return ctx.badRequest(
@@ -213,15 +201,11 @@ module.exports = {
213
201
  })
214
202
  );
215
203
  }
216
- body.email = body.email.toLowerCase();
204
+ body.email = _.toLower(body.email);
217
205
  }
218
206
 
219
207
  const sanitizedData = pm.pickPermittedFieldsOf(body, { subject: pm.toSubject(user) });
220
- const updateData = _.omit({ ...sanitizedData, updated_by: admin.id }, 'created_by');
221
-
222
- if (_.has(body, 'password') && password === user.password) {
223
- delete updateData.password;
224
- }
208
+ const updateData = _.omit({ ...sanitizedData, updatedBy: admin.id }, 'createdBy');
225
209
 
226
210
  const data = await getService('user').edit({ id }, updateData);
227
211
 
@@ -6,7 +6,7 @@ const { getService } = require('../../utils');
6
6
 
7
7
  const sanitizeUser = user =>
8
8
  sanitizeEntity(user, {
9
- model: strapi.getModel('plugins::users-permissions.user'),
9
+ model: strapi.getModel('plugin::users-permissions.user'),
10
10
  });
11
11
 
12
12
  const formatError = error => [
@@ -20,12 +20,7 @@ module.exports = {
20
20
  */
21
21
  async create(ctx) {
22
22
  const advanced = await strapi
23
- .store({
24
- environment: '',
25
- type: 'plugin',
26
- name: 'users-permissions',
27
- key: 'advanced',
28
- })
23
+ .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })
29
24
  .get();
30
25
 
31
26
  const { email, username, password, role } = ctx.request.body;
@@ -35,7 +30,7 @@ module.exports = {
35
30
  if (!password) return ctx.badRequest('missing.password');
36
31
 
37
32
  const userWithSameUsername = await strapi
38
- .query('plugins::users-permissions.user')
33
+ .query('plugin::users-permissions.user')
39
34
  .findOne({ where: { username } });
40
35
 
41
36
  if (userWithSameUsername) {
@@ -51,7 +46,7 @@ module.exports = {
51
46
 
52
47
  if (advanced.unique_email) {
53
48
  const userWithSameEmail = await strapi
54
- .query('plugins::users-permissions.user')
49
+ .query('plugin::users-permissions.user')
55
50
  .findOne({ where: { email: email.toLowerCase() } });
56
51
 
57
52
  if (userWithSameEmail) {
@@ -72,11 +67,11 @@ module.exports = {
72
67
  provider: 'local',
73
68
  };
74
69
 
75
- user.email = user.email.toLowerCase();
70
+ user.email = _.toLower(user.email);
76
71
 
77
72
  if (!role) {
78
73
  const defaultRole = await strapi
79
- .query('plugins::users-permissions.role')
74
+ .query('plugin::users-permissions.role')
80
75
  .findOne({ where: { type: advanced.default_role } });
81
76
 
82
77
  user.role = defaultRole.id;
@@ -90,27 +85,20 @@ module.exports = {
90
85
  ctx.badRequest(null, formatError(error));
91
86
  }
92
87
  },
88
+
93
89
  /**
94
90
  * Update a/an user record.
95
91
  * @return {Object}
96
92
  */
97
-
98
93
  async update(ctx) {
99
94
  const advancedConfigs = await strapi
100
- .store({
101
- environment: '',
102
- type: 'plugin',
103
- name: 'users-permissions',
104
- key: 'advanced',
105
- })
95
+ .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })
106
96
  .get();
107
97
 
108
98
  const { id } = ctx.params;
109
99
  const { email, username, password } = ctx.request.body;
110
100
 
111
- const user = await getService('user').fetch({
112
- id,
113
- });
101
+ const user = await getService('user').fetch({ id });
114
102
 
115
103
  if (_.has(ctx.request.body, 'email') && !email) {
116
104
  return ctx.badRequest('email.notNull');
@@ -126,7 +114,7 @@ module.exports = {
126
114
 
127
115
  if (_.has(ctx.request.body, 'username')) {
128
116
  const userWithSameUsername = await strapi
129
- .query('plugins::users-permissions.user')
117
+ .query('plugin::users-permissions.user')
130
118
  .findOne({ where: { username } });
131
119
 
132
120
  if (userWithSameUsername && userWithSameUsername.id != id) {
@@ -143,7 +131,7 @@ module.exports = {
143
131
 
144
132
  if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {
145
133
  const userWithSameEmail = await strapi
146
- .query('plugins::users-permissions.user')
134
+ .query('plugin::users-permissions.user')
147
135
  .findOne({ where: { email: email.toLowerCase() } });
148
136
 
149
137
  if (userWithSameEmail && userWithSameEmail.id != id) {
@@ -163,10 +151,6 @@ module.exports = {
163
151
  ...ctx.request.body,
164
152
  };
165
153
 
166
- if (_.has(ctx.request.body, 'password') && password === user.password) {
167
- delete updateData.password;
168
- }
169
-
170
154
  const data = await getService('user').edit({ id }, updateData);
171
155
 
172
156
  ctx.send(sanitizeUser(data));
@@ -14,7 +14,7 @@ const apiUserController = require('./user/api');
14
14
 
15
15
  const sanitizeUser = user =>
16
16
  sanitizeEntity(user, {
17
- model: strapi.getModel('plugins::users-permissions.user'),
17
+ model: strapi.getModel('plugin::users-permissions.user'),
18
18
  });
19
19
 
20
20
  const resolveController = ctx => {
@@ -62,7 +62,6 @@ module.exports = {
62
62
  data = sanitizeUser(data);
63
63
  }
64
64
 
65
- // Send 200 `ok`
66
65
  ctx.body = data;
67
66
  },
68
67
 
@@ -86,21 +85,6 @@ module.exports = {
86
85
  ctx.send(sanitizeUser(data));
87
86
  },
88
87
 
89
- async destroyAll(ctx) {
90
- const {
91
- request: { query },
92
- } = ctx;
93
-
94
- const toRemove = Object.values(_.omit(query, 'source'));
95
-
96
- // FIXME: delete many
97
- const finalQuery = { id: toRemove };
98
-
99
- const data = await getService('user').removeAll(finalQuery);
100
-
101
- ctx.send(data);
102
- },
103
-
104
88
  /**
105
89
  * Retrieve authenticated user.
106
90
  * @return {Object|Array}
@@ -109,7 +93,7 @@ module.exports = {
109
93
  const user = ctx.state.user;
110
94
 
111
95
  if (!user) {
112
- return ctx.badRequest(null, [{ messages: [{ id: 'No authorization header was found' }] }]);
96
+ return ctx.badRequest('Unauthenticated request');
113
97
  }
114
98
 
115
99
  ctx.body = sanitizeUser(user);
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ const register = require('./register');
4
+ const bootstrap = require('./bootstrap');
5
+ const contentTypes = require('./content-types');
6
+ const policies = require('./policies');
7
+ const services = require('./services');
8
+ const routes = require('./routes');
9
+ const controllers = require('./controllers');
10
+ const config = require('./config');
11
+
12
+ module.exports = () => ({
13
+ register,
14
+ bootstrap,
15
+ config,
16
+ routes,
17
+ controllers,
18
+ contentTypes,
19
+ policies,
20
+ services,
21
+ });
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ const rateLimit = require('./rateLimit');
4
+
5
+ module.exports = {
6
+ rateLimit,
7
+ };
@@ -1,12 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const lazyRateLimit = {
4
- get RateLimit() {
5
- return require('koa2-ratelimit').RateLimit;
6
- },
7
- };
8
-
9
3
  module.exports = async (ctx, next) => {
4
+ const ratelimit = require('koa2-ratelimit').RateLimit;
5
+
10
6
  const message = [
11
7
  {
12
8
  messages: [
@@ -18,7 +14,7 @@ module.exports = async (ctx, next) => {
18
14
  },
19
15
  ];
20
16
 
21
- return lazyRateLimit.RateLimit.middleware(
17
+ return ratelimit.middleware(
22
18
  Object.assign(
23
19
  {},
24
20
  {
@@ -27,7 +23,7 @@ module.exports = async (ctx, next) => {
27
23
  prefixKey: `${ctx.request.path}:${ctx.request.ip}`,
28
24
  message,
29
25
  },
30
- strapi.plugins['users-permissions'].config.ratelimit
26
+ strapi.config.get('plugin.users-permissions.ratelimit')
31
27
  )
32
28
  )(ctx, next);
33
29
  };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ const authStrategy = require('./strategies/users-permissions');
4
+
5
+ module.exports = strapi => {
6
+ strapi.container.get('auth').register('content-api', authStrategy);
7
+ };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const permissionsRoutes = require('./permissions');
4
+ const settingsRoutes = require('./settings');
5
+ const roleRoutes = require('./role');
6
+
7
+ module.exports = {
8
+ type: 'admin',
9
+ routes: [...roleRoutes, ...settingsRoutes, ...permissionsRoutes],
10
+ };
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ module.exports = [
4
+ {
5
+ method: 'GET',
6
+ path: '/permissions',
7
+ handler: 'permissions.getPermissions',
8
+ },
9
+ {
10
+ method: 'GET',
11
+ path: '/policies',
12
+ handler: 'permissions.getPolicies',
13
+ },
14
+
15
+ {
16
+ method: 'GET',
17
+ path: '/routes',
18
+ handler: 'permissions.getRoutes',
19
+ },
20
+ ];
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ module.exports = [
4
+ {
5
+ method: 'GET',
6
+ path: '/roles/:id',
7
+ handler: 'role.getRole',
8
+ config: {
9
+ policies: [
10
+ {
11
+ name: 'admin::hasPermissions',
12
+ options: {
13
+ actions: ['plugin::users-permissions.roles.read'],
14
+ },
15
+ },
16
+ ],
17
+ },
18
+ },
19
+ {
20
+ method: 'GET',
21
+ path: '/roles',
22
+ handler: 'role.getRoles',
23
+ config: {
24
+ policies: [
25
+ {
26
+ name: 'admin::hasPermissions',
27
+ options: {
28
+ actions: ['plugin::users-permissions.roles.read'],
29
+ },
30
+ },
31
+ ],
32
+ },
33
+ },
34
+ {
35
+ method: 'POST',
36
+ path: '/roles',
37
+ handler: 'role.createRole',
38
+ config: {
39
+ policies: [
40
+ {
41
+ name: 'admin::hasPermissions',
42
+ options: {
43
+ actions: ['plugin::users-permissions.roles.create'],
44
+ },
45
+ },
46
+ ],
47
+ },
48
+ },
49
+ {
50
+ method: 'PUT',
51
+ path: '/roles/:role',
52
+ handler: 'role.updateRole',
53
+ config: {
54
+ policies: [
55
+ {
56
+ name: 'admin::hasPermissions',
57
+ options: {
58
+ actions: ['plugin::users-permissions.roles.update'],
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ },
64
+ {
65
+ method: 'DELETE',
66
+ path: '/roles/:role',
67
+ handler: 'role.deleteRole',
68
+ config: {
69
+ policies: [
70
+ {
71
+ name: 'admin::hasPermissions',
72
+ options: {
73
+ actions: ['plugin::users-permissions.roles.delete'],
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ },
79
+ ];
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ module.exports = [
4
+ {
5
+ method: 'GET',
6
+ path: '/email-templates',
7
+ handler: 'settings.getEmailTemplate',
8
+ config: {
9
+ policies: [
10
+ {
11
+ name: 'admin::hasPermissions',
12
+ options: {
13
+ actions: ['plugin::users-permissions.email-templates.read'],
14
+ },
15
+ },
16
+ ],
17
+ },
18
+ },
19
+ {
20
+ method: 'PUT',
21
+ path: '/email-templates',
22
+ handler: 'settings.updateEmailTemplate',
23
+ config: {
24
+ policies: [
25
+ {
26
+ name: 'admin::hasPermissions',
27
+ options: {
28
+ actions: ['plugin::users-permissions.email-templates.update'],
29
+ },
30
+ },
31
+ ],
32
+ },
33
+ },
34
+ {
35
+ method: 'GET',
36
+ path: '/advanced',
37
+ handler: 'settings.getAdvancedSettings',
38
+ config: {
39
+ policies: [
40
+ {
41
+ name: 'admin::hasPermissions',
42
+ options: {
43
+ actions: ['plugin::users-permissions.advanced-settings.read'],
44
+ },
45
+ },
46
+ ],
47
+ },
48
+ },
49
+ {
50
+ method: 'PUT',
51
+ path: '/advanced',
52
+ handler: 'settings.updateAdvancedSettings',
53
+ config: {
54
+ policies: [
55
+ {
56
+ name: 'admin::hasPermissions',
57
+ options: {
58
+ actions: ['plugin::users-permissions.advanced-settings.update'],
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ },
64
+ {
65
+ method: 'GET',
66
+ path: '/providers',
67
+ handler: 'settings.getProviders',
68
+ config: {
69
+ policies: [
70
+ {
71
+ name: 'admin::hasPermissions',
72
+ options: {
73
+ actions: ['plugin::users-permissions.providers.read'],
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ },
79
+
80
+ {
81
+ method: 'PUT',
82
+ path: '/providers',
83
+ handler: 'settings.updateProviders',
84
+ config: {
85
+ policies: [
86
+ {
87
+ name: 'admin::hasPermissions',
88
+ options: {
89
+ actions: ['plugin::users-permissions.providers.update'],
90
+ },
91
+ },
92
+ ],
93
+ },
94
+ },
95
+ ];
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ module.exports = [
4
+ {
5
+ method: 'GET',
6
+ path: '/connect/(.*)',
7
+ handler: 'auth.connect',
8
+ config: {
9
+ policies: ['plugin::users-permissions.rateLimit'],
10
+ prefix: '',
11
+ },
12
+ },
13
+ {
14
+ method: 'POST',
15
+ path: '/auth/local',
16
+ handler: 'auth.callback',
17
+ config: {
18
+ policies: ['plugin::users-permissions.rateLimit'],
19
+ prefix: '',
20
+ },
21
+ },
22
+ {
23
+ method: 'POST',
24
+ path: '/auth/local/register',
25
+ handler: 'auth.register',
26
+ config: {
27
+ policies: ['plugin::users-permissions.rateLimit'],
28
+ prefix: '',
29
+ },
30
+ },
31
+ {
32
+ method: 'GET',
33
+ path: '/auth/:provider/callback',
34
+ handler: 'auth.callback',
35
+ config: {
36
+ prefix: '',
37
+ },
38
+ },
39
+ {
40
+ method: 'POST',
41
+ path: '/auth/forgot-password',
42
+ handler: 'auth.forgotPassword',
43
+ config: {
44
+ policies: ['plugin::users-permissions.rateLimit'],
45
+ prefix: '',
46
+ },
47
+ },
48
+ {
49
+ method: 'POST',
50
+ path: '/auth/reset-password',
51
+ handler: 'auth.resetPassword',
52
+ config: {
53
+ policies: ['plugin::users-permissions.rateLimit'],
54
+ prefix: '',
55
+ },
56
+ },
57
+ {
58
+ method: 'GET',
59
+ path: '/auth/email-confirmation',
60
+ handler: 'auth.emailConfirmation',
61
+ config: {
62
+ prefix: '',
63
+ },
64
+ },
65
+ {
66
+ method: 'POST',
67
+ path: '/auth/send-email-confirmation',
68
+ handler: 'auth.sendEmailConfirmation',
69
+ config: {
70
+ prefix: '',
71
+ },
72
+ },
73
+ ];
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const authRoutes = require('./auth');
4
+ const userRoutes = require('./user');
5
+ const roleRoutes = require('./role');
6
+ const permissionsRoutes = require('./permissions');
7
+
8
+ module.exports = {
9
+ type: 'content-api',
10
+ routes: [...authRoutes, ...userRoutes, ...roleRoutes, ...permissionsRoutes],
11
+ };