@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
@@ -67,16 +67,16 @@
67
67
  "role": {
68
68
  "type": "string"
69
69
  },
70
- "created_by": {
70
+ "createdBy": {
71
71
  "type": "string"
72
72
  },
73
- "updated_by": {
73
+ "updatedBy": {
74
74
  "type": "string"
75
75
  }
76
76
  }
77
77
  }
78
78
  },
79
- "created_by": {
79
+ "createdBy": {
80
80
  "required": ["id", "email"],
81
81
  "properties": {
82
82
  "id": {
@@ -117,7 +117,7 @@
117
117
  }
118
118
  }
119
119
  },
120
- "updated_by": {
120
+ "updatedBy": {
121
121
  "required": ["id", "email"],
122
122
  "properties": {
123
123
  "id": {
@@ -192,7 +192,7 @@
192
192
  "type": {
193
193
  "type": "string"
194
194
  },
195
- "created_by": {
195
+ "createdBy": {
196
196
  "required": ["id", "email"],
197
197
  "properties": {
198
198
  "id": {
@@ -233,7 +233,7 @@
233
233
  }
234
234
  }
235
235
  },
236
- "updated_by": {
236
+ "updatedBy": {
237
237
  "required": ["id", "email"],
238
238
  "properties": {
239
239
  "id": {
@@ -6,7 +6,7 @@
6
6
  "security": [],
7
7
  "externalDocs": {
8
8
  "description": "Find out more in the strapi's documentation",
9
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#registration"
9
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#registration"
10
10
  },
11
11
  "responses": {
12
12
  "200": {
@@ -58,7 +58,7 @@
58
58
  "security": [],
59
59
  "externalDocs": {
60
60
  "description": "Find out more in the strapi's documentation",
61
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#email-validation"
61
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#email-validation"
62
62
  },
63
63
  "responses": {
64
64
  "200": {
@@ -130,7 +130,7 @@
130
130
  ],
131
131
  "externalDocs": {
132
132
  "description": "Find out more about the authentication flow in the strapi documentation",
133
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#setting-up-the-provider-examples"
133
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#providers"
134
134
  },
135
135
  "responses": {
136
136
  "200": {
@@ -143,7 +143,7 @@
143
143
  "post": {
144
144
  "externalDocs": {
145
145
  "description": "Find out more in the strapi's documentation",
146
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#login"
146
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#login"
147
147
  },
148
148
  "tags": ["Authentication"],
149
149
  "security": [],
@@ -188,7 +188,7 @@
188
188
  "tags": ["Authentication"],
189
189
  "externalDocs": {
190
190
  "description": "Find out more in the strapi's documentation",
191
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#setting-up-the-provider-examples"
191
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#providers"
192
192
  },
193
193
  "parameters": [
194
194
  {
@@ -223,7 +223,7 @@
223
223
  "summary": "Send an email to reset your password",
224
224
  "externalDocs": {
225
225
  "description": "Find out more in the strapi's documentation",
226
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#forgotten-reset-password"
226
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#forgotten-reset-password"
227
227
  },
228
228
  "requestBody": {
229
229
  "description": "",
@@ -315,7 +315,7 @@
315
315
  "description": "All the routes related to the authentication",
316
316
  "externalDocs": {
317
317
  "description": "Find out more in strapi's documentation",
318
- "url": "https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html"
318
+ "url": "https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html"
319
319
  }
320
320
  },
321
321
  {
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const baseConfig = require('../../../jest.base-config.front');
4
+ const pkg = require('./package');
5
+
6
+ module.exports = {
7
+ ...baseConfig,
8
+ displayName: (pkg.strapi && pkg.strapi.name) || pkg.name,
9
+ roots: [__dirname],
10
+ };
package/package.json CHANGED
@@ -1,23 +1,36 @@
1
1
  {
2
2
  "name": "@strapi/plugin-users-permissions",
3
- "version": "4.0.0-next.7",
3
+ "version": "4.0.1",
4
4
  "description": "Protect your API with a full-authentication process based on JWT",
5
- "strapi": {
6
- "displayName": "Roles & Permissions",
7
- "name": "users-permissions",
8
- "icon": "users",
9
- "description": "users-permissions.plugin.description",
10
- "required": true,
11
- "kind": "plugin"
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git://github.com/strapi/strapi.git"
8
+ },
9
+ "license": "SEE LICENSE IN LICENSE",
10
+ "author": {
11
+ "name": "Strapi Solutions SAS",
12
+ "email": "hi@strapi.io",
13
+ "url": "https://strapi.io"
12
14
  },
15
+ "maintainers": [
16
+ {
17
+ "name": "Strapi Solutions SAS",
18
+ "email": "hi@strapi.io",
19
+ "url": "https://strapi.io"
20
+ }
21
+ ],
13
22
  "scripts": {
14
- "test": "echo \"no tests yet\""
23
+ "test:unit": "jest --verbose",
24
+ "test:front": "cross-env IS_EE=true jest --config ./jest.config.front.js",
25
+ "test:front:watch": "cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
26
+ "test:front:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js",
27
+ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll"
15
28
  },
16
29
  "dependencies": {
17
30
  "@purest/providers": "^1.0.2",
18
- "@strapi/helper-plugin": "4.0.0-next.7",
19
- "@strapi/utils": "4.0.0-next.7",
20
- "bcryptjs": "^2.4.3",
31
+ "@strapi/helper-plugin": "4.0.1",
32
+ "@strapi/utils": "4.0.1",
33
+ "bcryptjs": "2.4.3",
21
34
  "grant-koa": "5.4.8",
22
35
  "jsonwebtoken": "^8.1.0",
23
36
  "koa2-ratelimit": "^0.9.0",
@@ -28,35 +41,25 @@
28
41
  "react-intl": "5.20.2",
29
42
  "react-redux": "7.2.3",
30
43
  "react-router": "^5.2.0",
31
- "react-router-dom": "^5.0.0",
32
- "reactstrap": "8.4.1",
44
+ "react-router-dom": "5.2.0",
33
45
  "redux-saga": "^0.16.0",
34
46
  "request": "^2.83.0",
47
+ "url-join": "4.0.1",
35
48
  "uuid": "^3.1.0"
36
49
  },
37
50
  "devDependencies": {
38
51
  "koa": "^2.13.1"
39
52
  },
40
- "author": {
41
- "name": "Strapi team",
42
- "email": "hi@strapi.io",
43
- "url": "https://strapi.io"
44
- },
45
- "maintainers": [
46
- {
47
- "name": "Strapi team",
48
- "email": "hi@strapi.io",
49
- "url": "https://strapi.io"
50
- }
51
- ],
52
- "repository": {
53
- "type": "git",
54
- "url": "git://github.com/strapi/strapi.git"
55
- },
56
53
  "engines": {
57
54
  "node": ">=12.x.x <=16.x.x",
58
55
  "npm": ">=6.0.0"
59
56
  },
60
- "license": "SEE LICENSE IN LICENSE",
61
- "gitHead": "522d6afd54b68ed3376dd0c807fab6c1315f1931"
57
+ "strapi": {
58
+ "displayName": "Roles & Permissions",
59
+ "name": "users-permissions",
60
+ "description": "Protect your API with a full authentication process based on JWT. This plugin comes also with an ACL strategy that allows you to manage the permissions between the groups of users.",
61
+ "required": true,
62
+ "kind": "plugin"
63
+ },
64
+ "gitHead": "e2cd01e8c6cbfeba15ad7787e38b6eebcbb92221"
62
65
  }
@@ -13,12 +13,8 @@ const { getService } = require('../utils');
13
13
 
14
14
  const usersPermissionsActions = require('./users-permissions-actions');
15
15
 
16
- module.exports = async () => {
17
- const pluginStore = strapi.store({
18
- environment: '',
19
- type: 'plugin',
20
- name: 'users-permissions',
21
- });
16
+ module.exports = async ({ strapi }) => {
17
+ const pluginStore = strapi.store({ type: 'plugin', name: 'users-permissions' });
22
18
 
23
19
  await initGrant(pluginStore);
24
20
  await initEmails(pluginStore);
@@ -30,21 +26,20 @@ module.exports = async () => {
30
26
 
31
27
  await getService('users-permissions').initialize();
32
28
 
33
- // TODO: adapt with new extension system
34
29
  if (!strapi.config.get('plugin.users-permissions.jwtSecret')) {
35
30
  const jwtSecret = uuid();
36
31
  strapi.config.set('plugin.users-permissions.jwtSecret', jwtSecret);
37
- strapi.reload.isWatching = false;
38
32
 
39
33
  if (!process.env.JWT_SECRET) {
40
- await strapi.fs.appendFile('.env', `JWT_SECRET=${jwtSecret}\n`);
34
+ strapi.fs.appendFile('.env', `JWT_SECRET=${jwtSecret}\n`);
41
35
  }
42
-
43
- strapi.reload.isWatching = true;
44
36
  }
45
37
  };
46
38
 
47
39
  const initGrant = async pluginStore => {
40
+ const apiPrefix = strapi.config.get('api.rest.prefix');
41
+ const baseURL = `${strapi.config.server.url}/${apiPrefix}/auth`;
42
+
48
43
  const grantConfig = {
49
44
  email: {
50
45
  enabled: true,
@@ -55,7 +50,7 @@ const initGrant = async pluginStore => {
55
50
  icon: 'discord',
56
51
  key: '',
57
52
  secret: '',
58
- callback: `${strapi.config.server.url}/auth/discord/callback`,
53
+ callback: `${baseURL}/discord/callback`,
59
54
  scope: ['identify', 'email'],
60
55
  },
61
56
  facebook: {
@@ -63,7 +58,7 @@ const initGrant = async pluginStore => {
63
58
  icon: 'facebook-square',
64
59
  key: '',
65
60
  secret: '',
66
- callback: `${strapi.config.server.url}/auth/facebook/callback`,
61
+ callback: `${baseURL}/facebook/callback`,
67
62
  scope: ['email'],
68
63
  },
69
64
  google: {
@@ -71,7 +66,7 @@ const initGrant = async pluginStore => {
71
66
  icon: 'google',
72
67
  key: '',
73
68
  secret: '',
74
- callback: `${strapi.config.server.url}/auth/google/callback`,
69
+ callback: `${baseURL}/google/callback`,
75
70
  scope: ['email'],
76
71
  },
77
72
  github: {
@@ -79,7 +74,7 @@ const initGrant = async pluginStore => {
79
74
  icon: 'github',
80
75
  key: '',
81
76
  secret: '',
82
- callback: `${strapi.config.server.url}/auth/github/callback`,
77
+ callback: `${baseURL}/github/callback`,
83
78
  scope: ['user', 'user:email'],
84
79
  },
85
80
  microsoft: {
@@ -87,7 +82,7 @@ const initGrant = async pluginStore => {
87
82
  icon: 'windows',
88
83
  key: '',
89
84
  secret: '',
90
- callback: `${strapi.config.server.url}/auth/microsoft/callback`,
85
+ callback: `${baseURL}/microsoft/callback`,
91
86
  scope: ['user.read'],
92
87
  },
93
88
  twitter: {
@@ -95,14 +90,14 @@ const initGrant = async pluginStore => {
95
90
  icon: 'twitter',
96
91
  key: '',
97
92
  secret: '',
98
- callback: `${strapi.config.server.url}/auth/twitter/callback`,
93
+ callback: `${baseURL}/twitter/callback`,
99
94
  },
100
95
  instagram: {
101
96
  enabled: false,
102
97
  icon: 'instagram',
103
98
  key: '',
104
99
  secret: '',
105
- callback: `${strapi.config.server.url}/auth/instagram/callback`,
100
+ callback: `${baseURL}/instagram/callback`,
106
101
  scope: ['user_profile'],
107
102
  },
108
103
  vk: {
@@ -110,7 +105,7 @@ const initGrant = async pluginStore => {
110
105
  icon: 'vk',
111
106
  key: '',
112
107
  secret: '',
113
- callback: `${strapi.config.server.url}/auth/vk/callback`,
108
+ callback: `${baseURL}/vk/callback`,
114
109
  scope: ['email'],
115
110
  },
116
111
  twitch: {
@@ -118,7 +113,7 @@ const initGrant = async pluginStore => {
118
113
  icon: 'twitch',
119
114
  key: '',
120
115
  secret: '',
121
- callback: `${strapi.config.server.url}/auth/twitch/callback`,
116
+ callback: `${baseURL}/twitch/callback`,
122
117
  scope: ['user:read:email'],
123
118
  },
124
119
  linkedin: {
@@ -126,7 +121,7 @@ const initGrant = async pluginStore => {
126
121
  icon: 'linkedin',
127
122
  key: '',
128
123
  secret: '',
129
- callback: `${strapi.config.server.url}/auth/linkedin/callback`,
124
+ callback: `${baseURL}/linkedin/callback`,
130
125
  scope: ['r_liteprofile', 'r_emailaddress'],
131
126
  },
132
127
  cognito: {
@@ -135,7 +130,7 @@ const initGrant = async pluginStore => {
135
130
  key: '',
136
131
  secret: '',
137
132
  subdomain: 'my.subdomain.com',
138
- callback: `${strapi.config.server.url}/auth/cognito/callback`,
133
+ callback: `${baseURL}/cognito/callback`,
139
134
  scope: ['email', 'openid', 'profile'],
140
135
  },
141
136
  reddit: {
@@ -144,7 +139,7 @@ const initGrant = async pluginStore => {
144
139
  key: '',
145
140
  secret: '',
146
141
  state: true,
147
- callback: `${strapi.config.server.url}/auth/reddit/callback`,
142
+ callback: `${baseURL}/reddit/callback`,
148
143
  scope: ['identity'],
149
144
  },
150
145
  auth0: {
@@ -153,7 +148,7 @@ const initGrant = async pluginStore => {
153
148
  key: '',
154
149
  secret: '',
155
150
  subdomain: 'my-tenant.eu',
156
- callback: `${strapi.config.server.url}/auth/auth0/callback`,
151
+ callback: `${baseURL}/auth0/callback`,
157
152
  scope: ['openid', 'email', 'profile'],
158
153
  },
159
154
  cas: {
@@ -161,7 +156,7 @@ const initGrant = async pluginStore => {
161
156
  icon: 'book',
162
157
  key: '',
163
158
  secret: '',
164
- callback: `${strapi.config.server.url}/auth/cas/callback`,
159
+ callback: `${baseURL}/cas/callback`,
165
160
  scope: ['openid email'], // scopes should be space delimited
166
161
  subdomain: 'my.subdomain.com/cas',
167
162
  },
package/server/config.js CHANGED
@@ -13,11 +13,11 @@ module.exports = {
13
13
  layout: {
14
14
  user: {
15
15
  actions: {
16
- create: 'User.create', // Use the User plugin's controller.
17
- update: 'User.update',
16
+ create: 'contentManagerUser.create', // Use the User plugin's controller.
17
+ update: 'contentManagerUser.update',
18
18
  },
19
19
  },
20
20
  },
21
21
  }),
22
- validator: () => {},
22
+ validator() {},
23
23
  };
@@ -5,7 +5,7 @@ const role = require('./role');
5
5
  const user = require('./user');
6
6
 
7
7
  module.exports = {
8
- permission,
9
- role,
10
- user,
8
+ permission: { schema: permission },
9
+ role: { schema: role },
10
+ user: { schema: user },
11
11
  };
@@ -1,7 +1,34 @@
1
1
  'use strict';
2
2
 
3
- const schema = require('./schema');
4
-
5
3
  module.exports = {
6
- schema,
4
+ collectionName: 'up_permissions',
5
+ info: {
6
+ name: 'permission',
7
+ description: '',
8
+ singularName: 'permission',
9
+ pluralName: 'permissions',
10
+ displayName: 'Permission',
11
+ },
12
+ pluginOptions: {
13
+ 'content-manager': {
14
+ visible: false,
15
+ },
16
+ 'content-type-builder': {
17
+ visible: false,
18
+ },
19
+ },
20
+ attributes: {
21
+ action: {
22
+ type: 'string',
23
+ required: true,
24
+ configurable: false,
25
+ },
26
+ role: {
27
+ type: 'relation',
28
+ relation: 'manyToOne',
29
+ target: 'plugin::users-permissions.role',
30
+ inversedBy: 'permissions',
31
+ configurable: false,
32
+ },
33
+ },
7
34
  };
@@ -1,7 +1,51 @@
1
1
  'use strict';
2
2
 
3
- const schema = require('./schema');
4
-
5
3
  module.exports = {
6
- schema,
4
+ collectionName: 'up_roles',
5
+ info: {
6
+ name: 'role',
7
+ description: '',
8
+ singularName: 'role',
9
+ pluralName: 'roles',
10
+ displayName: 'Role',
11
+ },
12
+ pluginOptions: {
13
+ 'content-manager': {
14
+ visible: false,
15
+ },
16
+ 'content-type-builder': {
17
+ visible: false,
18
+ },
19
+ },
20
+ attributes: {
21
+ name: {
22
+ type: 'string',
23
+ minLength: 3,
24
+ required: true,
25
+ configurable: false,
26
+ },
27
+ description: {
28
+ type: 'string',
29
+ configurable: false,
30
+ },
31
+ type: {
32
+ type: 'string',
33
+ unique: true,
34
+ configurable: false,
35
+ },
36
+ permissions: {
37
+ type: 'relation',
38
+ relation: 'oneToMany',
39
+ target: 'plugin::users-permissions.permission',
40
+ mappedBy: 'role',
41
+ configurable: false,
42
+ },
43
+ users: {
44
+ type: 'relation',
45
+ relation: 'oneToMany',
46
+ target: 'plugin::users-permissions.user',
47
+ mappedBy: 'role',
48
+ configurable: false,
49
+ },
50
+ },
7
51
  };
@@ -1,11 +1,72 @@
1
1
  'use strict';
2
2
 
3
- const schema = require('./schema');
4
3
  const schemaConfig = require('./schema-config');
5
4
 
6
5
  module.exports = {
7
- schema: {
8
- ...schema,
9
- config: schemaConfig, // TODO: to handle differently for V4
6
+ collectionName: 'up_users',
7
+ info: {
8
+ name: 'user',
9
+ description: '',
10
+ singularName: 'user',
11
+ pluralName: 'users',
12
+ displayName: 'User',
10
13
  },
14
+ options: {
15
+ draftAndPublish: false,
16
+ timestamps: true,
17
+ },
18
+ attributes: {
19
+ username: {
20
+ type: 'string',
21
+ minLength: 3,
22
+ unique: true,
23
+ configurable: false,
24
+ required: true,
25
+ },
26
+ email: {
27
+ type: 'email',
28
+ minLength: 6,
29
+ configurable: false,
30
+ required: true,
31
+ },
32
+ provider: {
33
+ type: 'string',
34
+ configurable: false,
35
+ },
36
+ password: {
37
+ type: 'password',
38
+ minLength: 6,
39
+ configurable: false,
40
+ private: true,
41
+ },
42
+ resetPasswordToken: {
43
+ type: 'string',
44
+ configurable: false,
45
+ private: true,
46
+ },
47
+ confirmationToken: {
48
+ type: 'string',
49
+ configurable: false,
50
+ private: true,
51
+ },
52
+ confirmed: {
53
+ type: 'boolean',
54
+ default: false,
55
+ configurable: false,
56
+ },
57
+ blocked: {
58
+ type: 'boolean',
59
+ default: false,
60
+ configurable: false,
61
+ },
62
+ role: {
63
+ type: 'relation',
64
+ relation: 'manyToOne',
65
+ target: 'plugin::users-permissions.role',
66
+ inversedBy: 'users',
67
+ configurable: false,
68
+ },
69
+ },
70
+
71
+ config: schemaConfig, // TODO: to move to content-manager options
11
72
  };