@strapi/plugin-users-permissions 4.0.0-next.9 → 4.0.3

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 (178) 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 +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 +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 +93 -54
  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/jest.config.front.js +10 -0
  66. package/package.json +36 -33
  67. package/server/bootstrap/index.js +19 -21
  68. package/server/config.js +3 -3
  69. package/server/content-types/index.js +3 -3
  70. package/server/content-types/permission/index.js +30 -3
  71. package/server/content-types/role/index.js +47 -3
  72. package/server/content-types/user/index.js +65 -4
  73. package/server/controllers/auth.js +82 -245
  74. package/server/controllers/content-manager-user.js +183 -0
  75. package/server/controllers/index.js +12 -6
  76. package/server/controllers/permissions.js +26 -0
  77. package/server/controllers/role.js +77 -0
  78. package/server/controllers/settings.js +85 -0
  79. package/server/controllers/user.js +119 -45
  80. package/server/controllers/validation/auth.js +29 -0
  81. package/server/controllers/validation/user.js +38 -0
  82. package/server/graphql/index.js +44 -0
  83. package/server/graphql/mutations/auth/email-confirmation.js +39 -0
  84. package/server/graphql/mutations/auth/forgot-password.js +38 -0
  85. package/server/graphql/mutations/auth/login.js +38 -0
  86. package/server/graphql/mutations/auth/register.js +39 -0
  87. package/server/graphql/mutations/auth/reset-password.js +41 -0
  88. package/server/graphql/mutations/crud/role/create-role.js +37 -0
  89. package/server/graphql/mutations/crud/role/delete-role.js +28 -0
  90. package/server/graphql/mutations/crud/role/update-role.js +38 -0
  91. package/server/graphql/mutations/crud/user/create-user.js +48 -0
  92. package/server/graphql/mutations/crud/user/delete-user.js +42 -0
  93. package/server/graphql/mutations/crud/user/update-user.js +49 -0
  94. package/server/graphql/mutations/index.js +42 -0
  95. package/server/graphql/queries/index.js +13 -0
  96. package/server/graphql/queries/me.js +17 -0
  97. package/server/graphql/resolvers-configs.js +37 -0
  98. package/server/graphql/types/create-role-payload.js +11 -0
  99. package/server/graphql/types/delete-role-payload.js +11 -0
  100. package/server/graphql/types/index.js +21 -0
  101. package/server/graphql/types/login-input.js +13 -0
  102. package/server/graphql/types/login-payload.js +12 -0
  103. package/server/graphql/types/me-role.js +14 -0
  104. package/server/graphql/types/me.js +16 -0
  105. package/server/graphql/types/password-payload.js +11 -0
  106. package/server/graphql/types/register-input.js +13 -0
  107. package/server/graphql/types/update-role-payload.js +11 -0
  108. package/server/graphql/utils.js +27 -0
  109. package/server/index.js +21 -0
  110. package/server/middlewares/index.js +2 -2
  111. package/server/{policies → middlewares}/rateLimit.js +3 -7
  112. package/server/register.js +11 -0
  113. package/server/routes/admin/index.js +10 -0
  114. package/server/routes/admin/permissions.js +20 -0
  115. package/server/routes/admin/role.js +79 -0
  116. package/server/routes/admin/settings.js +95 -0
  117. package/server/routes/content-api/auth.js +73 -0
  118. package/server/routes/content-api/index.js +11 -0
  119. package/server/routes/content-api/permissions.js +9 -0
  120. package/server/routes/content-api/role.js +29 -0
  121. package/server/routes/content-api/user.js +61 -0
  122. package/server/routes/index.js +4 -428
  123. package/server/services/index.js +10 -8
  124. package/server/services/jwt.js +9 -17
  125. package/server/services/providers.js +32 -33
  126. package/server/services/role.js +177 -0
  127. package/server/services/user.js +23 -22
  128. package/server/services/users-permissions.js +140 -338
  129. package/server/strategies/users-permissions.js +123 -0
  130. package/server/utils/index.d.ts +2 -0
  131. package/strapi-admin.js +3 -0
  132. package/strapi-server.js +1 -19
  133. package/admin/src/assets/images/logo.svg +0 -1
  134. package/admin/src/components/BaselineAlignement/index.js +0 -33
  135. package/admin/src/components/Bloc/index.js +0 -10
  136. package/admin/src/components/BoundRoute/Components.js +0 -78
  137. package/admin/src/components/ContainerFluid/index.js +0 -13
  138. package/admin/src/components/FormBloc/index.js +0 -61
  139. package/admin/src/components/IntlInput/index.js +0 -38
  140. package/admin/src/components/ListBaselineAlignment/index.js +0 -8
  141. package/admin/src/components/ListRow/Components.js +0 -74
  142. package/admin/src/components/ListRow/index.js +0 -35
  143. package/admin/src/components/ModalForm/Wrapper.js +0 -12
  144. package/admin/src/components/ModalForm/index.js +0 -59
  145. package/admin/src/components/Permissions/ListWrapper.js +0 -9
  146. package/admin/src/components/Permissions/PermissionRow/BaselineAlignment.js +0 -7
  147. package/admin/src/components/Permissions/PermissionRow/RowStyle.js +0 -28
  148. package/admin/src/components/Permissions/PermissionRow/SubCategory/ConditionsButtonWrapper.js +0 -13
  149. package/admin/src/components/Permissions/PermissionRow/SubCategory/PolicyWrapper.js +0 -8
  150. package/admin/src/components/Permissions/PermissionRow/SubCategory/SubCategoryWrapper.js +0 -26
  151. package/admin/src/components/Permissions/PermissionRow/SubCategory/index.js +0 -116
  152. package/admin/src/components/Policies/Components.js +0 -26
  153. package/admin/src/components/PrefixedIcon/index.js +0 -27
  154. package/admin/src/components/Roles/EmptyRole/BaselineAlignment.js +0 -7
  155. package/admin/src/components/Roles/EmptyRole/index.js +0 -27
  156. package/admin/src/components/Roles/RoleListWrapper/index.js +0 -17
  157. package/admin/src/components/Roles/RoleRow/RoleDescription.js +0 -9
  158. package/admin/src/components/Roles/RoleRow/index.js +0 -45
  159. package/admin/src/components/Roles/index.js +0 -3
  160. package/admin/src/components/SizedInput/index.js +0 -24
  161. package/admin/src/pages/AdvancedSettings/reducer.js +0 -65
  162. package/admin/src/pages/AdvancedSettings/utils/form.js +0 -52
  163. package/admin/src/pages/EmailTemplates/CustomTextInput.js +0 -105
  164. package/admin/src/pages/EmailTemplates/Wrapper.js +0 -36
  165. package/admin/src/pages/EmailTemplates/reducer.js +0 -58
  166. package/admin/src/pages/EmailTemplates/utils/forms.js +0 -81
  167. package/admin/src/pages/Roles/ListPage/BaselineAlignment.js +0 -8
  168. package/server/content-types/permission/schema.json +0 -48
  169. package/server/content-types/role/schema.json +0 -46
  170. package/server/content-types/user/schema.json +0 -66
  171. package/server/controllers/user/admin.js +0 -230
  172. package/server/controllers/user/api.js +0 -174
  173. package/server/controllers/users-permissions.js +0 -271
  174. package/server/middlewares/users-permissions.js +0 -44
  175. package/server/policies/index.js +0 -11
  176. package/server/policies/isAuthenticated.js +0 -9
  177. package/server/policies/permissions.js +0 -94
  178. package/server/schema.graphql.js +0 -317
