@strapi/plugin-users-permissions 0.0.0-next.e21fe90bf2ab9906267ea6e6ca620bdcc729906c → 0.0.0-next.e2e3ca14971ee768e1a227a209362264fd0132d4

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 (144) hide show
  1. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +8 -1
  2. package/admin/src/components/Policies/index.jsx +1 -0
  3. package/admin/src/components/UsersPermissions/index.jsx +1 -0
  4. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +2 -1
  5. package/admin/src/pages/Providers/index.jsx +74 -76
  6. package/admin/src/pages/Roles/pages/CreatePage.jsx +20 -7
  7. package/admin/src/pages/Roles/pages/EditPage.jsx +12 -7
  8. package/admin/src/pages/Roles/pages/ListPage/index.jsx +91 -93
  9. package/admin/src/translations/en.json +1 -0
  10. package/admin/src/utils/formatPluginName.js +1 -1
  11. package/dist/admin/components/FormModal/Input/index.js.map +1 -1
  12. package/dist/admin/components/FormModal/Input/index.mjs.map +1 -1
  13. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +3 -1
  14. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -1
  15. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +3 -1
  16. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -1
  17. package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -1
  18. package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -1
  19. package/dist/admin/components/Policies/index.js +1 -0
  20. package/dist/admin/components/Policies/index.js.map +1 -1
  21. package/dist/admin/components/Policies/index.mjs +1 -0
  22. package/dist/admin/components/Policies/index.mjs.map +1 -1
  23. package/dist/admin/components/UsersPermissions/index.js +1 -0
  24. package/dist/admin/components/UsersPermissions/index.js.map +1 -1
  25. package/dist/admin/components/UsersPermissions/index.mjs +1 -0
  26. package/dist/admin/components/UsersPermissions/index.mjs.map +1 -1
  27. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
  28. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
  29. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
  30. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
  31. package/dist/admin/pages/Providers/index.js +84 -88
  32. package/dist/admin/pages/Providers/index.js.map +1 -1
  33. package/dist/admin/pages/Providers/index.mjs +84 -88
  34. package/dist/admin/pages/Providers/index.mjs.map +1 -1
  35. package/dist/admin/pages/Roles/pages/CreatePage.js +14 -1
  36. package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -1
  37. package/dist/admin/pages/Roles/pages/CreatePage.mjs +16 -3
  38. package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -1
  39. package/dist/admin/pages/Roles/pages/EditPage.js +13 -3
  40. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
  41. package/dist/admin/pages/Roles/pages/EditPage.mjs +14 -4
  42. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
  43. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -1
  44. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -1
  45. package/dist/admin/pages/Roles/pages/ListPage/index.js +95 -99
  46. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  47. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +95 -99
  48. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  49. package/dist/admin/translations/en.json.js +1 -0
  50. package/dist/admin/translations/en.json.js.map +1 -1
  51. package/dist/admin/translations/en.json.mjs +1 -0
  52. package/dist/admin/translations/en.json.mjs.map +1 -1
  53. package/dist/admin/utils/formatPluginName.js +1 -1
  54. package/dist/admin/utils/formatPluginName.js.map +1 -1
  55. package/dist/admin/utils/formatPluginName.mjs +1 -1
  56. package/dist/admin/utils/formatPluginName.mjs.map +1 -1
  57. package/dist/admin/utils/getTrad.js.map +1 -1
  58. package/dist/admin/utils/getTrad.mjs.map +1 -1
  59. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  60. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  61. package/dist/server/bootstrap/index.js +28 -7
  62. package/dist/server/bootstrap/index.js.map +1 -1
  63. package/dist/server/bootstrap/index.mjs +28 -7
  64. package/dist/server/bootstrap/index.mjs.map +1 -1
  65. package/dist/server/config.js +16 -0
  66. package/dist/server/config.js.map +1 -1
  67. package/dist/server/config.mjs +16 -0
  68. package/dist/server/config.mjs.map +1 -1
  69. package/dist/server/controllers/auth.js +204 -3
  70. package/dist/server/controllers/auth.js.map +1 -1
  71. package/dist/server/controllers/auth.mjs +204 -3
  72. package/dist/server/controllers/auth.mjs.map +1 -1
  73. package/dist/server/controllers/content-manager-user.js +3 -3
  74. package/dist/server/controllers/content-manager-user.js.map +1 -1
  75. package/dist/server/controllers/content-manager-user.mjs +3 -3
  76. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  77. package/dist/server/controllers/validation/user.js +6 -1
  78. package/dist/server/controllers/validation/user.js.map +1 -1
  79. package/dist/server/controllers/validation/user.mjs +6 -1
  80. package/dist/server/controllers/validation/user.mjs.map +1 -1
  81. package/dist/server/graphql/resolvers-configs.js.map +1 -1
  82. package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
  83. package/dist/server/middlewares/rateLimit.js.map +1 -1
  84. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  85. package/dist/server/routes/content-api/auth.js +155 -91
  86. package/dist/server/routes/content-api/auth.js.map +1 -1
  87. package/dist/server/routes/content-api/auth.mjs +155 -91
  88. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  89. package/dist/server/routes/content-api/index.js +11 -9
  90. package/dist/server/routes/content-api/index.js.map +1 -1
  91. package/dist/server/routes/content-api/index.mjs +11 -9
  92. package/dist/server/routes/content-api/index.mjs.map +1 -1
  93. package/dist/server/routes/content-api/permissions.js +14 -7
  94. package/dist/server/routes/content-api/permissions.js.map +1 -1
  95. package/dist/server/routes/content-api/permissions.mjs +14 -7
  96. package/dist/server/routes/content-api/permissions.mjs.map +1 -1
  97. package/dist/server/routes/content-api/role.js +61 -27
  98. package/dist/server/routes/content-api/role.js.map +1 -1
  99. package/dist/server/routes/content-api/role.mjs +61 -27
  100. package/dist/server/routes/content-api/role.mjs.map +1 -1
  101. package/dist/server/routes/content-api/user.js +119 -57
  102. package/dist/server/routes/content-api/user.js.map +1 -1
  103. package/dist/server/routes/content-api/user.mjs +119 -57
  104. package/dist/server/routes/content-api/user.mjs.map +1 -1
  105. package/dist/server/routes/content-api/validation.js +217 -0
  106. package/dist/server/routes/content-api/validation.js.map +1 -0
  107. package/dist/server/routes/content-api/validation.mjs +215 -0
  108. package/dist/server/routes/content-api/validation.mjs.map +1 -0
  109. package/dist/server/services/constants.js +19 -0
  110. package/dist/server/services/constants.js.map +1 -0
  111. package/dist/server/services/constants.mjs +17 -0
  112. package/dist/server/services/constants.mjs.map +1 -0
  113. package/dist/server/services/jwt.js +45 -2
  114. package/dist/server/services/jwt.js.map +1 -1
  115. package/dist/server/services/jwt.mjs +45 -2
  116. package/dist/server/services/jwt.mjs.map +1 -1
  117. package/dist/server/services/providers-registry.js.map +1 -1
  118. package/dist/server/services/providers-registry.mjs.map +1 -1
  119. package/dist/server/services/role.js.map +1 -1
  120. package/dist/server/services/role.mjs.map +1 -1
  121. package/dist/server/services/user.js +29 -20
  122. package/dist/server/services/user.js.map +1 -1
  123. package/dist/server/services/user.mjs +29 -20
  124. package/dist/server/services/user.mjs.map +1 -1
  125. package/dist/server/services/users-permissions.js +4 -3
  126. package/dist/server/services/users-permissions.js.map +1 -1
  127. package/dist/server/services/users-permissions.mjs +4 -3
  128. package/dist/server/services/users-permissions.mjs.map +1 -1
  129. package/package.json +9 -8
  130. package/server/bootstrap/index.js +31 -0
  131. package/server/config.js +22 -0
  132. package/server/controllers/auth.js +248 -8
  133. package/server/controllers/content-manager-user.js +3 -4
  134. package/server/controllers/validation/user.js +12 -1
  135. package/server/routes/content-api/auth.js +119 -71
  136. package/server/routes/content-api/index.js +11 -4
  137. package/server/routes/content-api/permissions.js +14 -7
  138. package/server/routes/content-api/role.js +57 -27
  139. package/server/routes/content-api/user.js +108 -51
  140. package/server/routes/content-api/validation.js +250 -0
  141. package/server/services/constants.js +9 -0
  142. package/server/services/jwt.js +50 -2
  143. package/server/services/user.js +11 -0
  144. package/server/services/users-permissions.js +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"content-manager-user.mjs","sources":["../../../server/controllers/content-manager-user.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { contentTypes: contentTypesUtils } = require('@strapi/utils');\nconst { ApplicationError, ValidationError, NotFoundError, ForbiddenError } =\n require('@strapi/utils').errors;\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { UPDATED_BY_ATTRIBUTE, CREATED_BY_ATTRIBUTE } = contentTypesUtils.constants;\n\nconst userModel = 'plugin::users-permissions.user';\nconst ACTIONS = {\n read: 'plugin::content-manager.explorer.read',\n create: 'plugin::content-manager.explorer.create',\n edit: 'plugin::content-manager.explorer.update',\n delete: 'plugin::content-manager.explorer.delete',\n};\n\nconst findEntityAndCheckPermissions = async (ability, action, model, id) => {\n const doc = await strapi.service('plugin::content-manager.document-manager').findOne(id, model, {\n populate: [`${CREATED_BY_ATTRIBUTE}.roles`],\n });\n\n if (_.isNil(doc)) {\n throw new NotFoundError();\n }\n\n const pm = strapi\n .service('admin::permission')\n .createPermissionsManager({ ability, action, model });\n\n if (pm.ability.cannot(pm.action, pm.toSubject(doc))) {\n throw new ForbiddenError();\n }\n\n const docWithoutCreatorRoles = _.omit(doc, `${CREATED_BY_ATTRIBUTE}.roles`);\n\n return { pm, doc: docWithoutCreatorRoles };\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\n const { body } = ctx.request;\n const { user: admin, userAbility } = ctx.state;\n\n const { email, username } = body;\n\n const pm = strapi.service('admin::permission').createPermissionsManager({\n ability: userAbility,\n action: ACTIONS.create,\n model: userModel,\n });\n\n if (!pm.isAllowed) {\n return ctx.forbidden();\n }\n\n const sanitizedBody = await pm.pickPermittedFieldsOf(body, { subject: userModel });\n\n const advanced = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n await validateCreateUserBody(ctx.request.body);\n\n const userWithSameUsername = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { username } });\n\n if (userWithSameUsername) {\n throw new ApplicationError('Username already taken');\n }\n\n if (advanced.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail) {\n throw new ApplicationError('Email already taken');\n }\n }\n\n const user = {\n ...sanitizedBody,\n provider: 'local',\n [CREATED_BY_ATTRIBUTE]: admin.id,\n [UPDATED_BY_ATTRIBUTE]: admin.id,\n };\n\n user.email = _.toLower(user.email);\n\n try {\n const data = await strapi\n .service('plugin::content-manager.document-manager')\n .create(userModel, { data: user });\n\n const sanitizedData = await pm.sanitizeOutput(data, { action: ACTIONS.read });\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n /**\n * Update a/an user record.\n * @return {Object}\n */\n\n async update(ctx) {\n const { id: documentId } = ctx.params;\n const { body } = ctx.request;\n const { user: admin, userAbility } = ctx.state;\n\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { email, username, password } = body;\n\n const { pm, doc } = await findEntityAndCheckPermissions(\n userAbility,\n ACTIONS.edit,\n userModel,\n documentId\n );\n\n const user = doc;\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (_.has(body, 'password') && !password && user.provider === 'local') {\n throw new ValidationError('password.notNull');\n }\n\n if (_.has(body, 'username')) {\n const userWithSameUsername = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { username } });\n\n if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(user.id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: _.toLower(email) } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(user.id)) {\n throw new ApplicationError('Email already taken');\n }\n\n body.email = _.toLower(body.email);\n }\n\n const sanitizedData = await pm.pickPermittedFieldsOf(body, { subject: pm.toSubject(user) });\n const updateData = _.omit({ ...sanitizedData, updatedBy: admin.id }, 'createdBy');\n\n const data = await strapi\n .service('plugin::content-manager.document-manager')\n .update(documentId, userModel, {\n data: updateData,\n });\n\n ctx.body = await pm.sanitizeOutput(data, { action: ACTIONS.read });\n },\n};\n"],"names":["_","require$$0","contentTypes","contentTypesUtils","require$$1","ApplicationError","ValidationError","NotFoundError","ForbiddenError","errors","validateCreateUserBody","validateUpdateUserBody","require$$2","UPDATED_BY_ATTRIBUTE","CREATED_BY_ATTRIBUTE","constants","userModel","ACTIONS","read","create","edit","delete","findEntityAndCheckPermissions","ability","action","model","id","doc","strapi","service","findOne","populate","isNil","pm","createPermissionsManager","cannot","toSubject","docWithoutCreatorRoles","omit","contentManagerUser","ctx","body","request","user","admin","userAbility","state","email","username","isAllowed","forbidden","sanitizedBody","pickPermittedFieldsOf","subject","advanced","store","type","name","key","get","userWithSameUsername","db","query","where","unique_email","userWithSameEmail","toLowerCase","provider","toLower","data","sanitizedData","sanitizeOutput","created","error","message","update","documentId","params","advancedConfigs","password","has","toString","updateData","updatedBy"],"mappings":"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"}
1
+ {"version":3,"file":"content-manager-user.mjs","sources":["../../../server/controllers/content-manager-user.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { contentTypes: contentTypesUtils } = require('@strapi/utils');\nconst { ApplicationError, NotFoundError, ForbiddenError } = require('@strapi/utils').errors;\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { UPDATED_BY_ATTRIBUTE, CREATED_BY_ATTRIBUTE } = contentTypesUtils.constants;\n\nconst userModel = 'plugin::users-permissions.user';\nconst ACTIONS = {\n read: 'plugin::content-manager.explorer.read',\n create: 'plugin::content-manager.explorer.create',\n edit: 'plugin::content-manager.explorer.update',\n delete: 'plugin::content-manager.explorer.delete',\n};\n\nconst findEntityAndCheckPermissions = async (ability, action, model, id) => {\n const doc = await strapi.service('plugin::content-manager.document-manager').findOne(id, model, {\n populate: [`${CREATED_BY_ATTRIBUTE}.roles`],\n });\n\n if (_.isNil(doc)) {\n throw new NotFoundError();\n }\n\n const pm = strapi\n .service('admin::permission')\n .createPermissionsManager({ ability, action, model });\n\n if (pm.ability.cannot(pm.action, pm.toSubject(doc))) {\n throw new ForbiddenError();\n }\n\n const docWithoutCreatorRoles = _.omit(doc, `${CREATED_BY_ATTRIBUTE}.roles`);\n\n return { pm, doc: docWithoutCreatorRoles };\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\n const { body } = ctx.request;\n const { user: admin, userAbility } = ctx.state;\n\n const { email, username } = body;\n\n const pm = strapi.service('admin::permission').createPermissionsManager({\n ability: userAbility,\n action: ACTIONS.create,\n model: userModel,\n });\n\n if (!pm.isAllowed) {\n return ctx.forbidden();\n }\n\n const sanitizedBody = await pm.pickPermittedFieldsOf(body, { subject: userModel });\n\n const advanced = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n await validateCreateUserBody(ctx.request.body);\n\n const userWithSameUsername = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { username } });\n\n if (userWithSameUsername) {\n throw new ApplicationError('Username already taken');\n }\n\n if (advanced.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail) {\n throw new ApplicationError('Email already taken');\n }\n }\n\n const user = {\n ...sanitizedBody,\n provider: 'local',\n [CREATED_BY_ATTRIBUTE]: admin.id,\n [UPDATED_BY_ATTRIBUTE]: admin.id,\n };\n\n user.email = _.toLower(user.email);\n\n try {\n const data = await strapi\n .service('plugin::content-manager.document-manager')\n .create(userModel, { data: user });\n\n const sanitizedData = await pm.sanitizeOutput(data, { action: ACTIONS.read });\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n /**\n * Update a/an user record.\n * @return {Object}\n */\n\n async update(ctx) {\n const { id: documentId } = ctx.params;\n const { body } = ctx.request;\n const { user: admin, userAbility } = ctx.state;\n\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { email, username, password } = body;\n\n const { pm, doc } = await findEntityAndCheckPermissions(\n userAbility,\n ACTIONS.edit,\n userModel,\n documentId\n );\n\n const user = doc;\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (_.has(body, 'password') && (password == null || password === '')) {\n delete body.password;\n }\n\n if (_.has(body, 'username')) {\n const userWithSameUsername = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { username } });\n\n if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(user.id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: _.toLower(email) } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(user.id)) {\n throw new ApplicationError('Email already taken');\n }\n\n body.email = _.toLower(body.email);\n }\n\n const sanitizedData = await pm.pickPermittedFieldsOf(body, { subject: pm.toSubject(user) });\n const updateData = _.omit({ ...sanitizedData, updatedBy: admin.id }, 'createdBy');\n\n const data = await strapi\n .service('plugin::content-manager.document-manager')\n .update(documentId, userModel, {\n data: updateData,\n });\n\n ctx.body = await pm.sanitizeOutput(data, { action: ACTIONS.read });\n },\n};\n"],"names":["_","require$$0","contentTypes","contentTypesUtils","require$$1","ApplicationError","NotFoundError","ForbiddenError","errors","validateCreateUserBody","validateUpdateUserBody","require$$2","UPDATED_BY_ATTRIBUTE","CREATED_BY_ATTRIBUTE","constants","userModel","ACTIONS","read","create","edit","delete","findEntityAndCheckPermissions","ability","action","model","id","doc","strapi","service","findOne","populate","isNil","pm","createPermissionsManager","cannot","toSubject","docWithoutCreatorRoles","omit","contentManagerUser","ctx","body","request","user","admin","userAbility","state","email","username","isAllowed","forbidden","sanitizedBody","pickPermittedFieldsOf","subject","advanced","store","type","name","key","get","userWithSameUsername","db","query","where","unique_email","userWithSameEmail","toLowerCase","provider","toLower","data","sanitizedData","sanitizeOutput","created","error","message","update","documentId","params","advancedConfigs","password","has","toString","updateData","updatedBy"],"mappings":"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"}
@@ -24,7 +24,12 @@ function requireUser() {
24
24
  const updateUserBodySchema = yup.object().shape({
25
25
  email: yup.string().email().min(1),
26
26
  username: yup.string().min(1),
27
- password: yup.string().min(1),
27
+ password: yup.mixed().test('password-validation', 'Password must be at least 1 character', function validatePassword(value) {
28
+ if (value == null || value === '') {
29
+ return true;
30
+ }
31
+ return typeof value === 'string' && value.length >= 1;
32
+ }),
28
33
  role: yup.lazy((value)=>typeof value === 'object' ? yup.object().shape({
29
34
  connect: yup.array().of(yup.object().shape({
30
35
  id: yup.strapiID().required()
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sources":["../../../../server/controllers/validation/user.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst deleteRoleSchema = yup.object().shape({\n role: yup.strapiID().required(),\n});\n\nconst createUserBodySchema = yup.object().shape({\n email: yup.string().email().required(),\n username: yup.string().min(1).required(),\n password: yup.string().min(1).required(),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup\n .object()\n .shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .min(1, 'Users must have a role')\n .required(),\n })\n .required()\n : yup.strapiID().required()\n ),\n});\n\nconst updateUserBodySchema = yup.object().shape({\n email: yup.string().email().min(1),\n username: yup.string().min(1),\n password: yup.string().min(1),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .required(),\n disconnect: yup\n .array()\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {\n if (value.connect.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n })\n .required(),\n })\n : yup.strapiID()\n ),\n});\n\nmodule.exports = {\n validateCreateUserBody: validateYupSchema(createUserBodySchema),\n validateUpdateUserBody: validateYupSchema(updateUserBodySchema),\n validateDeleteRoleBody: validateYupSchema(deleteRoleSchema),\n};\n"],"names":["yup","validateYupSchema","require$$0","deleteRoleSchema","object","shape","role","strapiID","required","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","id","updateUserBodySchema","disconnect","test","disconnectValue","length","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sources":["../../../../server/controllers/validation/user.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst deleteRoleSchema = yup.object().shape({\n role: yup.strapiID().required(),\n});\n\nconst createUserBodySchema = yup.object().shape({\n email: yup.string().email().required(),\n username: yup.string().min(1).required(),\n password: yup.string().min(1).required(),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup\n .object()\n .shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .min(1, 'Users must have a role')\n .required(),\n })\n .required()\n : yup.strapiID().required()\n ),\n});\n\nconst updateUserBodySchema = yup.object().shape({\n email: yup.string().email().min(1),\n username: yup.string().min(1),\n password: yup\n .mixed()\n .test(\n 'password-validation',\n 'Password must be at least 1 character',\n function validatePassword(value) {\n if (value == null || value === '') {\n return true;\n }\n return typeof value === 'string' && value.length >= 1;\n }\n ),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .required(),\n disconnect: yup\n .array()\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {\n if (value.connect.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n })\n .required(),\n })\n : yup.strapiID()\n ),\n});\n\nmodule.exports = {\n validateCreateUserBody: validateYupSchema(createUserBodySchema),\n validateUpdateUserBody: validateYupSchema(updateUserBodySchema),\n validateDeleteRoleBody: validateYupSchema(deleteRoleSchema),\n};\n"],"names":["yup","validateYupSchema","require$$0","deleteRoleSchema","object","shape","role","strapiID","required","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","id","updateUserBodySchema","mixed","test","validatePassword","length","disconnect","disconnectValue","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
@@ -22,7 +22,12 @@ function requireUser() {
22
22
  const updateUserBodySchema = yup.object().shape({
23
23
  email: yup.string().email().min(1),
24
24
  username: yup.string().min(1),
25
- password: yup.string().min(1),
25
+ password: yup.mixed().test('password-validation', 'Password must be at least 1 character', function validatePassword(value) {
26
+ if (value == null || value === '') {
27
+ return true;
28
+ }
29
+ return typeof value === 'string' && value.length >= 1;
30
+ }),
26
31
  role: yup.lazy((value)=>typeof value === 'object' ? yup.object().shape({
27
32
  connect: yup.array().of(yup.object().shape({
28
33
  id: yup.strapiID().required()
@@ -1 +1 @@
1
- {"version":3,"file":"user.mjs","sources":["../../../../server/controllers/validation/user.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst deleteRoleSchema = yup.object().shape({\n role: yup.strapiID().required(),\n});\n\nconst createUserBodySchema = yup.object().shape({\n email: yup.string().email().required(),\n username: yup.string().min(1).required(),\n password: yup.string().min(1).required(),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup\n .object()\n .shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .min(1, 'Users must have a role')\n .required(),\n })\n .required()\n : yup.strapiID().required()\n ),\n});\n\nconst updateUserBodySchema = yup.object().shape({\n email: yup.string().email().min(1),\n username: yup.string().min(1),\n password: yup.string().min(1),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .required(),\n disconnect: yup\n .array()\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {\n if (value.connect.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n })\n .required(),\n })\n : yup.strapiID()\n ),\n});\n\nmodule.exports = {\n validateCreateUserBody: validateYupSchema(createUserBodySchema),\n validateUpdateUserBody: validateYupSchema(updateUserBodySchema),\n validateDeleteRoleBody: validateYupSchema(deleteRoleSchema),\n};\n"],"names":["yup","validateYupSchema","require$$0","deleteRoleSchema","object","shape","role","strapiID","required","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","id","updateUserBodySchema","disconnect","test","disconnectValue","length","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
1
+ {"version":3,"file":"user.mjs","sources":["../../../../server/controllers/validation/user.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst deleteRoleSchema = yup.object().shape({\n role: yup.strapiID().required(),\n});\n\nconst createUserBodySchema = yup.object().shape({\n email: yup.string().email().required(),\n username: yup.string().min(1).required(),\n password: yup.string().min(1).required(),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup\n .object()\n .shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .min(1, 'Users must have a role')\n .required(),\n })\n .required()\n : yup.strapiID().required()\n ),\n});\n\nconst updateUserBodySchema = yup.object().shape({\n email: yup.string().email().min(1),\n username: yup.string().min(1),\n password: yup\n .mixed()\n .test(\n 'password-validation',\n 'Password must be at least 1 character',\n function validatePassword(value) {\n if (value == null || value === '') {\n return true;\n }\n return typeof value === 'string' && value.length >= 1;\n }\n ),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .required(),\n disconnect: yup\n .array()\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {\n if (value.connect.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n })\n .required(),\n })\n : yup.strapiID()\n ),\n});\n\nmodule.exports = {\n validateCreateUserBody: validateYupSchema(createUserBodySchema),\n validateUpdateUserBody: validateYupSchema(updateUserBodySchema),\n validateDeleteRoleBody: validateYupSchema(deleteRoleSchema),\n};\n"],"names":["yup","validateYupSchema","require$$0","deleteRoleSchema","object","shape","role","strapiID","required","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","id","updateUserBodySchema","mixed","test","validatePassword","length","disconnect","disconnectValue","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers-configs.js","sources":["../../../server/graphql/resolvers-configs.js"],"sourcesContent":["'use strict';\n\nconst userUID = 'plugin::users-permissions.user';\nconst roleUID = 'plugin::users-permissions.role';\n\nmodule.exports = ({ strapi }) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n const user = strapi.getModel(userUID);\n const role = strapi.getModel(roleUID);\n\n const createRole = naming.getCreateMutationTypeName(role);\n const updateRole = naming.getUpdateMutationTypeName(role);\n const deleteRole = naming.getDeleteMutationTypeName(role);\n const createUser = naming.getCreateMutationTypeName(user);\n const updateUser = naming.getUpdateMutationTypeName(user);\n const deleteUser = naming.getDeleteMutationTypeName(user);\n\n return {\n // Disabled auth for some operations\n 'Mutation.login': { auth: false },\n 'Mutation.register': { auth: false },\n 'Mutation.forgotPassword': { auth: false },\n 'Mutation.resetPassword': { auth: false },\n 'Mutation.emailConfirmation': { auth: false },\n 'Mutation.changePassword': {\n auth: {\n scope: 'plugin::users-permissions.auth.changePassword',\n },\n },\n\n // Scoped auth for replaced CRUD operations\n // Role\n [`Mutation.${createRole}`]: { auth: { scope: [`${roleUID}.createRole`] } },\n [`Mutation.${updateRole}`]: { auth: { scope: [`${roleUID}.updateRole`] } },\n [`Mutation.${deleteRole}`]: { auth: { scope: [`${roleUID}.deleteRole`] } },\n // User\n [`Mutation.${createUser}`]: { auth: { scope: [`${userUID}.create`] } },\n [`Mutation.${updateUser}`]: { auth: { scope: [`${userUID}.update`] } },\n [`Mutation.${deleteUser}`]: { auth: { scope: [`${userUID}.destroy`] } },\n };\n};\n"],"names":["userUID","roleUID","resolversConfigs","strapi","naming","plugin","service","user","getModel","role","createRole","getCreateMutationTypeName","updateRole","getUpdateMutationTypeName","deleteRole","getDeleteMutationTypeName","createUser","updateUser","deleteUser","auth","scope"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,OAAU,GAAA,gCAAA;AAChB,IAAA,MAAMC,OAAU,GAAA,gCAAA;IAEhBC,gBAAiB,GAAA,CAAC,EAAEC,MAAM,EAAE,GAAA;QAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;QAEpD,MAAMC,IAAAA,GAAOJ,MAAOK,CAAAA,QAAQ,CAACR,OAAAA,CAAAA;QAC7B,MAAMS,IAAAA,GAAON,MAAOK,CAAAA,QAAQ,CAACP,OAAAA,CAAAA;QAE7B,MAAMS,UAAAA,GAAaN,MAAOO,CAAAA,yBAAyB,CAACF,IAAAA,CAAAA;QACpD,MAAMG,UAAAA,GAAaR,MAAOS,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMK,UAAAA,GAAaV,MAAOW,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMO,UAAAA,GAAaZ,MAAOO,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMU,UAAAA,GAAab,MAAOS,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMW,UAAAA,GAAad,MAAOW,CAAAA,yBAAyB,CAACR,IAAAA,CAAAA;QAEpD,OAAO;;YAEL,gBAAkB,EAAA;gBAAEY,IAAM,EAAA;AAAO,aAAA;YACjC,mBAAqB,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACpC,yBAA2B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC1C,wBAA0B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACzC,4BAA8B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC7C,yBAA2B,EAAA;gBACzBA,IAAM,EAAA;oBACJC,KAAO,EAAA;AACR;AACF,aAAA;;;AAID,YAAA,CAAC,CAAC,SAAS,EAAEV,UAAW,CAAA,CAAC,GAAG;gBAAES,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEnB,OAAQ,CAAA,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEW,UAAW,CAAA,CAAC,GAAG;gBAAEO,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEnB,OAAQ,CAAA,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEa,UAAW,CAAA,CAAC,GAAG;gBAAEK,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEnB,OAAQ,CAAA,WAAW;AAAE;AAAA;AAAI,aAAA;;AAE1E,YAAA,CAAC,CAAC,SAAS,EAAEe,UAAW,CAAA,CAAC,GAAG;gBAAEG,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEpB,OAAQ,CAAA,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEiB,UAAW,CAAA,CAAC,GAAG;gBAAEE,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEpB,OAAQ,CAAA,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEkB,UAAW,CAAA,CAAC,GAAG;gBAAEC,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEpB,OAAQ,CAAA,QAAQ;AAAE;AAAA;AAAI;AAC3E,SAAA;AACA,KAAA;;;;;;"}
1
+ {"version":3,"file":"resolvers-configs.js","sources":["../../../server/graphql/resolvers-configs.js"],"sourcesContent":["'use strict';\n\nconst userUID = 'plugin::users-permissions.user';\nconst roleUID = 'plugin::users-permissions.role';\n\nmodule.exports = ({ strapi }) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n const user = strapi.getModel(userUID);\n const role = strapi.getModel(roleUID);\n\n const createRole = naming.getCreateMutationTypeName(role);\n const updateRole = naming.getUpdateMutationTypeName(role);\n const deleteRole = naming.getDeleteMutationTypeName(role);\n const createUser = naming.getCreateMutationTypeName(user);\n const updateUser = naming.getUpdateMutationTypeName(user);\n const deleteUser = naming.getDeleteMutationTypeName(user);\n\n return {\n // Disabled auth for some operations\n 'Mutation.login': { auth: false },\n 'Mutation.register': { auth: false },\n 'Mutation.forgotPassword': { auth: false },\n 'Mutation.resetPassword': { auth: false },\n 'Mutation.emailConfirmation': { auth: false },\n 'Mutation.changePassword': {\n auth: {\n scope: 'plugin::users-permissions.auth.changePassword',\n },\n },\n\n // Scoped auth for replaced CRUD operations\n // Role\n [`Mutation.${createRole}`]: { auth: { scope: [`${roleUID}.createRole`] } },\n [`Mutation.${updateRole}`]: { auth: { scope: [`${roleUID}.updateRole`] } },\n [`Mutation.${deleteRole}`]: { auth: { scope: [`${roleUID}.deleteRole`] } },\n // User\n [`Mutation.${createUser}`]: { auth: { scope: [`${userUID}.create`] } },\n [`Mutation.${updateUser}`]: { auth: { scope: [`${userUID}.update`] } },\n [`Mutation.${deleteUser}`]: { auth: { scope: [`${userUID}.destroy`] } },\n };\n};\n"],"names":["userUID","roleUID","resolversConfigs","strapi","naming","plugin","service","user","getModel","role","createRole","getCreateMutationTypeName","updateRole","getUpdateMutationTypeName","deleteRole","getDeleteMutationTypeName","createUser","updateUser","deleteUser","auth","scope"],"mappings":";;;;;;;AAEA,IAAA,MAAMA,OAAU,GAAA,gCAAA;AAChB,IAAA,MAAMC,OAAU,GAAA,gCAAA;IAEhBC,gBAAiB,GAAA,CAAC,EAAEC,MAAM,EAAE,GAAA;QAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;QAEpD,MAAMC,IAAAA,GAAOJ,MAAOK,CAAAA,QAAQ,CAACR,OAAAA,CAAAA;QAC7B,MAAMS,IAAAA,GAAON,MAAOK,CAAAA,QAAQ,CAACP,OAAAA,CAAAA;QAE7B,MAAMS,UAAAA,GAAaN,MAAOO,CAAAA,yBAAyB,CAACF,IAAAA,CAAAA;QACpD,MAAMG,UAAAA,GAAaR,MAAOS,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMK,UAAAA,GAAaV,MAAOW,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMO,UAAAA,GAAaZ,MAAOO,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMU,UAAAA,GAAab,MAAOS,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMW,UAAAA,GAAad,MAAOW,CAAAA,yBAAyB,CAACR,IAAAA,CAAAA;QAEpD,OAAO;;YAEL,gBAAkB,EAAA;gBAAEY,IAAM,EAAA;AAAO,aAAA;YACjC,mBAAqB,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACpC,yBAA2B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC1C,wBAA0B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACzC,4BAA8B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC7C,yBAA2B,EAAA;gBACzBA,IAAM,EAAA;oBACJC,KAAO,EAAA;AACR;AACF,aAAA;;;AAID,YAAA,CAAC,CAAC,SAAS,EAAEV,UAAAA,CAAAA,CAAY,GAAG;gBAAES,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGnB,EAAAA,OAAAA,CAAQ,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEW,UAAAA,CAAAA,CAAY,GAAG;gBAAEO,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGnB,EAAAA,OAAAA,CAAQ,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEa,UAAAA,CAAAA,CAAY,GAAG;gBAAEK,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGnB,EAAAA,OAAAA,CAAQ,WAAW;AAAE;AAAA;AAAI,aAAA;;AAE1E,YAAA,CAAC,CAAC,SAAS,EAAEe,UAAAA,CAAAA,CAAY,GAAG;gBAAEG,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGpB,EAAAA,OAAAA,CAAQ,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEiB,UAAAA,CAAAA,CAAY,GAAG;gBAAEE,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGpB,EAAAA,OAAAA,CAAQ,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEkB,UAAAA,CAAAA,CAAY,GAAG;gBAAEC,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGpB,EAAAA,OAAAA,CAAQ,QAAQ;AAAE;AAAA;AAAI;AAC3E,SAAA;AACA,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers-configs.mjs","sources":["../../../server/graphql/resolvers-configs.js"],"sourcesContent":["'use strict';\n\nconst userUID = 'plugin::users-permissions.user';\nconst roleUID = 'plugin::users-permissions.role';\n\nmodule.exports = ({ strapi }) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n const user = strapi.getModel(userUID);\n const role = strapi.getModel(roleUID);\n\n const createRole = naming.getCreateMutationTypeName(role);\n const updateRole = naming.getUpdateMutationTypeName(role);\n const deleteRole = naming.getDeleteMutationTypeName(role);\n const createUser = naming.getCreateMutationTypeName(user);\n const updateUser = naming.getUpdateMutationTypeName(user);\n const deleteUser = naming.getDeleteMutationTypeName(user);\n\n return {\n // Disabled auth for some operations\n 'Mutation.login': { auth: false },\n 'Mutation.register': { auth: false },\n 'Mutation.forgotPassword': { auth: false },\n 'Mutation.resetPassword': { auth: false },\n 'Mutation.emailConfirmation': { auth: false },\n 'Mutation.changePassword': {\n auth: {\n scope: 'plugin::users-permissions.auth.changePassword',\n },\n },\n\n // Scoped auth for replaced CRUD operations\n // Role\n [`Mutation.${createRole}`]: { auth: { scope: [`${roleUID}.createRole`] } },\n [`Mutation.${updateRole}`]: { auth: { scope: [`${roleUID}.updateRole`] } },\n [`Mutation.${deleteRole}`]: { auth: { scope: [`${roleUID}.deleteRole`] } },\n // User\n [`Mutation.${createUser}`]: { auth: { scope: [`${userUID}.create`] } },\n [`Mutation.${updateUser}`]: { auth: { scope: [`${userUID}.update`] } },\n [`Mutation.${deleteUser}`]: { auth: { scope: [`${userUID}.destroy`] } },\n };\n};\n"],"names":["userUID","roleUID","resolversConfigs","strapi","naming","plugin","service","user","getModel","role","createRole","getCreateMutationTypeName","updateRole","getUpdateMutationTypeName","deleteRole","getDeleteMutationTypeName","createUser","updateUser","deleteUser","auth","scope"],"mappings":";;;;;AAEA,IAAA,MAAMA,OAAU,GAAA,gCAAA;AAChB,IAAA,MAAMC,OAAU,GAAA,gCAAA;IAEhBC,gBAAiB,GAAA,CAAC,EAAEC,MAAM,EAAE,GAAA;QAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;QAEpD,MAAMC,IAAAA,GAAOJ,MAAOK,CAAAA,QAAQ,CAACR,OAAAA,CAAAA;QAC7B,MAAMS,IAAAA,GAAON,MAAOK,CAAAA,QAAQ,CAACP,OAAAA,CAAAA;QAE7B,MAAMS,UAAAA,GAAaN,MAAOO,CAAAA,yBAAyB,CAACF,IAAAA,CAAAA;QACpD,MAAMG,UAAAA,GAAaR,MAAOS,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMK,UAAAA,GAAaV,MAAOW,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMO,UAAAA,GAAaZ,MAAOO,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMU,UAAAA,GAAab,MAAOS,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMW,UAAAA,GAAad,MAAOW,CAAAA,yBAAyB,CAACR,IAAAA,CAAAA;QAEpD,OAAO;;YAEL,gBAAkB,EAAA;gBAAEY,IAAM,EAAA;AAAO,aAAA;YACjC,mBAAqB,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACpC,yBAA2B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC1C,wBAA0B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACzC,4BAA8B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC7C,yBAA2B,EAAA;gBACzBA,IAAM,EAAA;oBACJC,KAAO,EAAA;AACR;AACF,aAAA;;;AAID,YAAA,CAAC,CAAC,SAAS,EAAEV,UAAW,CAAA,CAAC,GAAG;gBAAES,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEnB,OAAQ,CAAA,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEW,UAAW,CAAA,CAAC,GAAG;gBAAEO,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEnB,OAAQ,CAAA,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEa,UAAW,CAAA,CAAC,GAAG;gBAAEK,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEnB,OAAQ,CAAA,WAAW;AAAE;AAAA;AAAI,aAAA;;AAE1E,YAAA,CAAC,CAAC,SAAS,EAAEe,UAAW,CAAA,CAAC,GAAG;gBAAEG,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEpB,OAAQ,CAAA,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEiB,UAAW,CAAA,CAAC,GAAG;gBAAEE,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEpB,OAAQ,CAAA,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEkB,UAAW,CAAA,CAAC,GAAG;gBAAEC,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAC,EAAEpB,OAAQ,CAAA,QAAQ;AAAE;AAAA;AAAI;AAC3E,SAAA;AACA,KAAA;;;;;;"}
1
+ {"version":3,"file":"resolvers-configs.mjs","sources":["../../../server/graphql/resolvers-configs.js"],"sourcesContent":["'use strict';\n\nconst userUID = 'plugin::users-permissions.user';\nconst roleUID = 'plugin::users-permissions.role';\n\nmodule.exports = ({ strapi }) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n const user = strapi.getModel(userUID);\n const role = strapi.getModel(roleUID);\n\n const createRole = naming.getCreateMutationTypeName(role);\n const updateRole = naming.getUpdateMutationTypeName(role);\n const deleteRole = naming.getDeleteMutationTypeName(role);\n const createUser = naming.getCreateMutationTypeName(user);\n const updateUser = naming.getUpdateMutationTypeName(user);\n const deleteUser = naming.getDeleteMutationTypeName(user);\n\n return {\n // Disabled auth for some operations\n 'Mutation.login': { auth: false },\n 'Mutation.register': { auth: false },\n 'Mutation.forgotPassword': { auth: false },\n 'Mutation.resetPassword': { auth: false },\n 'Mutation.emailConfirmation': { auth: false },\n 'Mutation.changePassword': {\n auth: {\n scope: 'plugin::users-permissions.auth.changePassword',\n },\n },\n\n // Scoped auth for replaced CRUD operations\n // Role\n [`Mutation.${createRole}`]: { auth: { scope: [`${roleUID}.createRole`] } },\n [`Mutation.${updateRole}`]: { auth: { scope: [`${roleUID}.updateRole`] } },\n [`Mutation.${deleteRole}`]: { auth: { scope: [`${roleUID}.deleteRole`] } },\n // User\n [`Mutation.${createUser}`]: { auth: { scope: [`${userUID}.create`] } },\n [`Mutation.${updateUser}`]: { auth: { scope: [`${userUID}.update`] } },\n [`Mutation.${deleteUser}`]: { auth: { scope: [`${userUID}.destroy`] } },\n };\n};\n"],"names":["userUID","roleUID","resolversConfigs","strapi","naming","plugin","service","user","getModel","role","createRole","getCreateMutationTypeName","updateRole","getUpdateMutationTypeName","deleteRole","getDeleteMutationTypeName","createUser","updateUser","deleteUser","auth","scope"],"mappings":";;;;;AAEA,IAAA,MAAMA,OAAU,GAAA,gCAAA;AAChB,IAAA,MAAMC,OAAU,GAAA,gCAAA;IAEhBC,gBAAiB,GAAA,CAAC,EAAEC,MAAM,EAAE,GAAA;QAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;QAEpD,MAAMC,IAAAA,GAAOJ,MAAOK,CAAAA,QAAQ,CAACR,OAAAA,CAAAA;QAC7B,MAAMS,IAAAA,GAAON,MAAOK,CAAAA,QAAQ,CAACP,OAAAA,CAAAA;QAE7B,MAAMS,UAAAA,GAAaN,MAAOO,CAAAA,yBAAyB,CAACF,IAAAA,CAAAA;QACpD,MAAMG,UAAAA,GAAaR,MAAOS,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMK,UAAAA,GAAaV,MAAOW,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMO,UAAAA,GAAaZ,MAAOO,CAAAA,yBAAyB,CAACJ,IAAAA,CAAAA;QACpD,MAAMU,UAAAA,GAAab,MAAOS,CAAAA,yBAAyB,CAACN,IAAAA,CAAAA;QACpD,MAAMW,UAAAA,GAAad,MAAOW,CAAAA,yBAAyB,CAACR,IAAAA,CAAAA;QAEpD,OAAO;;YAEL,gBAAkB,EAAA;gBAAEY,IAAM,EAAA;AAAO,aAAA;YACjC,mBAAqB,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACpC,yBAA2B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC1C,wBAA0B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YACzC,4BAA8B,EAAA;gBAAEA,IAAM,EAAA;AAAO,aAAA;YAC7C,yBAA2B,EAAA;gBACzBA,IAAM,EAAA;oBACJC,KAAO,EAAA;AACR;AACF,aAAA;;;AAID,YAAA,CAAC,CAAC,SAAS,EAAEV,UAAAA,CAAAA,CAAY,GAAG;gBAAES,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGnB,EAAAA,OAAAA,CAAQ,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEW,UAAAA,CAAAA,CAAY,GAAG;gBAAEO,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGnB,EAAAA,OAAAA,CAAQ,WAAW;AAAE;AAAA;AAAI,aAAA;AAC1E,YAAA,CAAC,CAAC,SAAS,EAAEa,UAAAA,CAAAA,CAAY,GAAG;gBAAEK,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGnB,EAAAA,OAAAA,CAAQ,WAAW;AAAE;AAAA;AAAI,aAAA;;AAE1E,YAAA,CAAC,CAAC,SAAS,EAAEe,UAAAA,CAAAA,CAAY,GAAG;gBAAEG,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGpB,EAAAA,OAAAA,CAAQ,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEiB,UAAAA,CAAAA,CAAY,GAAG;gBAAEE,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGpB,EAAAA,OAAAA,CAAQ,OAAO;AAAE;AAAA;AAAI,aAAA;AACtE,YAAA,CAAC,CAAC,SAAS,EAAEkB,UAAAA,CAAAA,CAAY,GAAG;gBAAEC,IAAM,EAAA;oBAAEC,KAAO,EAAA;wBAAC,CAAGpB,EAAAA,OAAAA,CAAQ,QAAQ;AAAE;AAAA;AAAI;AAC3E,SAAA;AACA,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.js","sources":["../../../server/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { isString, has, toLower } = require('lodash/fp');\n\nconst { RateLimitError } = utils.errors;\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has('enabled', rateLimitConfig)) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const userIdentifier = toLower(ctx.request.body.email) || 'unknownIdentifier';\n const requestPath = isString(ctx.request.path)\n ? toLower(path.normalize(ctx.request.path))\n : 'invalidPath';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userIdentifier}:${requestPath}:${ctx.request.ip}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["path","require$$0","utils","require$$1","isString","has","toLower","require$$2","RateLimitError","errors","rateLimit","config","strapi","ctx","next","rateLimitConfig","get","enabled","require$$3","RateLimit","userIdentifier","request","body","email","requestPath","normalize","loadConfig","interval","min","max","prefixKey","ip","handler","middleware"],"mappings":";;;;;;;;;;;;AAEA,IAAA,MAAMA,IAAOC,GAAAA,UAAAA;AACb,IAAA,MAAMC,KAAQC,GAAAA,YAAAA;AACd,IAAA,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,OAAO,EAAE,GAAGC,UAAAA;AAEnC,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGN,MAAMO,MAAM;AAEzBC,IAAAA,SAAAA,GACZ,CAACC,MAAQ,EAAA,EAAEC,MAAM,EAAE,GACnB,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACV,YAAA,IAAIC,eAAkBH,GAAAA,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,qCAAA,CAAA;AAExC,YAAA,IAAI,CAACD,eAAiB,EAAA;gBACpBA,eAAkB,GAAA;oBAChBE,OAAS,EAAA;AACjB,iBAAA;AACK;YAED,IAAI,CAACZ,GAAI,CAAA,SAAA,EAAWU,eAAkB,CAAA,EAAA;AACpCA,gBAAAA,eAAAA,CAAgBE,OAAO,GAAG,IAAA;AAC3B;YAED,IAAIF,eAAAA,CAAgBE,OAAO,KAAK,IAAM,EAAA;gBACpC,MAAMP,SAAAA,GAAYQ,WAA0BC,SAAS;gBAErD,MAAMC,cAAAA,GAAiBd,QAAQO,GAAIQ,CAAAA,OAAO,CAACC,IAAI,CAACC,KAAK,CAAK,IAAA,mBAAA;AAC1D,gBAAA,MAAMC,WAAcpB,GAAAA,QAAAA,CAASS,GAAIQ,CAAAA,OAAO,CAACrB,IAAI,CAAA,GACzCM,OAAQN,CAAAA,IAAAA,CAAKyB,SAAS,CAACZ,GAAAA,CAAIQ,OAAO,CAACrB,IAAI,CACvC,CAAA,GAAA,aAAA;AAEJ,gBAAA,MAAM0B,UAAa,GAAA;oBACjBC,QAAU,EAAA;wBAAEC,GAAK,EAAA;AAAG,qBAAA;oBACpBC,GAAK,EAAA,CAAA;AACLC,oBAAAA,SAAAA,EAAW,CAAC,EAAEV,cAAe,CAAA,CAAC,EAAEI,WAAAA,CAAY,CAAC,EAAEX,GAAIQ,CAAAA,OAAO,CAACU,EAAE,CAAC,CAAC;AAC/DC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACX,qBAAA;AACD,oBAAA,GAAGO,eAAe;AAClB,oBAAA,GAAGJ;AACX,iBAAA;AAEM,gBAAA,OAAOD,SAAUuB,CAAAA,UAAU,CAACP,UAAAA,CAAAA,CAAYb,GAAKC,EAAAA,IAAAA,CAAAA;AAC9C;YAED,OAAOA,IAAAA,EAAAA;AACR,SAAA;;;;;;"}
1
+ {"version":3,"file":"rateLimit.js","sources":["../../../server/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { isString, has, toLower } = require('lodash/fp');\n\nconst { RateLimitError } = utils.errors;\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has('enabled', rateLimitConfig)) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const userIdentifier = toLower(ctx.request.body.email) || 'unknownIdentifier';\n const requestPath = isString(ctx.request.path)\n ? toLower(path.normalize(ctx.request.path))\n : 'invalidPath';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userIdentifier}:${requestPath}:${ctx.request.ip}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["path","require$$0","utils","require$$1","isString","has","toLower","require$$2","RateLimitError","errors","rateLimit","config","strapi","ctx","next","rateLimitConfig","get","enabled","require$$3","RateLimit","userIdentifier","request","body","email","requestPath","normalize","loadConfig","interval","min","max","prefixKey","ip","handler","middleware"],"mappings":";;;;;;;;;;;;AAEA,IAAA,MAAMA,IAAOC,GAAAA,UAAAA;AACb,IAAA,MAAMC,KAAQC,GAAAA,YAAAA;AACd,IAAA,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,OAAO,EAAE,GAAGC,UAAAA;AAEnC,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGN,MAAMO,MAAM;AAEzBC,IAAAA,SAAAA,GACZ,CAACC,MAAQ,EAAA,EAAEC,MAAM,EAAE,GACnB,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACV,YAAA,IAAIC,eAAkBH,GAAAA,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,qCAAA,CAAA;AAExC,YAAA,IAAI,CAACD,eAAiB,EAAA;gBACpBA,eAAkB,GAAA;oBAChBE,OAAS,EAAA;AACjB,iBAAA;AACK;YAED,IAAI,CAACZ,GAAI,CAAA,SAAA,EAAWU,eAAkB,CAAA,EAAA;AACpCA,gBAAAA,eAAAA,CAAgBE,OAAO,GAAG,IAAA;AAC3B;YAED,IAAIF,eAAAA,CAAgBE,OAAO,KAAK,IAAM,EAAA;gBACpC,MAAMP,SAAAA,GAAYQ,WAA0BC,SAAS;gBAErD,MAAMC,cAAAA,GAAiBd,QAAQO,GAAIQ,CAAAA,OAAO,CAACC,IAAI,CAACC,KAAK,CAAK,IAAA,mBAAA;AAC1D,gBAAA,MAAMC,WAAcpB,GAAAA,QAAAA,CAASS,GAAIQ,CAAAA,OAAO,CAACrB,IAAI,CAAA,GACzCM,OAAQN,CAAAA,IAAAA,CAAKyB,SAAS,CAACZ,GAAAA,CAAIQ,OAAO,CAACrB,IAAI,CACvC,CAAA,GAAA,aAAA;AAEJ,gBAAA,MAAM0B,UAAa,GAAA;oBACjBC,QAAU,EAAA;wBAAEC,GAAK,EAAA;AAAG,qBAAA;oBACpBC,GAAK,EAAA,CAAA;oBACLC,SAAW,EAAA,CAAA,EAAGV,cAAe,CAAA,CAAC,EAAEI,WAAAA,CAAY,CAAC,EAAEX,GAAIQ,CAAAA,OAAO,CAACU,EAAE,CAAE,CAAA;AAC/DC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACX,qBAAA;AACD,oBAAA,GAAGO,eAAe;AAClB,oBAAA,GAAGJ;AACX,iBAAA;AAEM,gBAAA,OAAOD,SAAUuB,CAAAA,UAAU,CAACP,UAAAA,CAAAA,CAAYb,GAAKC,EAAAA,IAAAA,CAAAA;AAC9C;YAED,OAAOA,IAAAA,EAAAA;AACR,SAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.mjs","sources":["../../../server/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { isString, has, toLower } = require('lodash/fp');\n\nconst { RateLimitError } = utils.errors;\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has('enabled', rateLimitConfig)) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const userIdentifier = toLower(ctx.request.body.email) || 'unknownIdentifier';\n const requestPath = isString(ctx.request.path)\n ? toLower(path.normalize(ctx.request.path))\n : 'invalidPath';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userIdentifier}:${requestPath}:${ctx.request.ip}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["path","require$$0","utils","require$$1","isString","has","toLower","require$$2","RateLimitError","errors","rateLimit","config","strapi","ctx","next","rateLimitConfig","get","enabled","require$$3","RateLimit","userIdentifier","request","body","email","requestPath","normalize","loadConfig","interval","min","max","prefixKey","ip","handler","middleware"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,IAAOC,GAAAA,UAAAA;AACb,IAAA,MAAMC,KAAQC,GAAAA,YAAAA;AACd,IAAA,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,OAAO,EAAE,GAAGC,UAAAA;AAEnC,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGN,MAAMO,MAAM;AAEzBC,IAAAA,SAAAA,GACZ,CAACC,MAAQ,EAAA,EAAEC,MAAM,EAAE,GACnB,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACV,YAAA,IAAIC,eAAkBH,GAAAA,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,qCAAA,CAAA;AAExC,YAAA,IAAI,CAACD,eAAiB,EAAA;gBACpBA,eAAkB,GAAA;oBAChBE,OAAS,EAAA;AACjB,iBAAA;AACK;YAED,IAAI,CAACZ,GAAI,CAAA,SAAA,EAAWU,eAAkB,CAAA,EAAA;AACpCA,gBAAAA,eAAAA,CAAgBE,OAAO,GAAG,IAAA;AAC3B;YAED,IAAIF,eAAAA,CAAgBE,OAAO,KAAK,IAAM,EAAA;gBACpC,MAAMP,SAAAA,GAAYQ,WAA0BC,SAAS;gBAErD,MAAMC,cAAAA,GAAiBd,QAAQO,GAAIQ,CAAAA,OAAO,CAACC,IAAI,CAACC,KAAK,CAAK,IAAA,mBAAA;AAC1D,gBAAA,MAAMC,WAAcpB,GAAAA,QAAAA,CAASS,GAAIQ,CAAAA,OAAO,CAACrB,IAAI,CAAA,GACzCM,OAAQN,CAAAA,IAAAA,CAAKyB,SAAS,CAACZ,GAAAA,CAAIQ,OAAO,CAACrB,IAAI,CACvC,CAAA,GAAA,aAAA;AAEJ,gBAAA,MAAM0B,UAAa,GAAA;oBACjBC,QAAU,EAAA;wBAAEC,GAAK,EAAA;AAAG,qBAAA;oBACpBC,GAAK,EAAA,CAAA;AACLC,oBAAAA,SAAAA,EAAW,CAAC,EAAEV,cAAe,CAAA,CAAC,EAAEI,WAAAA,CAAY,CAAC,EAAEX,GAAIQ,CAAAA,OAAO,CAACU,EAAE,CAAC,CAAC;AAC/DC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACX,qBAAA;AACD,oBAAA,GAAGO,eAAe;AAClB,oBAAA,GAAGJ;AACX,iBAAA;AAEM,gBAAA,OAAOD,SAAUuB,CAAAA,UAAU,CAACP,UAAAA,CAAAA,CAAYb,GAAKC,EAAAA,IAAAA,CAAAA;AAC9C;YAED,OAAOA,IAAAA,EAAAA;AACR,SAAA;;;;;;"}
1
+ {"version":3,"file":"rateLimit.mjs","sources":["../../../server/middlewares/rateLimit.js"],"sourcesContent":["'use strict';\n\nconst path = require('path');\nconst utils = require('@strapi/utils');\nconst { isString, has, toLower } = require('lodash/fp');\n\nconst { RateLimitError } = utils.errors;\n\nmodule.exports =\n (config, { strapi }) =>\n async (ctx, next) => {\n let rateLimitConfig = strapi.config.get('plugin::users-permissions.ratelimit');\n\n if (!rateLimitConfig) {\n rateLimitConfig = {\n enabled: true,\n };\n }\n\n if (!has('enabled', rateLimitConfig)) {\n rateLimitConfig.enabled = true;\n }\n\n if (rateLimitConfig.enabled === true) {\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const userIdentifier = toLower(ctx.request.body.email) || 'unknownIdentifier';\n const requestPath = isString(ctx.request.path)\n ? toLower(path.normalize(ctx.request.path))\n : 'invalidPath';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userIdentifier}:${requestPath}:${ctx.request.ip}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["path","require$$0","utils","require$$1","isString","has","toLower","require$$2","RateLimitError","errors","rateLimit","config","strapi","ctx","next","rateLimitConfig","get","enabled","require$$3","RateLimit","userIdentifier","request","body","email","requestPath","normalize","loadConfig","interval","min","max","prefixKey","ip","handler","middleware"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,IAAOC,GAAAA,UAAAA;AACb,IAAA,MAAMC,KAAQC,GAAAA,YAAAA;AACd,IAAA,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,OAAO,EAAE,GAAGC,UAAAA;AAEnC,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGN,MAAMO,MAAM;AAEzBC,IAAAA,SAAAA,GACZ,CAACC,MAAQ,EAAA,EAAEC,MAAM,EAAE,GACnB,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACV,YAAA,IAAIC,eAAkBH,GAAAA,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,qCAAA,CAAA;AAExC,YAAA,IAAI,CAACD,eAAiB,EAAA;gBACpBA,eAAkB,GAAA;oBAChBE,OAAS,EAAA;AACjB,iBAAA;AACK;YAED,IAAI,CAACZ,GAAI,CAAA,SAAA,EAAWU,eAAkB,CAAA,EAAA;AACpCA,gBAAAA,eAAAA,CAAgBE,OAAO,GAAG,IAAA;AAC3B;YAED,IAAIF,eAAAA,CAAgBE,OAAO,KAAK,IAAM,EAAA;gBACpC,MAAMP,SAAAA,GAAYQ,WAA0BC,SAAS;gBAErD,MAAMC,cAAAA,GAAiBd,QAAQO,GAAIQ,CAAAA,OAAO,CAACC,IAAI,CAACC,KAAK,CAAK,IAAA,mBAAA;AAC1D,gBAAA,MAAMC,WAAcpB,GAAAA,QAAAA,CAASS,GAAIQ,CAAAA,OAAO,CAACrB,IAAI,CAAA,GACzCM,OAAQN,CAAAA,IAAAA,CAAKyB,SAAS,CAACZ,GAAAA,CAAIQ,OAAO,CAACrB,IAAI,CACvC,CAAA,GAAA,aAAA;AAEJ,gBAAA,MAAM0B,UAAa,GAAA;oBACjBC,QAAU,EAAA;wBAAEC,GAAK,EAAA;AAAG,qBAAA;oBACpBC,GAAK,EAAA,CAAA;oBACLC,SAAW,EAAA,CAAA,EAAGV,cAAe,CAAA,CAAC,EAAEI,WAAAA,CAAY,CAAC,EAAEX,GAAIQ,CAAAA,OAAO,CAACU,EAAE,CAAE,CAAA;AAC/DC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACX,qBAAA;AACD,oBAAA,GAAGO,eAAe;AAClB,oBAAA,GAAGJ;AACX,iBAAA;AAEM,gBAAA,OAAOD,SAAUuB,CAAAA,UAAU,CAACP,UAAAA,CAAAA,CAAYb,GAAKC,EAAAA,IAAAA,CAAAA;AAC9C;YAED,OAAOA,IAAAA,EAAAA;AACR,SAAA;;;;;;"}
@@ -1,102 +1,166 @@
1
1
  'use strict';
2
2
 
3
+ var validation = require('./validation.js');
4
+
3
5
  var auth;
4
6
  var hasRequiredAuth;
5
7
  function requireAuth() {
6
8
  if (hasRequiredAuth) return auth;
7
9
  hasRequiredAuth = 1;
8
- auth = [
9
- {
10
- method: 'GET',
11
- path: '/connect/(.*)',
12
- handler: 'auth.connect',
13
- config: {
14
- middlewares: [
15
- 'plugin::users-permissions.rateLimit'
16
- ],
17
- prefix: ''
18
- }
19
- },
20
- {
21
- method: 'POST',
22
- path: '/auth/local',
23
- handler: 'auth.callback',
24
- config: {
25
- middlewares: [
26
- 'plugin::users-permissions.rateLimit'
27
- ],
28
- prefix: ''
29
- }
30
- },
31
- {
32
- method: 'POST',
33
- path: '/auth/local/register',
34
- handler: 'auth.register',
35
- config: {
36
- middlewares: [
37
- 'plugin::users-permissions.rateLimit'
38
- ],
39
- prefix: ''
40
- }
41
- },
42
- {
43
- method: 'GET',
44
- path: '/auth/:provider/callback',
45
- handler: 'auth.callback',
46
- config: {
47
- prefix: ''
48
- }
49
- },
50
- {
51
- method: 'POST',
52
- path: '/auth/forgot-password',
53
- handler: 'auth.forgotPassword',
54
- config: {
55
- middlewares: [
56
- 'plugin::users-permissions.rateLimit'
57
- ],
58
- prefix: ''
59
- }
60
- },
61
- {
62
- method: 'POST',
63
- path: '/auth/reset-password',
64
- handler: 'auth.resetPassword',
65
- config: {
66
- middlewares: [
67
- 'plugin::users-permissions.rateLimit'
68
- ],
69
- prefix: ''
70
- }
71
- },
72
- {
73
- method: 'GET',
74
- path: '/auth/email-confirmation',
75
- handler: 'auth.emailConfirmation',
76
- config: {
77
- prefix: ''
78
- }
79
- },
80
- {
81
- method: 'POST',
82
- path: '/auth/send-email-confirmation',
83
- handler: 'auth.sendEmailConfirmation',
84
- config: {
85
- prefix: ''
86
- }
87
- },
88
- {
89
- method: 'POST',
90
- path: '/auth/change-password',
91
- handler: 'auth.changePassword',
92
- config: {
93
- middlewares: [
94
- 'plugin::users-permissions.rateLimit'
95
- ],
96
- prefix: ''
10
+ const { UsersPermissionsRouteValidator } = validation.__require();
11
+ auth = (strapi)=>{
12
+ const validator = new UsersPermissionsRouteValidator(strapi);
13
+ return [
14
+ {
15
+ method: 'GET',
16
+ path: '/connect/(.*)',
17
+ handler: 'auth.connect',
18
+ config: {
19
+ middlewares: [
20
+ 'plugin::users-permissions.rateLimit'
21
+ ],
22
+ prefix: ''
23
+ }
24
+ },
25
+ {
26
+ method: 'POST',
27
+ path: '/auth/local',
28
+ handler: 'auth.callback',
29
+ config: {
30
+ middlewares: [
31
+ 'plugin::users-permissions.rateLimit'
32
+ ],
33
+ prefix: ''
34
+ },
35
+ request: {
36
+ body: {
37
+ 'application/json': validator.loginBodySchema
38
+ }
39
+ },
40
+ response: validator.authResponseSchema
41
+ },
42
+ {
43
+ method: 'POST',
44
+ path: '/auth/local/register',
45
+ handler: 'auth.register',
46
+ config: {
47
+ middlewares: [
48
+ 'plugin::users-permissions.rateLimit'
49
+ ],
50
+ prefix: ''
51
+ },
52
+ request: {
53
+ body: {
54
+ 'application/json': validator.registerBodySchema
55
+ }
56
+ },
57
+ response: validator.authRegisterResponseSchema
58
+ },
59
+ {
60
+ method: 'GET',
61
+ path: '/auth/:provider/callback',
62
+ handler: 'auth.callback',
63
+ config: {
64
+ prefix: ''
65
+ },
66
+ request: {
67
+ params: {
68
+ provider: validator.providerParam
69
+ }
70
+ },
71
+ response: validator.authResponseSchema
72
+ },
73
+ {
74
+ method: 'POST',
75
+ path: '/auth/forgot-password',
76
+ handler: 'auth.forgotPassword',
77
+ config: {
78
+ middlewares: [
79
+ 'plugin::users-permissions.rateLimit'
80
+ ],
81
+ prefix: ''
82
+ },
83
+ request: {
84
+ body: {
85
+ 'application/json': validator.forgotPasswordBodySchema
86
+ }
87
+ },
88
+ response: validator.forgotPasswordResponseSchema
89
+ },
90
+ {
91
+ method: 'POST',
92
+ path: '/auth/reset-password',
93
+ handler: 'auth.resetPassword',
94
+ config: {
95
+ middlewares: [
96
+ 'plugin::users-permissions.rateLimit'
97
+ ],
98
+ prefix: ''
99
+ },
100
+ request: {
101
+ body: {
102
+ 'application/json': validator.resetPasswordBodySchema
103
+ }
104
+ },
105
+ response: validator.authResponseSchema
106
+ },
107
+ {
108
+ method: 'GET',
109
+ path: '/auth/email-confirmation',
110
+ handler: 'auth.emailConfirmation',
111
+ config: {
112
+ prefix: ''
113
+ }
114
+ },
115
+ {
116
+ method: 'POST',
117
+ path: '/auth/send-email-confirmation',
118
+ handler: 'auth.sendEmailConfirmation',
119
+ config: {
120
+ prefix: ''
121
+ },
122
+ request: {
123
+ body: {
124
+ 'application/json': validator.sendEmailConfirmationBodySchema
125
+ }
126
+ },
127
+ response: validator.sendEmailConfirmationResponseSchema
128
+ },
129
+ {
130
+ method: 'POST',
131
+ path: '/auth/change-password',
132
+ handler: 'auth.changePassword',
133
+ config: {
134
+ middlewares: [
135
+ 'plugin::users-permissions.rateLimit'
136
+ ],
137
+ prefix: ''
138
+ },
139
+ request: {
140
+ body: {
141
+ 'application/json': validator.changePasswordBodySchema
142
+ }
143
+ },
144
+ response: validator.authResponseSchema
145
+ },
146
+ {
147
+ method: 'POST',
148
+ path: '/auth/refresh',
149
+ handler: 'auth.refresh',
150
+ config: {
151
+ prefix: ''
152
+ }
153
+ },
154
+ {
155
+ method: 'POST',
156
+ path: '/auth/logout',
157
+ handler: 'auth.logout',
158
+ config: {
159
+ prefix: ''
160
+ }
97
161
  }
98
- }
99
- ];
162
+ ];
163
+ };
100
164
  return auth;
101
165
  }
102
166
 
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sources":["../../../../server/routes/content-api/auth.js"],"sourcesContent":["'use strict';\n\nmodule.exports = [\n {\n method: 'GET',\n path: '/connect/(.*)',\n handler: 'auth.connect',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/local',\n handler: 'auth.callback',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/local/register',\n handler: 'auth.register',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n {\n method: 'GET',\n path: '/auth/:provider/callback',\n handler: 'auth.callback',\n config: {\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/forgot-password',\n handler: 'auth.forgotPassword',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/reset-password',\n handler: 'auth.resetPassword',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n {\n method: 'GET',\n path: '/auth/email-confirmation',\n handler: 'auth.emailConfirmation',\n config: {\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/send-email-confirmation',\n handler: 'auth.sendEmailConfirmation',\n config: {\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/change-password',\n handler: 'auth.changePassword',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n];\n"],"names":["auth","method","path","handler","config","middlewares","prefix"],"mappings":";;;;;;;IAEAA,IAAiB,GAAA;AACf,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,eAAA;YACNC,OAAS,EAAA,cAAA;YACTC,MAAQ,EAAA;gBACNC,WAAa,EAAA;AAAC,oBAAA;AAAsC,iBAAA;gBACpDC,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,aAAA;YACNC,OAAS,EAAA,eAAA;YACTC,MAAQ,EAAA;gBACNC,WAAa,EAAA;AAAC,oBAAA;AAAsC,iBAAA;gBACpDC,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,sBAAA;YACNC,OAAS,EAAA,eAAA;YACTC,MAAQ,EAAA;gBACNC,WAAa,EAAA;AAAC,oBAAA;AAAsC,iBAAA;gBACpDC,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,0BAAA;YACNC,OAAS,EAAA,eAAA;YACTC,MAAQ,EAAA;gBACNE,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,uBAAA;YACNC,OAAS,EAAA,qBAAA;YACTC,MAAQ,EAAA;gBACNC,WAAa,EAAA;AAAC,oBAAA;AAAsC,iBAAA;gBACpDC,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,sBAAA;YACNC,OAAS,EAAA,oBAAA;YACTC,MAAQ,EAAA;gBACNC,WAAa,EAAA;AAAC,oBAAA;AAAsC,iBAAA;gBACpDC,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,0BAAA;YACNC,OAAS,EAAA,wBAAA;YACTC,MAAQ,EAAA;gBACNE,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,+BAAA;YACNC,OAAS,EAAA,4BAAA;YACTC,MAAQ,EAAA;gBACNE,MAAQ,EAAA;AACT;AACF,SAAA;AACD,QAAA;YACEL,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,uBAAA;YACNC,OAAS,EAAA,qBAAA;YACTC,MAAQ,EAAA;gBACNC,WAAa,EAAA;AAAC,oBAAA;AAAsC,iBAAA;gBACpDC,MAAQ,EAAA;AACT;AACF;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"auth.js","sources":["../../../../server/routes/content-api/auth.js"],"sourcesContent":["'use strict';\n\nconst { UsersPermissionsRouteValidator } = require('./validation');\n\nmodule.exports = (strapi) => {\n const validator = new UsersPermissionsRouteValidator(strapi);\n\n return [\n {\n method: 'GET',\n path: '/connect/(.*)',\n handler: 'auth.connect',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/local',\n handler: 'auth.callback',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n request: {\n body: { 'application/json': validator.loginBodySchema },\n },\n response: validator.authResponseSchema,\n },\n {\n method: 'POST',\n path: '/auth/local/register',\n handler: 'auth.register',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n request: {\n body: { 'application/json': validator.registerBodySchema },\n },\n response: validator.authRegisterResponseSchema,\n },\n {\n method: 'GET',\n path: '/auth/:provider/callback',\n handler: 'auth.callback',\n config: {\n prefix: '',\n },\n request: {\n params: {\n provider: validator.providerParam,\n },\n },\n response: validator.authResponseSchema,\n },\n {\n method: 'POST',\n path: '/auth/forgot-password',\n handler: 'auth.forgotPassword',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n request: {\n body: { 'application/json': validator.forgotPasswordBodySchema },\n },\n response: validator.forgotPasswordResponseSchema,\n },\n {\n method: 'POST',\n path: '/auth/reset-password',\n handler: 'auth.resetPassword',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n request: {\n body: { 'application/json': validator.resetPasswordBodySchema },\n },\n response: validator.authResponseSchema,\n },\n {\n method: 'GET',\n path: '/auth/email-confirmation',\n handler: 'auth.emailConfirmation',\n config: {\n prefix: '',\n },\n },\n {\n method: 'POST',\n path: '/auth/send-email-confirmation',\n handler: 'auth.sendEmailConfirmation',\n config: {\n prefix: '',\n },\n request: {\n body: { 'application/json': validator.sendEmailConfirmationBodySchema },\n },\n response: validator.sendEmailConfirmationResponseSchema,\n },\n {\n method: 'POST',\n path: '/auth/change-password',\n handler: 'auth.changePassword',\n config: {\n middlewares: ['plugin::users-permissions.rateLimit'],\n prefix: '',\n },\n request: {\n body: { 'application/json': validator.changePasswordBodySchema },\n },\n response: validator.authResponseSchema,\n },\n {\n method: 'POST',\n path: '/auth/refresh',\n handler: 'auth.refresh',\n config: { prefix: '' },\n },\n {\n method: 'POST',\n path: '/auth/logout',\n handler: 'auth.logout',\n config: { prefix: '' },\n },\n ];\n};\n"],"names":["UsersPermissionsRouteValidator","require$$0","auth","strapi","validator","method","path","handler","config","middlewares","prefix","request","body","loginBodySchema","response","authResponseSchema","registerBodySchema","authRegisterResponseSchema","params","provider","providerParam","forgotPasswordBodySchema","forgotPasswordResponseSchema","resetPasswordBodySchema","sendEmailConfirmationBodySchema","sendEmailConfirmationResponseSchema","changePasswordBodySchema"],"mappings":"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"}