@@ -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.9",
3
+ "version": "4.0.3",
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.9",
19
- "@strapi/utils": "^4.0.0-next.9",
20
- "bcryptjs": "^2.4.3",
31
+ "@strapi/helper-plugin": "4.0.3",
32
+ "@strapi/utils": "4.0.3",
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
- "node": ">=12.x.x <=16.x.x",
54
+ "node": ">=12.22.0 <=16.x.x",
58
55
  "npm": ">=6.0.0"
59
56
  },
60
- "license": "SEE LICENSE IN LICENSE",
61
- "gitHead": "231263a3535658bab1e9492c6aaaed8692d62a53"
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": "48893ae3fc951b618fd8c4fdc6970e623d2c92db"
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,7 +26,6 @@ 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);
@@ -42,6 +37,9 @@ module.exports = async () => {
42
37
  };
43
38
 
44
39
  const initGrant = async pluginStore => {
40
+ const apiPrefix = strapi.config.get('api.rest.prefix');
41
+ const baseURL = `${strapi.config.server.url}/${apiPrefix}/auth`;
42
+
45
43
  const grantConfig = {
46
44
  email: {
47
45
  enabled: true,
@@ -52,7 +50,7 @@ const initGrant = async pluginStore => {
52
50
  icon: 'discord',
53
51
  key: '',
54
52
  secret: '',
55
- callback: `${strapi.config.server.url}/auth/discord/callback`,
53
+ callback: `${baseURL}/discord/callback`,
56
54
  scope: ['identify', 'email'],
57
55
  },
58
56
  facebook: {
@@ -60,7 +58,7 @@ const initGrant = async pluginStore => {
60
58
  icon: 'facebook-square',
61
59
  key: '',
62
60
  secret: '',
63
- callback: `${strapi.config.server.url}/auth/facebook/callback`,
61
+ callback: `${baseURL}/facebook/callback`,
64
62
  scope: ['email'],
65
63
  },
66
64
  google: {
@@ -68,7 +66,7 @@ const initGrant = async pluginStore => {
68
66
  icon: 'google',
69
67
  key: '',
70
68
  secret: '',
71
- callback: `${strapi.config.server.url}/auth/google/callback`,
69
+ callback: `${baseURL}/google/callback`,
72
70
  scope: ['email'],
73
71
  },
74
72
  github: {
@@ -76,7 +74,7 @@ const initGrant = async pluginStore => {
76
74
  icon: 'github',
77
75
  key: '',
78
76
  secret: '',
79
- callback: `${strapi.config.server.url}/auth/github/callback`,
77
+ callback: `${baseURL}/github/callback`,
80
78
  scope: ['user', 'user:email'],
81
79
  },
82
80
  microsoft: {
@@ -84,7 +82,7 @@ const initGrant = async pluginStore => {
84
82
  icon: 'windows',
85
83
  key: '',
86
84
  secret: '',
87
- callback: `${strapi.config.server.url}/auth/microsoft/callback`,
85
+ callback: `${baseURL}/microsoft/callback`,
88
86
  scope: ['user.read'],
89
87
  },
90
88
  twitter: {
@@ -92,14 +90,14 @@ const initGrant = async pluginStore => {
92
90
  icon: 'twitter',
93
91
  key: '',
94
92
  secret: '',
95
- callback: `${strapi.config.server.url}/auth/twitter/callback`,
93
+ callback: `${baseURL}/twitter/callback`,
96
94
  },
97
95
  instagram: {
98
96
  enabled: false,
99
97
  icon: 'instagram',
100
98
  key: '',
101
99
  secret: '',
102
- callback: `${strapi.config.server.url}/auth/instagram/callback`,
100
+ callback: `${baseURL}/instagram/callback`,
103
101
  scope: ['user_profile'],
104
102
  },
105
103
  vk: {
@@ -107,7 +105,7 @@ const initGrant = async pluginStore => {
107
105
  icon: 'vk',
108
106
  key: '',
109
107
  secret: '',
110
- callback: `${strapi.config.server.url}/auth/vk/callback`,
108
+ callback: `${baseURL}/vk/callback`,
111
109
  scope: ['email'],
112
110
  },
113
111
  twitch: {
@@ -115,7 +113,7 @@ const initGrant = async pluginStore => {
115
113
  icon: 'twitch',
116
114
  key: '',
117
115
  secret: '',
118
- callback: `${strapi.config.server.url}/auth/twitch/callback`,
116
+ callback: `${baseURL}/twitch/callback`,
119
117
  scope: ['user:read:email'],
120
118
  },
121
119
  linkedin: {
@@ -123,7 +121,7 @@ const initGrant = async pluginStore => {
123
121
  icon: 'linkedin',
124
122
  key: '',
125
123
  secret: '',
126
- callback: `${strapi.config.server.url}/auth/linkedin/callback`,
124
+ callback: `${baseURL}/linkedin/callback`,
127
125
  scope: ['r_liteprofile', 'r_emailaddress'],
128
126
  },
129
127
  cognito: {
@@ -132,7 +130,7 @@ const initGrant = async pluginStore => {
132
130
  key: '',
133
131
  secret: '',
134
132
  subdomain: 'my.subdomain.com',
135
- callback: `${strapi.config.server.url}/auth/cognito/callback`,
133
+ callback: `${baseURL}/cognito/callback`,
136
134
  scope: ['email', 'openid', 'profile'],
137
135
  },
138
136
  reddit: {
@@ -141,7 +139,7 @@ const initGrant = async pluginStore => {
141
139
  key: '',
142
140
  secret: '',
143
141
  state: true,
144
- callback: `${strapi.config.server.url}/auth/reddit/callback`,
142
+ callback: `${baseURL}/reddit/callback`,
145
143
  scope: ['identity'],
146
144
  },
147
145
  auth0: {
@@ -150,7 +148,7 @@ const initGrant = async pluginStore => {
150
148
  key: '',
151
149
  secret: '',
152
150
  subdomain: 'my-tenant.eu',
153
- callback: `${strapi.config.server.url}/auth/auth0/callback`,
151
+ callback: `${baseURL}/auth0/callback`,
154
152
  scope: ['openid', 'email', 'profile'],
155
153
  },
156
154
  cas: {
@@ -158,7 +156,7 @@ const initGrant = async pluginStore => {
158
156
  icon: 'book',
159
157
  key: '',
160
158
  secret: '',
161
- callback: `${strapi.config.server.url}/auth/cas/callback`,
159
+ callback: `${baseURL}/cas/callback`,
162
160
  scope: ['openid email'], // scopes should be space delimited
163
161
  subdomain: 'my.subdomain.com/cas',
164
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
  };