@strapi/plugin-users-permissions 5.37.1 → 5.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/admin/components/BoundRoute/getMethodColor.js.map +1 -1
  2. package/dist/admin/components/BoundRoute/getMethodColor.mjs.map +1 -1
  3. package/dist/admin/components/BoundRoute/index.js.map +1 -1
  4. package/dist/admin/components/BoundRoute/index.mjs +1 -1
  5. package/dist/admin/components/BoundRoute/index.mjs.map +1 -1
  6. package/dist/admin/components/FormModal/Input/index.js.map +1 -1
  7. package/dist/admin/components/FormModal/Input/index.mjs.map +1 -1
  8. package/dist/admin/components/FormModal/index.js.map +1 -1
  9. package/dist/admin/components/FormModal/index.mjs.map +1 -1
  10. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js.map +1 -1
  11. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs +1 -1
  12. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs.map +1 -1
  13. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -1
  14. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -1
  15. package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -1
  16. package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -1
  17. package/dist/admin/components/Permissions/index.js.map +1 -1
  18. package/dist/admin/components/Permissions/index.mjs.map +1 -1
  19. package/dist/admin/components/Permissions/init.js.map +1 -1
  20. package/dist/admin/components/Permissions/init.mjs.map +1 -1
  21. package/dist/admin/components/Permissions/reducer.js.map +1 -1
  22. package/dist/admin/components/Permissions/reducer.mjs.map +1 -1
  23. package/dist/admin/components/Policies/index.js.map +1 -1
  24. package/dist/admin/components/Policies/index.mjs.map +1 -1
  25. package/dist/admin/components/UsersPermissions/index.js.map +1 -1
  26. package/dist/admin/components/UsersPermissions/index.mjs +5 -5
  27. package/dist/admin/components/UsersPermissions/index.mjs.map +1 -1
  28. package/dist/admin/components/UsersPermissions/init.js.map +1 -1
  29. package/dist/admin/components/UsersPermissions/init.mjs.map +1 -1
  30. package/dist/admin/components/UsersPermissions/reducer.js.map +1 -1
  31. package/dist/admin/components/UsersPermissions/reducer.mjs.map +1 -1
  32. package/dist/admin/constants.js.map +1 -1
  33. package/dist/admin/constants.mjs.map +1 -1
  34. package/dist/admin/contexts/UsersPermissionsContext/index.js.map +1 -1
  35. package/dist/admin/contexts/UsersPermissionsContext/index.mjs.map +1 -1
  36. package/dist/admin/index.js.map +1 -1
  37. package/dist/admin/index.mjs.map +1 -1
  38. package/dist/admin/package.json.js +1 -6
  39. package/dist/admin/package.json.js.map +1 -1
  40. package/dist/admin/package.json.mjs +1 -6
  41. package/dist/admin/package.json.mjs.map +1 -1
  42. package/dist/admin/pages/AdvancedSettings/index.js.map +1 -1
  43. package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -1
  44. package/dist/admin/pages/AdvancedSettings/utils/layout.js.map +1 -1
  45. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs.map +1 -1
  46. package/dist/admin/pages/AdvancedSettings/utils/schema.js.map +1 -1
  47. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs.map +1 -1
  48. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
  49. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
  50. package/dist/admin/pages/EmailTemplates/components/EmailTable.js.map +1 -1
  51. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs.map +1 -1
  52. package/dist/admin/pages/EmailTemplates/index.js.map +1 -1
  53. package/dist/admin/pages/EmailTemplates/index.mjs.map +1 -1
  54. package/dist/admin/pages/EmailTemplates/utils/schema.js.map +1 -1
  55. package/dist/admin/pages/EmailTemplates/utils/schema.mjs.map +1 -1
  56. package/dist/admin/pages/Providers/index.js.map +1 -1
  57. package/dist/admin/pages/Providers/index.mjs.map +1 -1
  58. package/dist/admin/pages/Providers/utils/forms.js.map +1 -1
  59. package/dist/admin/pages/Providers/utils/forms.mjs.map +1 -1
  60. package/dist/admin/pages/Roles/constants.js.map +1 -1
  61. package/dist/admin/pages/Roles/constants.mjs.map +1 -1
  62. package/dist/admin/pages/Roles/hooks/usePlugins.js.map +1 -1
  63. package/dist/admin/pages/Roles/hooks/usePlugins.mjs.map +1 -1
  64. package/dist/admin/pages/Roles/index.js.map +1 -1
  65. package/dist/admin/pages/Roles/index.mjs.map +1 -1
  66. package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -1
  67. package/dist/admin/pages/Roles/pages/CreatePage.mjs +1 -1
  68. package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -1
  69. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
  70. package/dist/admin/pages/Roles/pages/EditPage.mjs +1 -1
  71. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
  72. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -1
  73. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs +1 -1
  74. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -1
  75. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  76. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  77. package/dist/admin/pluginId.js.map +1 -1
  78. package/dist/admin/pluginId.mjs.map +1 -1
  79. package/dist/admin/utils/cleanPermissions.js.map +1 -1
  80. package/dist/admin/utils/cleanPermissions.mjs.map +1 -1
  81. package/dist/admin/utils/formatPluginName.js.map +1 -1
  82. package/dist/admin/utils/formatPluginName.mjs.map +1 -1
  83. package/dist/admin/utils/getTrad.js.map +1 -1
  84. package/dist/admin/utils/getTrad.mjs.map +1 -1
  85. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  86. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  87. package/dist/server/bootstrap/index.js.map +1 -1
  88. package/dist/server/bootstrap/index.mjs.map +1 -1
  89. package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
  90. package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
  91. package/dist/server/config.js.map +1 -1
  92. package/dist/server/config.mjs.map +1 -1
  93. package/dist/server/content-types/index.js +4 -4
  94. package/dist/server/content-types/index.js.map +1 -1
  95. package/dist/server/content-types/index.mjs.map +1 -1
  96. package/dist/server/content-types/permission/index.js.map +1 -1
  97. package/dist/server/content-types/permission/index.mjs.map +1 -1
  98. package/dist/server/content-types/role/index.js.map +1 -1
  99. package/dist/server/content-types/role/index.mjs.map +1 -1
  100. package/dist/server/content-types/user/index.js.map +1 -1
  101. package/dist/server/content-types/user/index.mjs.map +1 -1
  102. package/dist/server/content-types/user/schema-config.js.map +1 -1
  103. package/dist/server/content-types/user/schema-config.mjs.map +1 -1
  104. package/dist/server/controllers/auth.js +4 -4
  105. package/dist/server/controllers/auth.js.map +1 -1
  106. package/dist/server/controllers/auth.mjs +4 -4
  107. package/dist/server/controllers/auth.mjs.map +1 -1
  108. package/dist/server/controllers/content-manager-user.js.map +1 -1
  109. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  110. package/dist/server/controllers/index.js.map +1 -1
  111. package/dist/server/controllers/index.mjs.map +1 -1
  112. package/dist/server/controllers/permissions.js.map +1 -1
  113. package/dist/server/controllers/permissions.mjs.map +1 -1
  114. package/dist/server/controllers/role.js.map +1 -1
  115. package/dist/server/controllers/role.mjs.map +1 -1
  116. package/dist/server/controllers/settings.js.map +1 -1
  117. package/dist/server/controllers/settings.mjs.map +1 -1
  118. package/dist/server/controllers/user.js.map +1 -1
  119. package/dist/server/controllers/user.mjs.map +1 -1
  120. package/dist/server/controllers/validation/auth.js.map +1 -1
  121. package/dist/server/controllers/validation/auth.mjs.map +1 -1
  122. package/dist/server/controllers/validation/email-template.js.map +1 -1
  123. package/dist/server/controllers/validation/email-template.mjs.map +1 -1
  124. package/dist/server/controllers/validation/user.js.map +1 -1
  125. package/dist/server/controllers/validation/user.mjs.map +1 -1
  126. package/dist/server/graphql/index.js.map +1 -1
  127. package/dist/server/graphql/index.mjs.map +1 -1
  128. package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
  129. package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
  130. package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
  131. package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
  132. package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
  133. package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
  134. package/dist/server/graphql/mutations/auth/login.js.map +1 -1
  135. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
  136. package/dist/server/graphql/mutations/auth/register.js.map +1 -1
  137. package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
  138. package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
  139. package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
  140. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
  141. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
  142. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
  143. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
  144. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
  145. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
  146. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
  147. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
  148. package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
  149. package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
  150. package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
  151. package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
  152. package/dist/server/graphql/mutations/index.js.map +1 -1
  153. package/dist/server/graphql/mutations/index.mjs.map +1 -1
  154. package/dist/server/graphql/queries/index.js.map +1 -1
  155. package/dist/server/graphql/queries/index.mjs.map +1 -1
  156. package/dist/server/graphql/queries/me.js.map +1 -1
  157. package/dist/server/graphql/queries/me.mjs.map +1 -1
  158. package/dist/server/graphql/resolvers-configs.js.map +1 -1
  159. package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
  160. package/dist/server/graphql/types/create-role-payload.js.map +1 -1
  161. package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
  162. package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
  163. package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
  164. package/dist/server/graphql/types/index.js.map +1 -1
  165. package/dist/server/graphql/types/index.mjs.map +1 -1
  166. package/dist/server/graphql/types/login-input.js.map +1 -1
  167. package/dist/server/graphql/types/login-input.mjs.map +1 -1
  168. package/dist/server/graphql/types/login-payload.js.map +1 -1
  169. package/dist/server/graphql/types/login-payload.mjs.map +1 -1
  170. package/dist/server/graphql/types/me-role.js.map +1 -1
  171. package/dist/server/graphql/types/me-role.mjs.map +1 -1
  172. package/dist/server/graphql/types/me.js.map +1 -1
  173. package/dist/server/graphql/types/me.mjs.map +1 -1
  174. package/dist/server/graphql/types/password-payload.js.map +1 -1
  175. package/dist/server/graphql/types/password-payload.mjs.map +1 -1
  176. package/dist/server/graphql/types/register-input.js.map +1 -1
  177. package/dist/server/graphql/types/register-input.mjs.map +1 -1
  178. package/dist/server/graphql/types/update-role-payload.js.map +1 -1
  179. package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
  180. package/dist/server/graphql/types/user-input.js.map +1 -1
  181. package/dist/server/graphql/types/user-input.mjs.map +1 -1
  182. package/dist/server/graphql/utils.js.map +1 -1
  183. package/dist/server/graphql/utils.mjs.map +1 -1
  184. package/dist/server/index.js.map +1 -1
  185. package/dist/server/index.mjs.map +1 -1
  186. package/dist/server/index2.js.map +1 -1
  187. package/dist/server/index2.mjs.map +1 -1
  188. package/dist/server/middlewares/index.js.map +1 -1
  189. package/dist/server/middlewares/index.mjs.map +1 -1
  190. package/dist/server/middlewares/rateLimit.js +4 -4
  191. package/dist/server/middlewares/rateLimit.js.map +1 -1
  192. package/dist/server/middlewares/rateLimit.mjs +4 -4
  193. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  194. package/dist/server/register.js.map +1 -1
  195. package/dist/server/register.mjs.map +1 -1
  196. package/dist/server/routes/admin/index.js.map +1 -1
  197. package/dist/server/routes/admin/index.mjs.map +1 -1
  198. package/dist/server/routes/admin/permissions.js.map +1 -1
  199. package/dist/server/routes/admin/permissions.mjs.map +1 -1
  200. package/dist/server/routes/admin/role.js.map +1 -1
  201. package/dist/server/routes/admin/role.mjs.map +1 -1
  202. package/dist/server/routes/admin/settings.js.map +1 -1
  203. package/dist/server/routes/admin/settings.mjs.map +1 -1
  204. package/dist/server/routes/content-api/auth.js.map +1 -1
  205. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  206. package/dist/server/routes/content-api/index.js.map +1 -1
  207. package/dist/server/routes/content-api/index.mjs.map +1 -1
  208. package/dist/server/routes/content-api/permissions.js.map +1 -1
  209. package/dist/server/routes/content-api/permissions.mjs.map +1 -1
  210. package/dist/server/routes/content-api/role.js.map +1 -1
  211. package/dist/server/routes/content-api/role.mjs.map +1 -1
  212. package/dist/server/routes/content-api/user.js.map +1 -1
  213. package/dist/server/routes/content-api/user.mjs.map +1 -1
  214. package/dist/server/routes/content-api/validation.js.map +1 -1
  215. package/dist/server/routes/content-api/validation.mjs.map +1 -1
  216. package/dist/server/routes/index.js +4 -4
  217. package/dist/server/routes/index.js.map +1 -1
  218. package/dist/server/routes/index.mjs.map +1 -1
  219. package/dist/server/services/constants.js.map +1 -1
  220. package/dist/server/services/constants.mjs.map +1 -1
  221. package/dist/server/services/index.js.map +1 -1
  222. package/dist/server/services/index.mjs.map +1 -1
  223. package/dist/server/services/jwt.js.map +1 -1
  224. package/dist/server/services/jwt.mjs.map +1 -1
  225. package/dist/server/services/permission.js.map +1 -1
  226. package/dist/server/services/permission.mjs.map +1 -1
  227. package/dist/server/services/providers-registry.js.map +1 -1
  228. package/dist/server/services/providers-registry.mjs.map +1 -1
  229. package/dist/server/services/providers.js.map +1 -1
  230. package/dist/server/services/providers.mjs.map +1 -1
  231. package/dist/server/services/role.js.map +1 -1
  232. package/dist/server/services/role.mjs.map +1 -1
  233. package/dist/server/services/user.js +8 -8
  234. package/dist/server/services/user.js.map +1 -1
  235. package/dist/server/services/user.mjs +8 -8
  236. package/dist/server/services/user.mjs.map +1 -1
  237. package/dist/server/services/users-permissions.js +4 -4
  238. package/dist/server/services/users-permissions.js.map +1 -1
  239. package/dist/server/services/users-permissions.mjs +4 -4
  240. package/dist/server/services/users-permissions.mjs.map +1 -1
  241. package/dist/server/strategies/users-permissions.js.map +1 -1
  242. package/dist/server/strategies/users-permissions.mjs.map +1 -1
  243. package/dist/server/utils/index.js.map +1 -1
  244. package/dist/server/utils/index.mjs.map +1 -1
  245. package/dist/server/utils/sanitize/index.js.map +1 -1
  246. package/dist/server/utils/sanitize/index.mjs.map +1 -1
  247. package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
  248. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
  249. package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
  250. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
  251. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
  252. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
  253. package/package.json +12 -7
@@ -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, 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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"}
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/controllers/index.js"],"sourcesContent":["'use strict';\n\nconst auth = require('./auth');\nconst user = require('./user');\nconst role = require('./role');\nconst permissions = require('./permissions');\nconst settings = require('./settings');\nconst contentmanageruser = require('./content-manager-user');\n\nmodule.exports = {\n auth,\n user,\n role,\n permissions,\n settings,\n contentmanageruser,\n};\n"],"names":["auth","require$$0","user","require$$1","role","require$$2","permissions","require$$3","settings","require$$4","contentmanageruser","require$$5","controllers"],"mappings":";;;;;;;;;;;;;;AAEA,IAAA,MAAMA,MAAOC,GAAAA,cAAAA,EAAAA;AACb,IAAA,MAAMC,MAAOC,GAAAA,cAAAA,EAAAA;AACb,IAAA,MAAMC,MAAOC,GAAAA,cAAAA,EAAAA;AACb,IAAA,MAAMC,aAAcC,GAAAA,qBAAAA,EAAAA;AACpB,IAAA,MAAMC,UAAWC,GAAAA,kBAAAA,EAAAA;AACjB,IAAA,MAAMC,kBAAqBC,GAAAA,4BAAAA,EAAAA;IAE3BC,WAAiB,GAAA;AACfZ,cAAAA,MAAAA;AACAE,cAAAA,MAAAA;AACAE,cAAAA,MAAAA;AACAE,qBAAAA,aAAAA;AACAE,kBAAAA,UAAAA;AACAE,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/controllers/index.js"],"sourcesContent":["'use strict';\n\nconst auth = require('./auth');\nconst user = require('./user');\nconst role = require('./role');\nconst permissions = require('./permissions');\nconst settings = require('./settings');\nconst contentmanageruser = require('./content-manager-user');\n\nmodule.exports = {\n auth,\n user,\n role,\n permissions,\n settings,\n contentmanageruser,\n};\n"],"names":["auth","require$$0","user","require$$1","role","require$$2","permissions","require$$3","settings","require$$4","contentmanageruser","require$$5","controllers"],"mappings":";;;;;;;;;;;;;;AAEA,IAAA,MAAMA,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,MAAAA,GAAOC,cAAAA,EAAAA;AACb,IAAA,MAAMC,aAAAA,GAAcC,qBAAAA,EAAAA;AACpB,IAAA,MAAMC,UAAAA,GAAWC,kBAAAA,EAAAA;AACjB,IAAA,MAAMC,kBAAAA,GAAqBC,4BAAAA,EAAAA;IAE3BC,WAAAA,GAAiB;AACfZ,cAAAA,MAAAA;AACAE,cAAAA,MAAAA;AACAE,cAAAA,MAAAA;AACAE,qBAAAA,aAAAA;AACAE,kBAAAA,UAAAA;AACAE,QAAAA;AACF,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/controllers/index.js"],"sourcesContent":["'use strict';\n\nconst auth = require('./auth');\nconst user = require('./user');\nconst role = require('./role');\nconst permissions = require('./permissions');\nconst settings = require('./settings');\nconst contentmanageruser = require('./content-manager-user');\n\nmodule.exports = {\n auth,\n user,\n role,\n permissions,\n settings,\n contentmanageruser,\n};\n"],"names":["auth","require$$0","user","require$$1","role","require$$2","permissions","require$$3","settings","require$$4","contentmanageruser","require$$5","controllers"],"mappings":";;;;;;;;;;;;AAEA,IAAA,MAAMA,IAAOC,GAAAA,WAAAA,EAAAA;AACb,IAAA,MAAMC,IAAOC,GAAAA,WAAAA,EAAAA;AACb,IAAA,MAAMC,IAAOC,GAAAA,WAAAA,EAAAA;AACb,IAAA,MAAMC,WAAcC,GAAAA,kBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAWC,GAAAA,eAAAA,EAAAA;AACjB,IAAA,MAAMC,kBAAqBC,GAAAA,yBAAAA,EAAAA;IAE3BC,WAAiB,GAAA;AACfZ,QAAAA,IAAAA;AACAE,QAAAA,IAAAA;AACAE,QAAAA,IAAAA;AACAE,QAAAA,WAAAA;AACAE,QAAAA,QAAAA;AACAE,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/controllers/index.js"],"sourcesContent":["'use strict';\n\nconst auth = require('./auth');\nconst user = require('./user');\nconst role = require('./role');\nconst permissions = require('./permissions');\nconst settings = require('./settings');\nconst contentmanageruser = require('./content-manager-user');\n\nmodule.exports = {\n auth,\n user,\n role,\n permissions,\n settings,\n contentmanageruser,\n};\n"],"names":["auth","require$$0","user","require$$1","role","require$$2","permissions","require$$3","settings","require$$4","contentmanageruser","require$$5","controllers"],"mappings":";;;;;;;;;;;;AAEA,IAAA,MAAMA,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,IAAAA,GAAOC,WAAAA,EAAAA;AACb,IAAA,MAAMC,WAAAA,GAAcC,kBAAAA,EAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,kBAAAA,GAAqBC,yBAAAA,EAAAA;IAE3BC,WAAAA,GAAiB;AACfZ,QAAAA,IAAAA;AACAE,QAAAA,IAAAA;AACAE,QAAAA,IAAAA;AACAE,QAAAA,WAAAA;AACAE,QAAAA,QAAAA;AACAE,QAAAA;AACF,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sources":["../../../server/controllers/permissions.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { getService } = require('../utils');\n\nmodule.exports = {\n async getPermissions(ctx) {\n const permissions = await getService('users-permissions').getActions();\n\n ctx.send({ permissions });\n },\n\n async getPolicies(ctx) {\n const policies = _.keys(strapi.plugin('users-permissions').policies);\n\n ctx.send({\n policies: _.without(policies, 'permissions'),\n });\n },\n\n async getRoutes(ctx) {\n const routes = await getService('users-permissions').getRoutes();\n\n ctx.send({ routes });\n },\n};\n"],"names":["_","require$$0","getService","require$$1","permissions","getPermissions","ctx","getActions","send","getPolicies","policies","keys","strapi","plugin","without","getRoutes","routes"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,CAAIC,GAAAA,UAAAA;IACV,MAAM,EAAEC,UAAU,EAAE,GAAGC,eAAAA,EAAAA;IAEvBC,WAAiB,GAAA;AACf,QAAA,MAAMC,gBAAeC,GAAG,EAAA;AACtB,YAAA,MAAMF,WAAc,GAAA,MAAMF,UAAW,CAAA,mBAAA,CAAA,CAAqBK,UAAU,EAAA;AAEpED,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEJ,gBAAAA;AAAW,aAAA,CAAA;AACvB,SAAA;AAED,QAAA,MAAMK,aAAYH,GAAG,EAAA;YACnB,MAAMI,QAAAA,GAAWV,EAAEW,IAAI,CAACC,OAAOC,MAAM,CAAC,qBAAqBH,QAAQ,CAAA;AAEnEJ,YAAAA,GAAAA,CAAIE,IAAI,CAAC;gBACPE,QAAUV,EAAAA,CAAAA,CAAEc,OAAO,CAACJ,QAAU,EAAA,aAAA;AACpC,aAAA,CAAA;AACG,SAAA;AAED,QAAA,MAAMK,WAAUT,GAAG,EAAA;AACjB,YAAA,MAAMU,MAAS,GAAA,MAAMd,UAAW,CAAA,mBAAA,CAAA,CAAqBa,SAAS,EAAA;AAE9DT,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEQ,gBAAAA;AAAM,aAAA,CAAA;AAClB;AACH,KAAA;;;;;;"}
1
+ {"version":3,"file":"permissions.js","sources":["../../../server/controllers/permissions.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { getService } = require('../utils');\n\nmodule.exports = {\n async getPermissions(ctx) {\n const permissions = await getService('users-permissions').getActions();\n\n ctx.send({ permissions });\n },\n\n async getPolicies(ctx) {\n const policies = _.keys(strapi.plugin('users-permissions').policies);\n\n ctx.send({\n policies: _.without(policies, 'permissions'),\n });\n },\n\n async getRoutes(ctx) {\n const routes = await getService('users-permissions').getRoutes();\n\n ctx.send({ routes });\n },\n};\n"],"names":["_","require$$0","getService","require$$1","permissions","getPermissions","ctx","getActions","send","getPolicies","policies","keys","strapi","plugin","without","getRoutes","routes"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,CAAAA,GAAIC,UAAAA;IACV,MAAM,EAAEC,UAAU,EAAE,GAAGC,eAAAA,EAAAA;IAEvBC,WAAAA,GAAiB;AACf,QAAA,MAAMC,gBAAeC,GAAG,EAAA;AACtB,YAAA,MAAMF,WAAAA,GAAc,MAAMF,UAAAA,CAAW,mBAAA,CAAA,CAAqBK,UAAU,EAAA;AAEpED,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEJ,gBAAAA;AAAW,aAAA,CAAA;AAC1B,QAAA,CAAA;AAEE,QAAA,MAAMK,aAAYH,GAAG,EAAA;YACnB,MAAMI,QAAAA,GAAWV,EAAEW,IAAI,CAACC,OAAOC,MAAM,CAAC,qBAAqBH,QAAQ,CAAA;AAEnEJ,YAAAA,GAAAA,CAAIE,IAAI,CAAC;gBACPE,QAAAA,EAAUV,CAAAA,CAAEc,OAAO,CAACJ,QAAAA,EAAU,aAAA;AACpC,aAAA,CAAA;AACA,QAAA,CAAA;AAEE,QAAA,MAAMK,WAAUT,GAAG,EAAA;AACjB,YAAA,MAAMU,MAAAA,GAAS,MAAMd,UAAAA,CAAW,mBAAA,CAAA,CAAqBa,SAAS,EAAA;AAE9DT,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEQ,gBAAAA;AAAM,aAAA,CAAA;AACrB,QAAA;AACA,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.mjs","sources":["../../../server/controllers/permissions.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { getService } = require('../utils');\n\nmodule.exports = {\n async getPermissions(ctx) {\n const permissions = await getService('users-permissions').getActions();\n\n ctx.send({ permissions });\n },\n\n async getPolicies(ctx) {\n const policies = _.keys(strapi.plugin('users-permissions').policies);\n\n ctx.send({\n policies: _.without(policies, 'permissions'),\n });\n },\n\n async getRoutes(ctx) {\n const routes = await getService('users-permissions').getRoutes();\n\n ctx.send({ routes });\n },\n};\n"],"names":["_","require$$0","getService","require$$1","permissions","getPermissions","ctx","getActions","send","getPolicies","policies","keys","strapi","plugin","without","getRoutes","routes"],"mappings":";;;;;;;;AAEA,IAAA,MAAMA,CAAIC,GAAAA,UAAAA;IACV,MAAM,EAAEC,UAAU,EAAE,GAAGC,YAAAA,EAAAA;IAEvBC,WAAiB,GAAA;AACf,QAAA,MAAMC,gBAAeC,GAAG,EAAA;AACtB,YAAA,MAAMF,WAAc,GAAA,MAAMF,UAAW,CAAA,mBAAA,CAAA,CAAqBK,UAAU,EAAA;AAEpED,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEJ,gBAAAA;AAAW,aAAA,CAAA;AACvB,SAAA;AAED,QAAA,MAAMK,aAAYH,GAAG,EAAA;YACnB,MAAMI,QAAAA,GAAWV,EAAEW,IAAI,CAACC,OAAOC,MAAM,CAAC,qBAAqBH,QAAQ,CAAA;AAEnEJ,YAAAA,GAAAA,CAAIE,IAAI,CAAC;gBACPE,QAAUV,EAAAA,CAAAA,CAAEc,OAAO,CAACJ,QAAU,EAAA,aAAA;AACpC,aAAA,CAAA;AACG,SAAA;AAED,QAAA,MAAMK,WAAUT,GAAG,EAAA;AACjB,YAAA,MAAMU,MAAS,GAAA,MAAMd,UAAW,CAAA,mBAAA,CAAA,CAAqBa,SAAS,EAAA;AAE9DT,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEQ,gBAAAA;AAAM,aAAA,CAAA;AAClB;AACH,KAAA;;;;;;"}
1
+ {"version":3,"file":"permissions.mjs","sources":["../../../server/controllers/permissions.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { getService } = require('../utils');\n\nmodule.exports = {\n async getPermissions(ctx) {\n const permissions = await getService('users-permissions').getActions();\n\n ctx.send({ permissions });\n },\n\n async getPolicies(ctx) {\n const policies = _.keys(strapi.plugin('users-permissions').policies);\n\n ctx.send({\n policies: _.without(policies, 'permissions'),\n });\n },\n\n async getRoutes(ctx) {\n const routes = await getService('users-permissions').getRoutes();\n\n ctx.send({ routes });\n },\n};\n"],"names":["_","require$$0","getService","require$$1","permissions","getPermissions","ctx","getActions","send","getPolicies","policies","keys","strapi","plugin","without","getRoutes","routes"],"mappings":";;;;;;;;AAEA,IAAA,MAAMA,CAAAA,GAAIC,UAAAA;IACV,MAAM,EAAEC,UAAU,EAAE,GAAGC,YAAAA,EAAAA;IAEvBC,WAAAA,GAAiB;AACf,QAAA,MAAMC,gBAAeC,GAAG,EAAA;AACtB,YAAA,MAAMF,WAAAA,GAAc,MAAMF,UAAAA,CAAW,mBAAA,CAAA,CAAqBK,UAAU,EAAA;AAEpED,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEJ,gBAAAA;AAAW,aAAA,CAAA;AAC1B,QAAA,CAAA;AAEE,QAAA,MAAMK,aAAYH,GAAG,EAAA;YACnB,MAAMI,QAAAA,GAAWV,EAAEW,IAAI,CAACC,OAAOC,MAAM,CAAC,qBAAqBH,QAAQ,CAAA;AAEnEJ,YAAAA,GAAAA,CAAIE,IAAI,CAAC;gBACPE,QAAAA,EAAUV,CAAAA,CAAEc,OAAO,CAACJ,QAAAA,EAAU,aAAA;AACpC,aAAA,CAAA;AACA,QAAA,CAAA;AAEE,QAAA,MAAMK,WAAUT,GAAG,EAAA;AACjB,YAAA,MAAMU,MAAAA,GAAS,MAAMd,UAAAA,CAAW,mBAAA,CAAA,CAAqBa,SAAS,EAAA;AAE9DT,YAAAA,GAAAA,CAAIE,IAAI,CAAC;AAAEQ,gBAAAA;AAAM,aAAA,CAAA;AACrB,QAAA;AACA,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sources":["../../../server/controllers/role.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { async, errors } = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateDeleteRoleBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError } = errors;\n\nconst sanitizeOutput = async (role) => {\n const { sanitizeLocalizationFields } = strapi.plugin('i18n').service('sanitize');\n const schema = strapi.getModel('plugin::users-permissions.role');\n\n return async.pipe(sanitizeLocalizationFields(schema))(role);\n};\n\nmodule.exports = {\n /**\n * Default action.\n *\n * @return {Object}\n */\n async createRole(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').createRole(ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async findOne(ctx) {\n const { id } = ctx.params;\n\n const role = await getService('role').findOne(id);\n\n if (!role) {\n return ctx.notFound();\n }\n\n const safeRole = await sanitizeOutput(role);\n\n ctx.send({ role: safeRole });\n },\n\n async find(ctx) {\n const roles = await getService('role').find();\n\n const safeRoles = await Promise.all(roles.map(sanitizeOutput));\n\n ctx.send({ roles: safeRoles });\n },\n\n async updateRole(ctx) {\n const roleID = ctx.params.role;\n\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').updateRole(roleID, ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async deleteRole(ctx) {\n const roleID = ctx.params.role;\n\n if (!roleID) {\n await validateDeleteRoleBody(ctx.params);\n }\n\n // Fetch public role.\n const publicRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: 'public' } });\n\n const publicRoleID = publicRole.id;\n\n // Prevent from removing the public role.\n if (roleID.toString() === publicRoleID.toString()) {\n throw new ApplicationError('Cannot delete public role');\n }\n\n await getService('role').deleteRole(roleID, publicRoleID);\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","async","errors","require$$1","getService","require$$2","validateDeleteRoleBody","require$$3","ApplicationError","ValidationError","sanitizeOutput","role","sanitizeLocalizationFields","strapi","plugin","service","schema","getModel","pipe","createRole","ctx","isEmpty","request","body","send","ok","findOne","id","params","notFound","safeRole","find","roles","safeRoles","Promise","all","map","updateRole","roleID","deleteRole","publicRole","db","query","where","type","publicRoleID","toString"],"mappings":"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"}
1
+ {"version":3,"file":"role.js","sources":["../../../server/controllers/role.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { async, errors } = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateDeleteRoleBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError } = errors;\n\nconst sanitizeOutput = async (role) => {\n const { sanitizeLocalizationFields } = strapi.plugin('i18n').service('sanitize');\n const schema = strapi.getModel('plugin::users-permissions.role');\n\n return async.pipe(sanitizeLocalizationFields(schema))(role);\n};\n\nmodule.exports = {\n /**\n * Default action.\n *\n * @return {Object}\n */\n async createRole(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').createRole(ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async findOne(ctx) {\n const { id } = ctx.params;\n\n const role = await getService('role').findOne(id);\n\n if (!role) {\n return ctx.notFound();\n }\n\n const safeRole = await sanitizeOutput(role);\n\n ctx.send({ role: safeRole });\n },\n\n async find(ctx) {\n const roles = await getService('role').find();\n\n const safeRoles = await Promise.all(roles.map(sanitizeOutput));\n\n ctx.send({ roles: safeRoles });\n },\n\n async updateRole(ctx) {\n const roleID = ctx.params.role;\n\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').updateRole(roleID, ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async deleteRole(ctx) {\n const roleID = ctx.params.role;\n\n if (!roleID) {\n await validateDeleteRoleBody(ctx.params);\n }\n\n // Fetch public role.\n const publicRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: 'public' } });\n\n const publicRoleID = publicRole.id;\n\n // Prevent from removing the public role.\n if (roleID.toString() === publicRoleID.toString()) {\n throw new ApplicationError('Cannot delete public role');\n }\n\n await getService('role').deleteRole(roleID, publicRoleID);\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","async","errors","require$$1","getService","require$$2","validateDeleteRoleBody","require$$3","ApplicationError","ValidationError","sanitizeOutput","role","sanitizeLocalizationFields","strapi","plugin","service","schema","getModel","pipe","createRole","ctx","isEmpty","request","body","send","ok","findOne","id","params","notFound","safeRole","find","roles","safeRoles","Promise","all","map","updateRole","roleID","deleteRole","publicRole","db","query","where","type","publicRoleID","toString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.mjs","sources":["../../../server/controllers/role.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { async, errors } = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateDeleteRoleBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError } = errors;\n\nconst sanitizeOutput = async (role) => {\n const { sanitizeLocalizationFields } = strapi.plugin('i18n').service('sanitize');\n const schema = strapi.getModel('plugin::users-permissions.role');\n\n return async.pipe(sanitizeLocalizationFields(schema))(role);\n};\n\nmodule.exports = {\n /**\n * Default action.\n *\n * @return {Object}\n */\n async createRole(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').createRole(ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async findOne(ctx) {\n const { id } = ctx.params;\n\n const role = await getService('role').findOne(id);\n\n if (!role) {\n return ctx.notFound();\n }\n\n const safeRole = await sanitizeOutput(role);\n\n ctx.send({ role: safeRole });\n },\n\n async find(ctx) {\n const roles = await getService('role').find();\n\n const safeRoles = await Promise.all(roles.map(sanitizeOutput));\n\n ctx.send({ roles: safeRoles });\n },\n\n async updateRole(ctx) {\n const roleID = ctx.params.role;\n\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').updateRole(roleID, ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async deleteRole(ctx) {\n const roleID = ctx.params.role;\n\n if (!roleID) {\n await validateDeleteRoleBody(ctx.params);\n }\n\n // Fetch public role.\n const publicRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: 'public' } });\n\n const publicRoleID = publicRole.id;\n\n // Prevent from removing the public role.\n if (roleID.toString() === publicRoleID.toString()) {\n throw new ApplicationError('Cannot delete public role');\n }\n\n await getService('role').deleteRole(roleID, publicRoleID);\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","async","errors","require$$1","getService","require$$2","validateDeleteRoleBody","require$$3","ApplicationError","ValidationError","sanitizeOutput","role","sanitizeLocalizationFields","strapi","plugin","service","schema","getModel","pipe","createRole","ctx","isEmpty","request","body","send","ok","findOne","id","params","notFound","safeRole","find","roles","safeRoles","Promise","all","map","updateRole","roleID","deleteRole","publicRole","db","query","where","type","publicRoleID","toString"],"mappings":"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"}
1
+ {"version":3,"file":"role.mjs","sources":["../../../server/controllers/role.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { async, errors } = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateDeleteRoleBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError } = errors;\n\nconst sanitizeOutput = async (role) => {\n const { sanitizeLocalizationFields } = strapi.plugin('i18n').service('sanitize');\n const schema = strapi.getModel('plugin::users-permissions.role');\n\n return async.pipe(sanitizeLocalizationFields(schema))(role);\n};\n\nmodule.exports = {\n /**\n * Default action.\n *\n * @return {Object}\n */\n async createRole(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').createRole(ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async findOne(ctx) {\n const { id } = ctx.params;\n\n const role = await getService('role').findOne(id);\n\n if (!role) {\n return ctx.notFound();\n }\n\n const safeRole = await sanitizeOutput(role);\n\n ctx.send({ role: safeRole });\n },\n\n async find(ctx) {\n const roles = await getService('role').find();\n\n const safeRoles = await Promise.all(roles.map(sanitizeOutput));\n\n ctx.send({ roles: safeRoles });\n },\n\n async updateRole(ctx) {\n const roleID = ctx.params.role;\n\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await getService('role').updateRole(roleID, ctx.request.body);\n\n ctx.send({ ok: true });\n },\n\n async deleteRole(ctx) {\n const roleID = ctx.params.role;\n\n if (!roleID) {\n await validateDeleteRoleBody(ctx.params);\n }\n\n // Fetch public role.\n const publicRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: 'public' } });\n\n const publicRoleID = publicRole.id;\n\n // Prevent from removing the public role.\n if (roleID.toString() === publicRoleID.toString()) {\n throw new ApplicationError('Cannot delete public role');\n }\n\n await getService('role').deleteRole(roleID, publicRoleID);\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","async","errors","require$$1","getService","require$$2","validateDeleteRoleBody","require$$3","ApplicationError","ValidationError","sanitizeOutput","role","sanitizeLocalizationFields","strapi","plugin","service","schema","getModel","pipe","createRole","ctx","isEmpty","request","body","send","ok","findOne","id","params","notFound","safeRole","find","roles","safeRoles","Promise","all","map","updateRole","roleID","deleteRole","publicRole","db","query","where","type","publicRoleID","toString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sources":["../../../server/controllers/settings.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { ValidationError } = require('@strapi/utils').errors;\nconst { getService } = require('../utils');\nconst { isValidEmailTemplate } = require('./validation/email-template');\n\nmodule.exports = {\n async getEmailTemplate(ctx) {\n ctx.send(await strapi.store({ type: 'plugin', name: 'users-permissions', key: 'email' }).get());\n },\n\n async updateEmailTemplate(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n const emailTemplates = ctx.request.body['email-templates'];\n\n for (const key of Object.keys(emailTemplates)) {\n const template = emailTemplates[key].options.message;\n\n if (!isValidEmailTemplate(template)) {\n throw new ValidationError('Invalid template');\n }\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'email' })\n .set({ value: emailTemplates });\n\n ctx.send({ ok: true });\n },\n\n async getAdvancedSettings(ctx) {\n const settings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const roles = await getService('role').find();\n\n ctx.send({ settings, roles });\n },\n\n async updateAdvancedSettings(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .set({ value: ctx.request.body });\n\n ctx.send({ ok: true });\n },\n\n async getProviders(ctx) {\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n for (const provider in providers) {\n if (provider !== 'email') {\n providers[provider].redirectUri = strapi\n .plugin('users-permissions')\n .service('providers')\n .buildRedirectUri(provider);\n }\n }\n\n ctx.send(providers);\n },\n\n async updateProviders(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .set({ value: ctx.request.body.providers });\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","ValidationError","require$$1","errors","getService","require$$2","isValidEmailTemplate","require$$3","settings","getEmailTemplate","ctx","send","strapi","store","type","name","key","get","updateEmailTemplate","isEmpty","request","body","emailTemplates","Object","keys","template","options","message","set","value","ok","getAdvancedSettings","roles","find","updateAdvancedSettings","getProviders","providers","provider","redirectUri","plugin","service","buildRedirectUri","updateProviders"],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sources":["../../../server/controllers/settings.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { ValidationError } = require('@strapi/utils').errors;\nconst { getService } = require('../utils');\nconst { isValidEmailTemplate } = require('./validation/email-template');\n\nmodule.exports = {\n async getEmailTemplate(ctx) {\n ctx.send(await strapi.store({ type: 'plugin', name: 'users-permissions', key: 'email' }).get());\n },\n\n async updateEmailTemplate(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n const emailTemplates = ctx.request.body['email-templates'];\n\n for (const key of Object.keys(emailTemplates)) {\n const template = emailTemplates[key].options.message;\n\n if (!isValidEmailTemplate(template)) {\n throw new ValidationError('Invalid template');\n }\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'email' })\n .set({ value: emailTemplates });\n\n ctx.send({ ok: true });\n },\n\n async getAdvancedSettings(ctx) {\n const settings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const roles = await getService('role').find();\n\n ctx.send({ settings, roles });\n },\n\n async updateAdvancedSettings(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .set({ value: ctx.request.body });\n\n ctx.send({ ok: true });\n },\n\n async getProviders(ctx) {\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n for (const provider in providers) {\n if (provider !== 'email') {\n providers[provider].redirectUri = strapi\n .plugin('users-permissions')\n .service('providers')\n .buildRedirectUri(provider);\n }\n }\n\n ctx.send(providers);\n },\n\n async updateProviders(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .set({ value: ctx.request.body.providers });\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","ValidationError","require$$1","errors","getService","require$$2","isValidEmailTemplate","require$$3","settings","getEmailTemplate","ctx","send","strapi","store","type","name","key","get","updateEmailTemplate","isEmpty","request","body","emailTemplates","Object","keys","template","options","message","set","value","ok","getAdvancedSettings","roles","find","updateAdvancedSettings","getProviders","providers","provider","redirectUri","plugin","service","buildRedirectUri","updateProviders"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.mjs","sources":["../../../server/controllers/settings.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { ValidationError } = require('@strapi/utils').errors;\nconst { getService } = require('../utils');\nconst { isValidEmailTemplate } = require('./validation/email-template');\n\nmodule.exports = {\n async getEmailTemplate(ctx) {\n ctx.send(await strapi.store({ type: 'plugin', name: 'users-permissions', key: 'email' }).get());\n },\n\n async updateEmailTemplate(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n const emailTemplates = ctx.request.body['email-templates'];\n\n for (const key of Object.keys(emailTemplates)) {\n const template = emailTemplates[key].options.message;\n\n if (!isValidEmailTemplate(template)) {\n throw new ValidationError('Invalid template');\n }\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'email' })\n .set({ value: emailTemplates });\n\n ctx.send({ ok: true });\n },\n\n async getAdvancedSettings(ctx) {\n const settings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const roles = await getService('role').find();\n\n ctx.send({ settings, roles });\n },\n\n async updateAdvancedSettings(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .set({ value: ctx.request.body });\n\n ctx.send({ ok: true });\n },\n\n async getProviders(ctx) {\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n for (const provider in providers) {\n if (provider !== 'email') {\n providers[provider].redirectUri = strapi\n .plugin('users-permissions')\n .service('providers')\n .buildRedirectUri(provider);\n }\n }\n\n ctx.send(providers);\n },\n\n async updateProviders(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .set({ value: ctx.request.body.providers });\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","ValidationError","require$$1","errors","getService","require$$2","isValidEmailTemplate","require$$3","settings","getEmailTemplate","ctx","send","strapi","store","type","name","key","get","updateEmailTemplate","isEmpty","request","body","emailTemplates","Object","keys","template","options","message","set","value","ok","getAdvancedSettings","roles","find","updateAdvancedSettings","getProviders","providers","provider","redirectUri","plugin","service","buildRedirectUri","updateProviders"],"mappings":"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"}
1
+ {"version":3,"file":"settings.mjs","sources":["../../../server/controllers/settings.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { ValidationError } = require('@strapi/utils').errors;\nconst { getService } = require('../utils');\nconst { isValidEmailTemplate } = require('./validation/email-template');\n\nmodule.exports = {\n async getEmailTemplate(ctx) {\n ctx.send(await strapi.store({ type: 'plugin', name: 'users-permissions', key: 'email' }).get());\n },\n\n async updateEmailTemplate(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n const emailTemplates = ctx.request.body['email-templates'];\n\n for (const key of Object.keys(emailTemplates)) {\n const template = emailTemplates[key].options.message;\n\n if (!isValidEmailTemplate(template)) {\n throw new ValidationError('Invalid template');\n }\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'email' })\n .set({ value: emailTemplates });\n\n ctx.send({ ok: true });\n },\n\n async getAdvancedSettings(ctx) {\n const settings = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const roles = await getService('role').find();\n\n ctx.send({ settings, roles });\n },\n\n async updateAdvancedSettings(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .set({ value: ctx.request.body });\n\n ctx.send({ ok: true });\n },\n\n async getProviders(ctx) {\n const providers = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .get();\n\n for (const provider in providers) {\n if (provider !== 'email') {\n providers[provider].redirectUri = strapi\n .plugin('users-permissions')\n .service('providers')\n .buildRedirectUri(provider);\n }\n }\n\n ctx.send(providers);\n },\n\n async updateProviders(ctx) {\n if (_.isEmpty(ctx.request.body)) {\n throw new ValidationError('Request body cannot be empty');\n }\n\n await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n .set({ value: ctx.request.body.providers });\n\n ctx.send({ ok: true });\n },\n};\n"],"names":["_","require$$0","ValidationError","require$$1","errors","getService","require$$2","isValidEmailTemplate","require$$3","settings","getEmailTemplate","ctx","send","strapi","store","type","name","key","get","updateEmailTemplate","isEmpty","request","body","emailTemplates","Object","keys","template","options","message","set","value","ok","getAdvancedSettings","roles","find","updateAdvancedSettings","getProviders","providers","provider","redirectUri","plugin","service","buildRedirectUri","updateProviders"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sources":["../../../server/controllers/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js controller\n *\n * @description: A set of functions called \"actions\" for managing `User`.\n */\n\nconst _ = require('lodash');\nconst utils = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError, NotFoundError } = utils.errors;\n\nconst sanitizeOutput = async (user, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.output(user, schema, { auth });\n};\n\nconst validateQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.validate.query(query, schema, { auth });\n};\n\nconst sanitizeQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.query(query, schema, { auth });\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\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 { email, username, role } = 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 if (!email) 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 ...ctx.request.body,\n email: email.toLowerCase(),\n provider: 'local',\n };\n\n if (!role) {\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advanced.default_role } });\n\n user.role = defaultRole.id;\n }\n\n try {\n const data = await getService('user').add(user);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n\n /**\n * Update a/an user record.\n * @return {Object}\n */\n async update(ctx) {\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { id } = ctx.params;\n const { email, username, password } = ctx.request.body;\n\n const user = await getService('user').fetch(id);\n if (!user) {\n throw new NotFoundError(`User not found`);\n }\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {\n throw new ValidationError('password.notNull');\n }\n\n if (_.has(ctx.request.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(id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {\n throw new ApplicationError('Email already taken');\n }\n ctx.request.body.email = ctx.request.body.email.toLowerCase();\n }\n\n const updateData = {\n ...ctx.request.body,\n };\n\n const data = await getService('user').edit(user.id, updateData);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedData);\n },\n\n /**\n * Retrieve user records.\n * @return {Object|Array}\n */\n async find(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n const users = await getService('user').fetchAll(sanitizedQuery);\n\n ctx.body = await Promise.all(users.map((user) => sanitizeOutput(user, ctx)));\n },\n\n /**\n * Retrieve a user record.\n * @return {Object}\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n let data = await getService('user').fetch(id, sanitizedQuery);\n\n if (data) {\n data = await sanitizeOutput(data, ctx);\n }\n\n ctx.body = data;\n },\n\n /**\n * Retrieve user count.\n * @return {Number}\n */\n async count(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n ctx.body = await getService('user').count(sanitizedQuery);\n },\n\n /**\n * Destroy a/an user record.\n * @return {Object}\n */\n async destroy(ctx) {\n const { id } = ctx.params;\n\n const data = await getService('user').remove({ id });\n const sanitizedUser = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedUser);\n },\n\n /**\n * Retrieve authenticated user.\n * @return {Object|Array}\n */\n async me(ctx) {\n const authUser = ctx.state.user;\n const { query } = ctx;\n\n if (!authUser) {\n return ctx.unauthorized();\n }\n\n await validateQuery(query, ctx);\n const sanitizedQuery = await sanitizeQuery(query, ctx);\n const user = await getService('user').fetch(authUser.id, sanitizedQuery);\n\n ctx.body = await sanitizeOutput(user, ctx);\n },\n};\n"],"names":["_","require$$0","utils","require$$1","getService","require$$2","validateCreateUserBody","validateUpdateUserBody","require$$3","ApplicationError","ValidationError","NotFoundError","errors","sanitizeOutput","user","ctx","schema","strapi","getModel","auth","state","contentAPI","sanitize","output","validateQuery","query","validate","sanitizeQuery","create","advanced","store","type","name","key","get","request","body","email","username","role","userWithSameUsername","db","findOne","where","unique_email","userWithSameEmail","toLowerCase","provider","defaultRole","default_role","id","data","add","sanitizedData","created","error","message","update","advancedConfigs","params","password","fetch","has","toString","updateData","edit","send","find","sanitizedQuery","users","fetchAll","Promise","all","map","count","destroy","remove","sanitizedUser","me","authUser","unauthorized"],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sources":["../../../server/controllers/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js controller\n *\n * @description: A set of functions called \"actions\" for managing `User`.\n */\n\nconst _ = require('lodash');\nconst utils = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError, NotFoundError } = utils.errors;\n\nconst sanitizeOutput = async (user, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.output(user, schema, { auth });\n};\n\nconst validateQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.validate.query(query, schema, { auth });\n};\n\nconst sanitizeQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.query(query, schema, { auth });\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\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 { email, username, role } = 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 if (!email) 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 ...ctx.request.body,\n email: email.toLowerCase(),\n provider: 'local',\n };\n\n if (!role) {\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advanced.default_role } });\n\n user.role = defaultRole.id;\n }\n\n try {\n const data = await getService('user').add(user);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n\n /**\n * Update a/an user record.\n * @return {Object}\n */\n async update(ctx) {\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { id } = ctx.params;\n const { email, username, password } = ctx.request.body;\n\n const user = await getService('user').fetch(id);\n if (!user) {\n throw new NotFoundError(`User not found`);\n }\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {\n throw new ValidationError('password.notNull');\n }\n\n if (_.has(ctx.request.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(id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {\n throw new ApplicationError('Email already taken');\n }\n ctx.request.body.email = ctx.request.body.email.toLowerCase();\n }\n\n const updateData = {\n ...ctx.request.body,\n };\n\n const data = await getService('user').edit(user.id, updateData);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedData);\n },\n\n /**\n * Retrieve user records.\n * @return {Object|Array}\n */\n async find(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n const users = await getService('user').fetchAll(sanitizedQuery);\n\n ctx.body = await Promise.all(users.map((user) => sanitizeOutput(user, ctx)));\n },\n\n /**\n * Retrieve a user record.\n * @return {Object}\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n let data = await getService('user').fetch(id, sanitizedQuery);\n\n if (data) {\n data = await sanitizeOutput(data, ctx);\n }\n\n ctx.body = data;\n },\n\n /**\n * Retrieve user count.\n * @return {Number}\n */\n async count(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n ctx.body = await getService('user').count(sanitizedQuery);\n },\n\n /**\n * Destroy a/an user record.\n * @return {Object}\n */\n async destroy(ctx) {\n const { id } = ctx.params;\n\n const data = await getService('user').remove({ id });\n const sanitizedUser = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedUser);\n },\n\n /**\n * Retrieve authenticated user.\n * @return {Object|Array}\n */\n async me(ctx) {\n const authUser = ctx.state.user;\n const { query } = ctx;\n\n if (!authUser) {\n return ctx.unauthorized();\n }\n\n await validateQuery(query, ctx);\n const sanitizedQuery = await sanitizeQuery(query, ctx);\n const user = await getService('user').fetch(authUser.id, sanitizedQuery);\n\n ctx.body = await sanitizeOutput(user, ctx);\n },\n};\n"],"names":["_","require$$0","utils","require$$1","getService","require$$2","validateCreateUserBody","validateUpdateUserBody","require$$3","ApplicationError","ValidationError","NotFoundError","errors","sanitizeOutput","user","ctx","schema","strapi","getModel","auth","state","contentAPI","sanitize","output","validateQuery","query","validate","sanitizeQuery","create","advanced","store","type","name","key","get","request","body","email","username","role","userWithSameUsername","db","findOne","where","unique_email","userWithSameEmail","toLowerCase","provider","defaultRole","default_role","id","data","add","sanitizedData","created","error","message","update","advancedConfigs","params","password","fetch","has","toString","updateData","edit","send","find","sanitizedQuery","users","fetchAll","Promise","all","map","count","destroy","remove","sanitizedUser","me","authUser","unauthorized"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.mjs","sources":["../../../server/controllers/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js controller\n *\n * @description: A set of functions called \"actions\" for managing `User`.\n */\n\nconst _ = require('lodash');\nconst utils = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError, NotFoundError } = utils.errors;\n\nconst sanitizeOutput = async (user, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.output(user, schema, { auth });\n};\n\nconst validateQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.validate.query(query, schema, { auth });\n};\n\nconst sanitizeQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.query(query, schema, { auth });\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\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 { email, username, role } = 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 if (!email) 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 ...ctx.request.body,\n email: email.toLowerCase(),\n provider: 'local',\n };\n\n if (!role) {\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advanced.default_role } });\n\n user.role = defaultRole.id;\n }\n\n try {\n const data = await getService('user').add(user);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n\n /**\n * Update a/an user record.\n * @return {Object}\n */\n async update(ctx) {\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { id } = ctx.params;\n const { email, username, password } = ctx.request.body;\n\n const user = await getService('user').fetch(id);\n if (!user) {\n throw new NotFoundError(`User not found`);\n }\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {\n throw new ValidationError('password.notNull');\n }\n\n if (_.has(ctx.request.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(id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {\n throw new ApplicationError('Email already taken');\n }\n ctx.request.body.email = ctx.request.body.email.toLowerCase();\n }\n\n const updateData = {\n ...ctx.request.body,\n };\n\n const data = await getService('user').edit(user.id, updateData);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedData);\n },\n\n /**\n * Retrieve user records.\n * @return {Object|Array}\n */\n async find(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n const users = await getService('user').fetchAll(sanitizedQuery);\n\n ctx.body = await Promise.all(users.map((user) => sanitizeOutput(user, ctx)));\n },\n\n /**\n * Retrieve a user record.\n * @return {Object}\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n let data = await getService('user').fetch(id, sanitizedQuery);\n\n if (data) {\n data = await sanitizeOutput(data, ctx);\n }\n\n ctx.body = data;\n },\n\n /**\n * Retrieve user count.\n * @return {Number}\n */\n async count(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n ctx.body = await getService('user').count(sanitizedQuery);\n },\n\n /**\n * Destroy a/an user record.\n * @return {Object}\n */\n async destroy(ctx) {\n const { id } = ctx.params;\n\n const data = await getService('user').remove({ id });\n const sanitizedUser = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedUser);\n },\n\n /**\n * Retrieve authenticated user.\n * @return {Object|Array}\n */\n async me(ctx) {\n const authUser = ctx.state.user;\n const { query } = ctx;\n\n if (!authUser) {\n return ctx.unauthorized();\n }\n\n await validateQuery(query, ctx);\n const sanitizedQuery = await sanitizeQuery(query, ctx);\n const user = await getService('user').fetch(authUser.id, sanitizedQuery);\n\n ctx.body = await sanitizeOutput(user, ctx);\n },\n};\n"],"names":["_","require$$0","utils","require$$1","getService","require$$2","validateCreateUserBody","validateUpdateUserBody","require$$3","ApplicationError","ValidationError","NotFoundError","errors","sanitizeOutput","user","ctx","schema","strapi","getModel","auth","state","contentAPI","sanitize","output","validateQuery","query","validate","sanitizeQuery","create","advanced","store","type","name","key","get","request","body","email","username","role","userWithSameUsername","db","findOne","where","unique_email","userWithSameEmail","toLowerCase","provider","defaultRole","default_role","id","data","add","sanitizedData","created","error","message","update","advancedConfigs","params","password","fetch","has","toString","updateData","edit","send","find","sanitizedQuery","users","fetchAll","Promise","all","map","count","destroy","remove","sanitizedUser","me","authUser","unauthorized"],"mappings":";;;;;;;;;;AAEA;;;;AAIA,KAEA,MAAMA,CAAIC,GAAAA,UAAAA;AACV,IAAA,MAAMC,KAAQC,GAAAA,UAAAA;IACd,MAAM,EAAEC,UAAU,EAAE,GAAGC,YAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,sBAAsB,EAAEC,sBAAsB,EAAE,GAAGC,aAAAA,EAAAA;IAE3D,MAAM,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,aAAa,EAAE,GAAGT,KAAAA,CAAMU,MAAM;IAEzE,MAAMC,cAAAA,GAAiB,OAAOC,IAAMC,EAAAA,GAAAA,GAAAA;QAClC,MAAMC,MAAAA,GAASC,MAAOC,CAAAA,QAAQ,CAAC,gCAAA,CAAA;AAC/B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGJ,IAAIK,KAAK;QAE1B,OAAOH,MAAAA,CAAOI,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACT,MAAME,MAAQ,EAAA;AAAEG,YAAAA;AAAI,SAAA,CAAA;AAC/D,KAAA;IAEA,MAAMK,aAAAA,GAAgB,OAAOC,KAAOV,EAAAA,GAAAA,GAAAA;QAClC,MAAMC,MAAAA,GAASC,MAAOC,CAAAA,QAAQ,CAAC,gCAAA,CAAA;AAC/B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGJ,IAAIK,KAAK;QAE1B,OAAOH,MAAAA,CAAOI,UAAU,CAACK,QAAQ,CAACD,KAAK,CAACA,OAAOT,MAAQ,EAAA;AAAEG,YAAAA;AAAI,SAAA,CAAA;AAC/D,KAAA;IAEA,MAAMQ,aAAAA,GAAgB,OAAOF,KAAOV,EAAAA,GAAAA,GAAAA;QAClC,MAAMC,MAAAA,GAASC,MAAOC,CAAAA,QAAQ,CAAC,gCAAA,CAAA;AAC/B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGJ,IAAIK,KAAK;QAE1B,OAAOH,MAAAA,CAAOI,UAAU,CAACC,QAAQ,CAACG,KAAK,CAACA,OAAOT,MAAQ,EAAA;AAAEG,YAAAA;AAAI,SAAA,CAAA;AAC/D,KAAA;IAEAL,IAAiB,GAAA;AACjB;;;OAIE,MAAMc,QAAOb,GAAG,EAAA;AACd,YAAA,MAAMc,QAAW,GAAA,MAAMZ,MACpBa,CAAAA,KAAK,CAAC;gBAAEC,IAAM,EAAA,QAAA;gBAAUC,IAAM,EAAA,mBAAA;gBAAqBC,GAAK,EAAA;eACxDC,GAAG,EAAA;AAEN,YAAA,MAAM5B,sBAAuBS,CAAAA,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAAA;YAE7C,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGxB,GAAAA,CAAIoB,OAAO,CAACC,IAAI;YAElD,MAAMI,oBAAAA,GAAuB,MAAMvB,MAAOwB,CAAAA,EAAE,CACzChB,KAAK,CAAC,gCACNiB,CAAAA,CAAAA,OAAO,CAAC;gBAAEC,KAAO,EAAA;AAAEL,oBAAAA;AAAQ;AAAI,aAAA,CAAA;AAElC,YAAA,IAAIE,oBAAsB,EAAA;AACxB,gBAAA,IAAI,CAACH,KAAAA,EAAO,MAAM,IAAI5B,gBAAiB,CAAA,wBAAA,CAAA;AACxC;YAED,IAAIoB,QAAAA,CAASe,YAAY,EAAE;gBACzB,MAAMC,iBAAAA,GAAoB,MAAM5B,MAAOwB,CAAAA,EAAE,CACtChB,KAAK,CAAC,gCACNiB,CAAAA,CAAAA,OAAO,CAAC;oBAAEC,KAAO,EAAA;AAAEN,wBAAAA,KAAAA,EAAOA,MAAMS,WAAW;AAAI;AAAA,iBAAA,CAAA;AAElD,gBAAA,IAAID,iBAAmB,EAAA;AACrB,oBAAA,MAAM,IAAIpC,gBAAiB,CAAA,qBAAA,CAAA;AAC5B;AACF;AAED,YAAA,MAAMK,IAAO,GAAA;gBACX,GAAGC,GAAAA,CAAIoB,OAAO,CAACC,IAAI;AACnBC,gBAAAA,KAAAA,EAAOA,MAAMS,WAAW,EAAA;gBACxBC,QAAU,EAAA;AAChB,aAAA;AAEI,YAAA,IAAI,CAACR,IAAM,EAAA;gBACT,MAAMS,WAAAA,GAAc,MAAM/B,MAAOwB,CAAAA,EAAE,CAChChB,KAAK,CAAC,gCACNiB,CAAAA,CAAAA,OAAO,CAAC;oBAAEC,KAAO,EAAA;AAAEZ,wBAAAA,IAAAA,EAAMF,SAASoB;AAAc;AAAA,iBAAA,CAAA;gBAEnDnC,IAAKyB,CAAAA,IAAI,GAAGS,WAAAA,CAAYE,EAAE;AAC3B;YAED,IAAI;AACF,gBAAA,MAAMC,IAAO,GAAA,MAAM/C,UAAW,CAAA,MAAA,CAAA,CAAQgD,GAAG,CAACtC,IAAAA,CAAAA;gBAC1C,MAAMuC,aAAAA,GAAgB,MAAMxC,cAAAA,CAAesC,IAAMpC,EAAAA,GAAAA,CAAAA;AAEjDA,gBAAAA,GAAAA,CAAIuC,OAAO,CAACD,aAAAA,CAAAA;AACb,aAAA,CAAC,OAAOE,KAAO,EAAA;gBACd,MAAM,IAAI9C,gBAAiB8C,CAAAA,KAAAA,CAAMC,OAAO,CAAA;AACzC;AACF,SAAA;AAEH;;;OAIE,MAAMC,QAAO1C,GAAG,EAAA;AACd,YAAA,MAAM2C,eAAkB,GAAA,MAAMzC,MAC3Ba,CAAAA,KAAK,CAAC;gBAAEC,IAAM,EAAA,QAAA;gBAAUC,IAAM,EAAA,mBAAA;gBAAqBC,GAAK,EAAA;eACxDC,GAAG,EAAA;AAEN,YAAA,MAAM,EAAEgB,EAAE,EAAE,GAAGnC,IAAI4C,MAAM;YACzB,MAAM,EAAEtB,KAAK,EAAEC,QAAQ,EAAEsB,QAAQ,EAAE,GAAG7C,GAAAA,CAAIoB,OAAO,CAACC,IAAI;AAEtD,YAAA,MAAMtB,IAAO,GAAA,MAAMV,UAAW,CAAA,MAAA,CAAA,CAAQyD,KAAK,CAACX,EAAAA,CAAAA;AAC5C,YAAA,IAAI,CAACpC,IAAM,EAAA;AACT,gBAAA,MAAM,IAAIH,aAAAA,CAAc,CAAC,cAAc,CAAC,CAAA;AACzC;AAED,YAAA,MAAMJ,sBAAuBQ,CAAAA,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAAA;AAE7C,YAAA,IAAItB,IAAKiC,CAAAA,QAAQ,KAAK,OAAA,IAAW/C,EAAE8D,GAAG,CAAC/C,GAAIoB,CAAAA,OAAO,CAACC,IAAI,EAAE,UAAA,CAAA,IAAe,CAACwB,QAAU,EAAA;AACjF,gBAAA,MAAM,IAAIlD,eAAgB,CAAA,kBAAA,CAAA;AAC3B;YAED,IAAIV,CAAAA,CAAE8D,GAAG,CAAC/C,GAAAA,CAAIoB,OAAO,CAACC,IAAI,EAAE,UAAa,CAAA,EAAA;gBACvC,MAAMI,oBAAAA,GAAuB,MAAMvB,MAAOwB,CAAAA,EAAE,CACzChB,KAAK,CAAC,gCACNiB,CAAAA,CAAAA,OAAO,CAAC;oBAAEC,KAAO,EAAA;AAAEL,wBAAAA;AAAQ;AAAI,iBAAA,CAAA;gBAElC,IAAIE,oBAAAA,IAAwBxC,CAAE+D,CAAAA,QAAQ,CAACvB,oBAAAA,CAAqBU,EAAE,CAAMlD,KAAAA,CAAAA,CAAE+D,QAAQ,CAACb,EAAK,CAAA,EAAA;AAClF,oBAAA,MAAM,IAAIzC,gBAAiB,CAAA,wBAAA,CAAA;AAC5B;AACF;YAED,IAAIT,CAAAA,CAAE8D,GAAG,CAAC/C,GAAIoB,CAAAA,OAAO,CAACC,IAAI,EAAE,OAAA,CAAA,IAAYsB,eAAgBd,CAAAA,YAAY,EAAE;gBACpE,MAAMC,iBAAAA,GAAoB,MAAM5B,MAAOwB,CAAAA,EAAE,CACtChB,KAAK,CAAC,gCACNiB,CAAAA,CAAAA,OAAO,CAAC;oBAAEC,KAAO,EAAA;AAAEN,wBAAAA,KAAAA,EAAOA,MAAMS,WAAW;AAAI;AAAA,iBAAA,CAAA;gBAElD,IAAID,iBAAAA,IAAqB7C,CAAE+D,CAAAA,QAAQ,CAAClB,iBAAAA,CAAkBK,EAAE,CAAMlD,KAAAA,CAAAA,CAAE+D,QAAQ,CAACb,EAAK,CAAA,EAAA;AAC5E,oBAAA,MAAM,IAAIzC,gBAAiB,CAAA,qBAAA,CAAA;AAC5B;AACDM,gBAAAA,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAACC,KAAK,GAAGtB,GAAIoB,CAAAA,OAAO,CAACC,IAAI,CAACC,KAAK,CAACS,WAAW,EAAA;AAC5D;AAED,YAAA,MAAMkB,UAAa,GAAA;gBACjB,GAAGjD,GAAAA,CAAIoB,OAAO,CAACC;AACrB,aAAA;YAEI,MAAMe,IAAAA,GAAO,MAAM/C,UAAW,CAAA,MAAA,CAAA,CAAQ6D,IAAI,CAACnD,IAAAA,CAAKoC,EAAE,EAAEc,UAAAA,CAAAA;YACpD,MAAMX,aAAAA,GAAgB,MAAMxC,cAAAA,CAAesC,IAAMpC,EAAAA,GAAAA,CAAAA;AAEjDA,YAAAA,GAAAA,CAAImD,IAAI,CAACb,aAAAA,CAAAA;AACV,SAAA;AAEH;;;OAIE,MAAMc,MAAKpD,GAAG,EAAA;YACZ,MAAMS,aAAAA,CAAcT,GAAIU,CAAAA,KAAK,EAAEV,GAAAA,CAAAA;AAC/B,YAAA,MAAMqD,cAAiB,GAAA,MAAMzC,aAAcZ,CAAAA,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AACtD,YAAA,MAAMsD,KAAQ,GAAA,MAAMjE,UAAW,CAAA,MAAA,CAAA,CAAQkE,QAAQ,CAACF,cAAAA,CAAAA;AAEhDrD,YAAAA,GAAAA,CAAIqB,IAAI,GAAG,MAAMmC,OAAAA,CAAQC,GAAG,CAACH,KAAMI,CAAAA,GAAG,CAAC,CAAC3D,IAASD,GAAAA,cAAAA,CAAeC,IAAMC,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA;AACvE,SAAA;AAEH;;;OAIE,MAAM2B,SAAQ3B,GAAG,EAAA;AACf,YAAA,MAAM,EAAEmC,EAAE,EAAE,GAAGnC,IAAI4C,MAAM;YACzB,MAAMnC,aAAAA,CAAcT,GAAIU,CAAAA,KAAK,EAAEV,GAAAA,CAAAA;AAC/B,YAAA,MAAMqD,cAAiB,GAAA,MAAMzC,aAAcZ,CAAAA,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAEtD,YAAA,IAAIoC,OAAO,MAAM/C,UAAAA,CAAW,MAAQyD,CAAAA,CAAAA,KAAK,CAACX,EAAIkB,EAAAA,cAAAA,CAAAA;AAE9C,YAAA,IAAIjB,IAAM,EAAA;gBACRA,IAAO,GAAA,MAAMtC,eAAesC,IAAMpC,EAAAA,GAAAA,CAAAA;AACnC;AAEDA,YAAAA,GAAAA,CAAIqB,IAAI,GAAGe,IAAAA;AACZ,SAAA;AAEH;;;OAIE,MAAMuB,OAAM3D,GAAG,EAAA;YACb,MAAMS,aAAAA,CAAcT,GAAIU,CAAAA,KAAK,EAAEV,GAAAA,CAAAA;AAC/B,YAAA,MAAMqD,cAAiB,GAAA,MAAMzC,aAAcZ,CAAAA,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAEtDA,YAAAA,GAAAA,CAAIqB,IAAI,GAAG,MAAMhC,UAAW,CAAA,MAAA,CAAA,CAAQsE,KAAK,CAACN,cAAAA,CAAAA;AAC3C,SAAA;AAEH;;;OAIE,MAAMO,SAAQ5D,GAAG,EAAA;AACf,YAAA,MAAM,EAAEmC,EAAE,EAAE,GAAGnC,IAAI4C,MAAM;AAEzB,YAAA,MAAMR,IAAO,GAAA,MAAM/C,UAAW,CAAA,MAAA,CAAA,CAAQwE,MAAM,CAAC;AAAE1B,gBAAAA;AAAE,aAAA,CAAA;YACjD,MAAM2B,aAAAA,GAAgB,MAAMhE,cAAAA,CAAesC,IAAMpC,EAAAA,GAAAA,CAAAA;AAEjDA,YAAAA,GAAAA,CAAImD,IAAI,CAACW,aAAAA,CAAAA;AACV,SAAA;AAEH;;;OAIE,MAAMC,IAAG/D,GAAG,EAAA;AACV,YAAA,MAAMgE,QAAWhE,GAAAA,GAAAA,CAAIK,KAAK,CAACN,IAAI;YAC/B,MAAM,EAAEW,KAAK,EAAE,GAAGV,GAAAA;AAElB,YAAA,IAAI,CAACgE,QAAU,EAAA;AACb,gBAAA,OAAOhE,IAAIiE,YAAY,EAAA;AACxB;AAED,YAAA,MAAMxD,cAAcC,KAAOV,EAAAA,GAAAA,CAAAA;YAC3B,MAAMqD,cAAAA,GAAiB,MAAMzC,aAAAA,CAAcF,KAAOV,EAAAA,GAAAA,CAAAA;YAClD,MAAMD,IAAAA,GAAO,MAAMV,UAAW,CAAA,MAAA,CAAA,CAAQyD,KAAK,CAACkB,QAAAA,CAAS7B,EAAE,EAAEkB,cAAAA,CAAAA;AAEzDrD,YAAAA,GAAAA,CAAIqB,IAAI,GAAG,MAAMvB,cAAAA,CAAeC,IAAMC,EAAAA,GAAAA,CAAAA;AACvC;AACH,KAAA;;;;;;"}
1
+ {"version":3,"file":"user.mjs","sources":["../../../server/controllers/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js controller\n *\n * @description: A set of functions called \"actions\" for managing `User`.\n */\n\nconst _ = require('lodash');\nconst utils = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError, NotFoundError } = utils.errors;\n\nconst sanitizeOutput = async (user, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.output(user, schema, { auth });\n};\n\nconst validateQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.validate.query(query, schema, { auth });\n};\n\nconst sanitizeQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.query(query, schema, { auth });\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\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 { email, username, role } = 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 if (!email) 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 ...ctx.request.body,\n email: email.toLowerCase(),\n provider: 'local',\n };\n\n if (!role) {\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advanced.default_role } });\n\n user.role = defaultRole.id;\n }\n\n try {\n const data = await getService('user').add(user);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n\n /**\n * Update a/an user record.\n * @return {Object}\n */\n async update(ctx) {\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { id } = ctx.params;\n const { email, username, password } = ctx.request.body;\n\n const user = await getService('user').fetch(id);\n if (!user) {\n throw new NotFoundError(`User not found`);\n }\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {\n throw new ValidationError('password.notNull');\n }\n\n if (_.has(ctx.request.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(id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {\n throw new ApplicationError('Email already taken');\n }\n ctx.request.body.email = ctx.request.body.email.toLowerCase();\n }\n\n const updateData = {\n ...ctx.request.body,\n };\n\n const data = await getService('user').edit(user.id, updateData);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedData);\n },\n\n /**\n * Retrieve user records.\n * @return {Object|Array}\n */\n async find(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n const users = await getService('user').fetchAll(sanitizedQuery);\n\n ctx.body = await Promise.all(users.map((user) => sanitizeOutput(user, ctx)));\n },\n\n /**\n * Retrieve a user record.\n * @return {Object}\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n let data = await getService('user').fetch(id, sanitizedQuery);\n\n if (data) {\n data = await sanitizeOutput(data, ctx);\n }\n\n ctx.body = data;\n },\n\n /**\n * Retrieve user count.\n * @return {Number}\n */\n async count(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n ctx.body = await getService('user').count(sanitizedQuery);\n },\n\n /**\n * Destroy a/an user record.\n * @return {Object}\n */\n async destroy(ctx) {\n const { id } = ctx.params;\n\n const data = await getService('user').remove({ id });\n const sanitizedUser = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedUser);\n },\n\n /**\n * Retrieve authenticated user.\n * @return {Object|Array}\n */\n async me(ctx) {\n const authUser = ctx.state.user;\n const { query } = ctx;\n\n if (!authUser) {\n return ctx.unauthorized();\n }\n\n await validateQuery(query, ctx);\n const sanitizedQuery = await sanitizeQuery(query, ctx);\n const user = await getService('user').fetch(authUser.id, sanitizedQuery);\n\n ctx.body = await sanitizeOutput(user, ctx);\n },\n};\n"],"names":["_","require$$0","utils","require$$1","getService","require$$2","validateCreateUserBody","validateUpdateUserBody","require$$3","ApplicationError","ValidationError","NotFoundError","errors","sanitizeOutput","user","ctx","schema","strapi","getModel","auth","state","contentAPI","sanitize","output","validateQuery","query","validate","sanitizeQuery","create","advanced","store","type","name","key","get","request","body","email","username","role","userWithSameUsername","db","findOne","where","unique_email","userWithSameEmail","toLowerCase","provider","defaultRole","default_role","id","data","add","sanitizedData","created","error","message","update","advancedConfigs","params","password","fetch","has","toString","updateData","edit","send","find","sanitizedQuery","users","fetchAll","Promise","all","map","count","destroy","remove","sanitizedUser","me","authUser","unauthorized"],"mappings":";;;;;;;;;;AAEA;;;;AAIA,KAEA,MAAMA,CAAAA,GAAIC,UAAAA;AACV,IAAA,MAAMC,KAAAA,GAAQC,UAAAA;IACd,MAAM,EAAEC,UAAU,EAAE,GAAGC,YAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,sBAAsB,EAAEC,sBAAsB,EAAE,GAAGC,aAAAA,EAAAA;IAE3D,MAAM,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,aAAa,EAAE,GAAGT,KAAAA,CAAMU,MAAM;IAEzE,MAAMC,cAAAA,GAAiB,OAAOC,IAAAA,EAAMC,GAAAA,GAAAA;QAClC,MAAMC,MAAAA,GAASC,MAAAA,CAAOC,QAAQ,CAAC,gCAAA,CAAA;AAC/B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGJ,IAAIK,KAAK;QAE1B,OAAOH,MAAAA,CAAOI,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACT,MAAME,MAAAA,EAAQ;AAAEG,YAAAA;AAAI,SAAA,CAAA;AAC/D,IAAA,CAAA;IAEA,MAAMK,aAAAA,GAAgB,OAAOC,KAAAA,EAAOV,GAAAA,GAAAA;QAClC,MAAMC,MAAAA,GAASC,MAAAA,CAAOC,QAAQ,CAAC,gCAAA,CAAA;AAC/B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGJ,IAAIK,KAAK;QAE1B,OAAOH,MAAAA,CAAOI,UAAU,CAACK,QAAQ,CAACD,KAAK,CAACA,OAAOT,MAAAA,EAAQ;AAAEG,YAAAA;AAAI,SAAA,CAAA;AAC/D,IAAA,CAAA;IAEA,MAAMQ,aAAAA,GAAgB,OAAOF,KAAAA,EAAOV,GAAAA,GAAAA;QAClC,MAAMC,MAAAA,GAASC,MAAAA,CAAOC,QAAQ,CAAC,gCAAA,CAAA;AAC/B,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAGJ,IAAIK,KAAK;QAE1B,OAAOH,MAAAA,CAAOI,UAAU,CAACC,QAAQ,CAACG,KAAK,CAACA,OAAOT,MAAAA,EAAQ;AAAEG,YAAAA;AAAI,SAAA,CAAA;AAC/D,IAAA,CAAA;IAEAL,IAAAA,GAAiB;AACjB;;;OAIE,MAAMc,QAAOb,GAAG,EAAA;AACd,YAAA,MAAMc,QAAAA,GAAW,MAAMZ,MAAAA,CACpBa,KAAK,CAAC;gBAAEC,IAAAA,EAAM,QAAA;gBAAUC,IAAAA,EAAM,mBAAA;gBAAqBC,GAAAA,EAAK;eACxDC,GAAG,EAAA;AAEN,YAAA,MAAM5B,sBAAAA,CAAuBS,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAAA;YAE7C,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGxB,GAAAA,CAAIoB,OAAO,CAACC,IAAI;YAElD,MAAMI,oBAAAA,GAAuB,MAAMvB,MAAAA,CAAOwB,EAAE,CACzChB,KAAK,CAAC,gCAAA,CAAA,CACNiB,OAAO,CAAC;gBAAEC,KAAAA,EAAO;AAAEL,oBAAAA;AAAQ;AAAE,aAAA,CAAA;AAEhC,YAAA,IAAIE,oBAAAA,EAAsB;AACxB,gBAAA,IAAI,CAACH,KAAAA,EAAO,MAAM,IAAI5B,gBAAAA,CAAiB,wBAAA,CAAA;AAC7C,YAAA;YAEI,IAAIoB,QAAAA,CAASe,YAAY,EAAE;gBACzB,MAAMC,iBAAAA,GAAoB,MAAM5B,MAAAA,CAAOwB,EAAE,CACtChB,KAAK,CAAC,gCAAA,CAAA,CACNiB,OAAO,CAAC;oBAAEC,KAAAA,EAAO;AAAEN,wBAAAA,KAAAA,EAAOA,MAAMS,WAAW;AAAE;AAAE,iBAAA,CAAA;AAElD,gBAAA,IAAID,iBAAAA,EAAmB;AACrB,oBAAA,MAAM,IAAIpC,gBAAAA,CAAiB,qBAAA,CAAA;AACnC,gBAAA;AACA,YAAA;AAEI,YAAA,MAAMK,IAAAA,GAAO;gBACX,GAAGC,GAAAA,CAAIoB,OAAO,CAACC,IAAI;AACnBC,gBAAAA,KAAAA,EAAOA,MAAMS,WAAW,EAAA;gBACxBC,QAAAA,EAAU;AAChB,aAAA;AAEI,YAAA,IAAI,CAACR,IAAAA,EAAM;gBACT,MAAMS,WAAAA,GAAc,MAAM/B,MAAAA,CAAOwB,EAAE,CAChChB,KAAK,CAAC,gCAAA,CAAA,CACNiB,OAAO,CAAC;oBAAEC,KAAAA,EAAO;AAAEZ,wBAAAA,IAAAA,EAAMF,SAASoB;AAAY;AAAE,iBAAA,CAAA;gBAEnDnC,IAAAA,CAAKyB,IAAI,GAAGS,WAAAA,CAAYE,EAAE;AAChC,YAAA;YAEI,IAAI;AACF,gBAAA,MAAMC,IAAAA,GAAO,MAAM/C,UAAAA,CAAW,MAAA,CAAA,CAAQgD,GAAG,CAACtC,IAAAA,CAAAA;gBAC1C,MAAMuC,aAAAA,GAAgB,MAAMxC,cAAAA,CAAesC,IAAAA,EAAMpC,GAAAA,CAAAA;AAEjDA,gBAAAA,GAAAA,CAAIuC,OAAO,CAACD,aAAAA,CAAAA;AAClB,YAAA,CAAA,CAAM,OAAOE,KAAAA,EAAO;gBACd,MAAM,IAAI9C,gBAAAA,CAAiB8C,KAAAA,CAAMC,OAAO,CAAA;AAC9C,YAAA;AACA,QAAA,CAAA;AAEA;;;OAIE,MAAMC,QAAO1C,GAAG,EAAA;AACd,YAAA,MAAM2C,eAAAA,GAAkB,MAAMzC,MAAAA,CAC3Ba,KAAK,CAAC;gBAAEC,IAAAA,EAAM,QAAA;gBAAUC,IAAAA,EAAM,mBAAA;gBAAqBC,GAAAA,EAAK;eACxDC,GAAG,EAAA;AAEN,YAAA,MAAM,EAAEgB,EAAE,EAAE,GAAGnC,IAAI4C,MAAM;YACzB,MAAM,EAAEtB,KAAK,EAAEC,QAAQ,EAAEsB,QAAQ,EAAE,GAAG7C,GAAAA,CAAIoB,OAAO,CAACC,IAAI;AAEtD,YAAA,MAAMtB,IAAAA,GAAO,MAAMV,UAAAA,CAAW,MAAA,CAAA,CAAQyD,KAAK,CAACX,EAAAA,CAAAA;AAC5C,YAAA,IAAI,CAACpC,IAAAA,EAAM;AACT,gBAAA,MAAM,IAAIH,aAAAA,CAAc,CAAC,cAAc,CAAC,CAAA;AAC9C,YAAA;AAEI,YAAA,MAAMJ,sBAAAA,CAAuBQ,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAAA;AAE7C,YAAA,IAAItB,IAAAA,CAAKiC,QAAQ,KAAK,OAAA,IAAW/C,EAAE8D,GAAG,CAAC/C,GAAAA,CAAIoB,OAAO,CAACC,IAAI,EAAE,UAAA,CAAA,IAAe,CAACwB,QAAAA,EAAU;AACjF,gBAAA,MAAM,IAAIlD,eAAAA,CAAgB,kBAAA,CAAA;AAChC,YAAA;YAEI,IAAIV,CAAAA,CAAE8D,GAAG,CAAC/C,GAAAA,CAAIoB,OAAO,CAACC,IAAI,EAAE,UAAA,CAAA,EAAa;gBACvC,MAAMI,oBAAAA,GAAuB,MAAMvB,MAAAA,CAAOwB,EAAE,CACzChB,KAAK,CAAC,gCAAA,CAAA,CACNiB,OAAO,CAAC;oBAAEC,KAAAA,EAAO;AAAEL,wBAAAA;AAAQ;AAAE,iBAAA,CAAA;gBAEhC,IAAIE,oBAAAA,IAAwBxC,CAAAA,CAAE+D,QAAQ,CAACvB,oBAAAA,CAAqBU,EAAE,CAAA,KAAMlD,CAAAA,CAAE+D,QAAQ,CAACb,EAAAA,CAAAA,EAAK;AAClF,oBAAA,MAAM,IAAIzC,gBAAAA,CAAiB,wBAAA,CAAA;AACnC,gBAAA;AACA,YAAA;YAEI,IAAIT,CAAAA,CAAE8D,GAAG,CAAC/C,GAAAA,CAAIoB,OAAO,CAACC,IAAI,EAAE,OAAA,CAAA,IAAYsB,eAAAA,CAAgBd,YAAY,EAAE;gBACpE,MAAMC,iBAAAA,GAAoB,MAAM5B,MAAAA,CAAOwB,EAAE,CACtChB,KAAK,CAAC,gCAAA,CAAA,CACNiB,OAAO,CAAC;oBAAEC,KAAAA,EAAO;AAAEN,wBAAAA,KAAAA,EAAOA,MAAMS,WAAW;AAAE;AAAE,iBAAA,CAAA;gBAElD,IAAID,iBAAAA,IAAqB7C,CAAAA,CAAE+D,QAAQ,CAAClB,iBAAAA,CAAkBK,EAAE,CAAA,KAAMlD,CAAAA,CAAE+D,QAAQ,CAACb,EAAAA,CAAAA,EAAK;AAC5E,oBAAA,MAAM,IAAIzC,gBAAAA,CAAiB,qBAAA,CAAA;AACnC,gBAAA;AACMM,gBAAAA,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAACC,KAAK,GAAGtB,GAAAA,CAAIoB,OAAO,CAACC,IAAI,CAACC,KAAK,CAACS,WAAW,EAAA;AACjE,YAAA;AAEI,YAAA,MAAMkB,UAAAA,GAAa;gBACjB,GAAGjD,GAAAA,CAAIoB,OAAO,CAACC;AACrB,aAAA;YAEI,MAAMe,IAAAA,GAAO,MAAM/C,UAAAA,CAAW,MAAA,CAAA,CAAQ6D,IAAI,CAACnD,IAAAA,CAAKoC,EAAE,EAAEc,UAAAA,CAAAA;YACpD,MAAMX,aAAAA,GAAgB,MAAMxC,cAAAA,CAAesC,IAAAA,EAAMpC,GAAAA,CAAAA;AAEjDA,YAAAA,GAAAA,CAAImD,IAAI,CAACb,aAAAA,CAAAA;AACb,QAAA,CAAA;AAEA;;;OAIE,MAAMc,MAAKpD,GAAG,EAAA;YACZ,MAAMS,aAAAA,CAAcT,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAC/B,YAAA,MAAMqD,cAAAA,GAAiB,MAAMzC,aAAAA,CAAcZ,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AACtD,YAAA,MAAMsD,KAAAA,GAAQ,MAAMjE,UAAAA,CAAW,MAAA,CAAA,CAAQkE,QAAQ,CAACF,cAAAA,CAAAA;AAEhDrD,YAAAA,GAAAA,CAAIqB,IAAI,GAAG,MAAMmC,OAAAA,CAAQC,GAAG,CAACH,KAAAA,CAAMI,GAAG,CAAC,CAAC3D,IAAAA,GAASD,cAAAA,CAAeC,IAAAA,EAAMC,GAAAA,CAAAA,CAAAA,CAAAA;AAC1E,QAAA,CAAA;AAEA;;;OAIE,MAAM2B,SAAQ3B,GAAG,EAAA;AACf,YAAA,MAAM,EAAEmC,EAAE,EAAE,GAAGnC,IAAI4C,MAAM;YACzB,MAAMnC,aAAAA,CAAcT,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAC/B,YAAA,MAAMqD,cAAAA,GAAiB,MAAMzC,aAAAA,CAAcZ,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAEtD,YAAA,IAAIoC,OAAO,MAAM/C,UAAAA,CAAW,MAAA,CAAA,CAAQyD,KAAK,CAACX,EAAAA,EAAIkB,cAAAA,CAAAA;AAE9C,YAAA,IAAIjB,IAAAA,EAAM;gBACRA,IAAAA,GAAO,MAAMtC,eAAesC,IAAAA,EAAMpC,GAAAA,CAAAA;AACxC,YAAA;AAEIA,YAAAA,GAAAA,CAAIqB,IAAI,GAAGe,IAAAA;AACf,QAAA,CAAA;AAEA;;;OAIE,MAAMuB,OAAM3D,GAAG,EAAA;YACb,MAAMS,aAAAA,CAAcT,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAC/B,YAAA,MAAMqD,cAAAA,GAAiB,MAAMzC,aAAAA,CAAcZ,GAAAA,CAAIU,KAAK,EAAEV,GAAAA,CAAAA;AAEtDA,YAAAA,GAAAA,CAAIqB,IAAI,GAAG,MAAMhC,UAAAA,CAAW,MAAA,CAAA,CAAQsE,KAAK,CAACN,cAAAA,CAAAA;AAC9C,QAAA,CAAA;AAEA;;;OAIE,MAAMO,SAAQ5D,GAAG,EAAA;AACf,YAAA,MAAM,EAAEmC,EAAE,EAAE,GAAGnC,IAAI4C,MAAM;AAEzB,YAAA,MAAMR,IAAAA,GAAO,MAAM/C,UAAAA,CAAW,MAAA,CAAA,CAAQwE,MAAM,CAAC;AAAE1B,gBAAAA;AAAE,aAAA,CAAA;YACjD,MAAM2B,aAAAA,GAAgB,MAAMhE,cAAAA,CAAesC,IAAAA,EAAMpC,GAAAA,CAAAA;AAEjDA,YAAAA,GAAAA,CAAImD,IAAI,CAACW,aAAAA,CAAAA;AACb,QAAA,CAAA;AAEA;;;OAIE,MAAMC,IAAG/D,GAAG,EAAA;AACV,YAAA,MAAMgE,QAAAA,GAAWhE,GAAAA,CAAIK,KAAK,CAACN,IAAI;YAC/B,MAAM,EAAEW,KAAK,EAAE,GAAGV,GAAAA;AAElB,YAAA,IAAI,CAACgE,QAAAA,EAAU;AACb,gBAAA,OAAOhE,IAAIiE,YAAY,EAAA;AAC7B,YAAA;AAEI,YAAA,MAAMxD,cAAcC,KAAAA,EAAOV,GAAAA,CAAAA;YAC3B,MAAMqD,cAAAA,GAAiB,MAAMzC,aAAAA,CAAcF,KAAAA,EAAOV,GAAAA,CAAAA;YAClD,MAAMD,IAAAA,GAAO,MAAMV,UAAAA,CAAW,MAAA,CAAA,CAAQyD,KAAK,CAACkB,QAAAA,CAAS7B,EAAE,EAAEkB,cAAAA,CAAAA;AAEzDrD,YAAAA,GAAAA,CAAIqB,IAAI,GAAG,MAAMvB,cAAAA,CAAeC,IAAAA,EAAMC,GAAAA,CAAAA;AAC1C,QAAA;AACA,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sources":["../../../../server/controllers/validation/auth.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst callbackSchema = yup.object({\n identifier: yup.string().required(),\n password: yup.string().required(),\n});\n\nconst createRegisterSchema = (config) =>\n yup.object({\n email: yup.string().email().required(),\n username: yup.string().required(),\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n });\n\nconst sendEmailConfirmationSchema = yup.object({\n email: yup.string().email().required(),\n});\n\nconst validateEmailConfirmationSchema = yup.object({\n confirmation: yup.string().required(),\n});\n\nconst forgotPasswordSchema = yup\n .object({\n email: yup.string().email().required(),\n })\n .noUnknown();\n\nconst createResetPasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n\n code: yup.string().required(),\n })\n .noUnknown();\n\nconst createChangePasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n currentPassword: yup.string().required(),\n })\n .noUnknown();\n\nmodule.exports = {\n validateCallbackBody: validateYupSchema(callbackSchema),\n validateRegisterBody: (payload, config) =>\n validateYupSchema(createRegisterSchema(config))(payload),\n validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),\n validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),\n validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),\n validateResetPasswordBody: (payload, config) =>\n validateYupSchema(createResetPasswordSchema(config))(payload),\n validateChangePasswordBody: (payload, config) =>\n validateYupSchema(createChangePasswordSchema(config))(payload),\n};\n"],"names":["yup","validateYupSchema","require$$0","callbackSchema","object","identifier","string","required","password","createRegisterSchema","config","email","username","test","value","isValid","TextEncoder","encode","length","createError","message","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sources":["../../../../server/controllers/validation/auth.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst callbackSchema = yup.object({\n identifier: yup.string().required(),\n password: yup.string().required(),\n});\n\nconst createRegisterSchema = (config) =>\n yup.object({\n email: yup.string().email().required(),\n username: yup.string().required(),\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n });\n\nconst sendEmailConfirmationSchema = yup.object({\n email: yup.string().email().required(),\n});\n\nconst validateEmailConfirmationSchema = yup.object({\n confirmation: yup.string().required(),\n});\n\nconst forgotPasswordSchema = yup\n .object({\n email: yup.string().email().required(),\n })\n .noUnknown();\n\nconst createResetPasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n\n code: yup.string().required(),\n })\n .noUnknown();\n\nconst createChangePasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n currentPassword: yup.string().required(),\n })\n .noUnknown();\n\nmodule.exports = {\n validateCallbackBody: validateYupSchema(callbackSchema),\n validateRegisterBody: (payload, config) =>\n validateYupSchema(createRegisterSchema(config))(payload),\n validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),\n validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),\n validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),\n validateResetPasswordBody: (payload, config) =>\n validateYupSchema(createResetPasswordSchema(config))(payload),\n validateChangePasswordBody: (payload, config) =>\n validateYupSchema(createChangePasswordSchema(config))(payload),\n};\n"],"names":["yup","validateYupSchema","require$$0","callbackSchema","object","identifier","string","required","password","createRegisterSchema","config","email","username","test","value","isValid","TextEncoder","encode","length","createError","message","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.mjs","sources":["../../../../server/controllers/validation/auth.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst callbackSchema = yup.object({\n identifier: yup.string().required(),\n password: yup.string().required(),\n});\n\nconst createRegisterSchema = (config) =>\n yup.object({\n email: yup.string().email().required(),\n username: yup.string().required(),\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n });\n\nconst sendEmailConfirmationSchema = yup.object({\n email: yup.string().email().required(),\n});\n\nconst validateEmailConfirmationSchema = yup.object({\n confirmation: yup.string().required(),\n});\n\nconst forgotPasswordSchema = yup\n .object({\n email: yup.string().email().required(),\n })\n .noUnknown();\n\nconst createResetPasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n\n code: yup.string().required(),\n })\n .noUnknown();\n\nconst createChangePasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n currentPassword: yup.string().required(),\n })\n .noUnknown();\n\nmodule.exports = {\n validateCallbackBody: validateYupSchema(callbackSchema),\n validateRegisterBody: (payload, config) =>\n validateYupSchema(createRegisterSchema(config))(payload),\n validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),\n validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),\n validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),\n validateResetPasswordBody: (payload, config) =>\n validateYupSchema(createResetPasswordSchema(config))(payload),\n validateChangePasswordBody: (payload, config) =>\n validateYupSchema(createChangePasswordSchema(config))(payload),\n};\n"],"names":["yup","validateYupSchema","require$$0","callbackSchema","object","identifier","string","required","password","createRegisterSchema","config","email","username","test","value","isValid","TextEncoder","encode","length","createError","message","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
1
+ {"version":3,"file":"auth.mjs","sources":["../../../../server/controllers/validation/auth.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst callbackSchema = yup.object({\n identifier: yup.string().required(),\n password: yup.string().required(),\n});\n\nconst createRegisterSchema = (config) =>\n yup.object({\n email: yup.string().email().required(),\n username: yup.string().required(),\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n });\n\nconst sendEmailConfirmationSchema = yup.object({\n email: yup.string().email().required(),\n});\n\nconst validateEmailConfirmationSchema = yup.object({\n confirmation: yup.string().required(),\n});\n\nconst forgotPasswordSchema = yup\n .object({\n email: yup.string().email().required(),\n })\n .noUnknown();\n\nconst createResetPasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n\n code: yup.string().required(),\n })\n .noUnknown();\n\nconst createChangePasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n currentPassword: yup.string().required(),\n })\n .noUnknown();\n\nmodule.exports = {\n validateCallbackBody: validateYupSchema(callbackSchema),\n validateRegisterBody: (payload, config) =>\n validateYupSchema(createRegisterSchema(config))(payload),\n validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),\n validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),\n validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),\n validateResetPasswordBody: (payload, config) =>\n validateYupSchema(createResetPasswordSchema(config))(payload),\n validateChangePasswordBody: (payload, config) =>\n validateYupSchema(createChangePasswordSchema(config))(payload),\n};\n"],"names":["yup","validateYupSchema","require$$0","callbackSchema","object","identifier","string","required","password","createRegisterSchema","config","email","username","test","value","isValid","TextEncoder","encode","length","createError","message","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-template.js","sources":["../../../../server/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\nconst { trim } = require('lodash/fp');\nconst {\n template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp },\n} = require('@strapi/utils');\n\nconst invalidPatternsRegexes = [\n // Ignore \"evaluation\" patterns: <% ... %>\n /<%[^=]([\\s\\S]*?)%>/m,\n // Ignore basic string interpolations\n /\\${([^{}]*)}/m,\n];\n\nconst authorizedKeys = [\n 'URL',\n 'ADMIN_URL',\n 'SERVER_URL',\n 'CODE',\n 'USER',\n 'USER.email',\n 'USER.username',\n 'TOKEN',\n];\n\nconst matchAll = (pattern, src) => {\n const matches = [];\n let match;\n\n const regexPatternWithGlobal = RegExp(pattern, 'g');\n\n // eslint-disable-next-line no-cond-assign\n while ((match = regexPatternWithGlobal.exec(src))) {\n const [, group] = match;\n\n matches.push(trim(group));\n }\n\n return matches;\n};\n\nconst isValidEmailTemplate = (template) => {\n // Check for known invalid patterns\n for (const reg of invalidPatternsRegexes) {\n if (reg.test(template)) {\n return false;\n }\n }\n\n const interpolation = {\n // Strict interpolation pattern to match only valid groups\n strict: createStrictInterpolationRegExp(authorizedKeys),\n // Weak interpolation pattern to match as many group as possible.\n loose: createLooseInterpolationRegExp(),\n };\n\n // Compute both strict & loose matches\n const strictMatches = matchAll(interpolation.strict, template);\n const looseMatches = matchAll(interpolation.loose, template);\n\n // If we have more matches with the loose RegExp than with the strict one,\n // then it means that at least one of the interpolation group is invalid\n // Note: In the future, if we wanted to give more details for error formatting\n // purposes, we could return the difference between the two arrays\n if (looseMatches.length > strictMatches.length) {\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n isValidEmailTemplate,\n};\n"],"names":["trim","require$$0","template","createLooseInterpolationRegExp","createStrictInterpolationRegExp","require$$1","invalidPatternsRegexes","authorizedKeys","matchAll","pattern","src","matches","match","regexPatternWithGlobal","RegExp","exec","group","push","isValidEmailTemplate","reg","test","interpolation","strict","loose","strictMatches","looseMatches","length","emailTemplate"],"mappings":";;;;;;;;;;IAEA,MAAM,EAAEA,IAAI,EAAE,GAAGC,UAAAA;IACjB,MAAM,EACJC,UAAU,EAAEC,8BAA8B,EAAEC,+BAA+B,EAAE,EAC9E,GAAGC,UAAAA;AAEJ,IAAA,MAAMC,sBAAyB,GAAA;;AAE7B,QAAA,qBAAA;;AAEA,QAAA;AACD,KAAA;AAED,IAAA,MAAMC,cAAiB,GAAA;AACrB,QAAA,KAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,MAAA;AACA,QAAA,MAAA;AACA,QAAA,YAAA;AACA,QAAA,eAAA;AACA,QAAA;AACD,KAAA;IAED,MAAMC,QAAAA,GAAW,CAACC,OAASC,EAAAA,GAAAA,GAAAA;AACzB,QAAA,MAAMC,UAAU,EAAE;QAClB,IAAIC,KAAAA;QAEJ,MAAMC,sBAAAA,GAAyBC,OAAOL,OAAS,EAAA,GAAA,CAAA;;AAG/C,QAAA,MAAQG,KAAQC,GAAAA,sBAAAA,CAAuBE,IAAI,CAACL,GAAO,CAAA,CAAA;YACjD,MAAM,GAAGM,MAAM,GAAGJ,KAAAA;YAElBD,OAAQM,CAAAA,IAAI,CAACjB,IAAKgB,CAAAA,KAAAA,CAAAA,CAAAA;AACnB;QAED,OAAOL,OAAAA;AACT,KAAA;AAEA,IAAA,MAAMO,uBAAuB,CAAChB,QAAAA,GAAAA;;QAE5B,KAAK,MAAMiB,OAAOb,sBAAwB,CAAA;YACxC,IAAIa,GAAAA,CAAIC,IAAI,CAAClB,QAAW,CAAA,EAAA;gBACtB,OAAO,KAAA;AACR;AACF;AAED,QAAA,MAAMmB,aAAgB,GAAA;;AAEpBC,YAAAA,MAAAA,EAAQlB,+BAAgCG,CAAAA,cAAAA,CAAAA;;YAExCgB,KAAOpB,EAAAA,8BAAAA;AACX,SAAA;;AAGE,QAAA,MAAMqB,aAAgBhB,GAAAA,QAAAA,CAASa,aAAcC,CAAAA,MAAM,EAAEpB,QAAAA,CAAAA;AACrD,QAAA,MAAMuB,YAAejB,GAAAA,QAAAA,CAASa,aAAcE,CAAAA,KAAK,EAAErB,QAAAA,CAAAA;;;;;AAMnD,QAAA,IAAIuB,YAAaC,CAAAA,MAAM,GAAGF,aAAAA,CAAcE,MAAM,EAAE;YAC9C,OAAO,KAAA;AACR;QAED,OAAO,IAAA;AACT,KAAA;IAEAC,aAAiB,GAAA;AACfT,QAAAA;AACF,KAAA;;;;;;"}
1
+ {"version":3,"file":"email-template.js","sources":["../../../../server/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\nconst { trim } = require('lodash/fp');\nconst {\n template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp },\n} = require('@strapi/utils');\n\nconst invalidPatternsRegexes = [\n // Ignore \"evaluation\" patterns: <% ... %>\n /<%[^=]([\\s\\S]*?)%>/m,\n // Ignore basic string interpolations\n /\\${([^{}]*)}/m,\n];\n\nconst authorizedKeys = [\n 'URL',\n 'ADMIN_URL',\n 'SERVER_URL',\n 'CODE',\n 'USER',\n 'USER.email',\n 'USER.username',\n 'TOKEN',\n];\n\nconst matchAll = (pattern, src) => {\n const matches = [];\n let match;\n\n const regexPatternWithGlobal = RegExp(pattern, 'g');\n\n // eslint-disable-next-line no-cond-assign\n while ((match = regexPatternWithGlobal.exec(src))) {\n const [, group] = match;\n\n matches.push(trim(group));\n }\n\n return matches;\n};\n\nconst isValidEmailTemplate = (template) => {\n // Check for known invalid patterns\n for (const reg of invalidPatternsRegexes) {\n if (reg.test(template)) {\n return false;\n }\n }\n\n const interpolation = {\n // Strict interpolation pattern to match only valid groups\n strict: createStrictInterpolationRegExp(authorizedKeys),\n // Weak interpolation pattern to match as many group as possible.\n loose: createLooseInterpolationRegExp(),\n };\n\n // Compute both strict & loose matches\n const strictMatches = matchAll(interpolation.strict, template);\n const looseMatches = matchAll(interpolation.loose, template);\n\n // If we have more matches with the loose RegExp than with the strict one,\n // then it means that at least one of the interpolation group is invalid\n // Note: In the future, if we wanted to give more details for error formatting\n // purposes, we could return the difference between the two arrays\n if (looseMatches.length > strictMatches.length) {\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n isValidEmailTemplate,\n};\n"],"names":["trim","require$$0","template","createLooseInterpolationRegExp","createStrictInterpolationRegExp","require$$1","invalidPatternsRegexes","authorizedKeys","matchAll","pattern","src","matches","match","regexPatternWithGlobal","RegExp","exec","group","push","isValidEmailTemplate","reg","test","interpolation","strict","loose","strictMatches","looseMatches","length","emailTemplate"],"mappings":";;;;;;;;;;IAEA,MAAM,EAAEA,IAAI,EAAE,GAAGC,UAAAA;IACjB,MAAM,EACJC,UAAU,EAAEC,8BAA8B,EAAEC,+BAA+B,EAAE,EAC9E,GAAGC,UAAAA;AAEJ,IAAA,MAAMC,sBAAAA,GAAyB;;AAE7B,QAAA,qBAAA;;AAEA,QAAA;AACD,KAAA;AAED,IAAA,MAAMC,cAAAA,GAAiB;AACrB,QAAA,KAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,MAAA;AACA,QAAA,MAAA;AACA,QAAA,YAAA;AACA,QAAA,eAAA;AACA,QAAA;AACD,KAAA;IAED,MAAMC,QAAAA,GAAW,CAACC,OAAAA,EAASC,GAAAA,GAAAA;AACzB,QAAA,MAAMC,UAAU,EAAE;QAClB,IAAIC,KAAAA;QAEJ,MAAMC,sBAAAA,GAAyBC,OAAOL,OAAAA,EAAS,GAAA,CAAA;;AAG/C,QAAA,MAAQG,KAAAA,GAAQC,sBAAAA,CAAuBE,IAAI,CAACL,GAAAA,CAAAA,CAAO;YACjD,MAAM,GAAGM,MAAM,GAAGJ,KAAAA;YAElBD,OAAAA,CAAQM,IAAI,CAACjB,IAAAA,CAAKgB,KAAAA,CAAAA,CAAAA;AACtB,QAAA;QAEE,OAAOL,OAAAA;AACT,IAAA,CAAA;AAEA,IAAA,MAAMO,uBAAuB,CAAChB,QAAAA,GAAAA;;QAE5B,KAAK,MAAMiB,OAAOb,sBAAAA,CAAwB;YACxC,IAAIa,GAAAA,CAAIC,IAAI,CAAClB,QAAAA,CAAAA,EAAW;gBACtB,OAAO,KAAA;AACb,YAAA;AACA,QAAA;AAEE,QAAA,MAAMmB,aAAAA,GAAgB;;AAEpBC,YAAAA,MAAAA,EAAQlB,+BAAAA,CAAgCG,cAAAA,CAAAA;;YAExCgB,KAAAA,EAAOpB,8BAAAA;AACX,SAAA;;AAGE,QAAA,MAAMqB,aAAAA,GAAgBhB,QAAAA,CAASa,aAAAA,CAAcC,MAAM,EAAEpB,QAAAA,CAAAA;AACrD,QAAA,MAAMuB,YAAAA,GAAejB,QAAAA,CAASa,aAAAA,CAAcE,KAAK,EAAErB,QAAAA,CAAAA;;;;;AAMnD,QAAA,IAAIuB,YAAAA,CAAaC,MAAM,GAAGF,aAAAA,CAAcE,MAAM,EAAE;YAC9C,OAAO,KAAA;AACX,QAAA;QAEE,OAAO,IAAA;AACT,IAAA,CAAA;IAEAC,aAAAA,GAAiB;AACfT,QAAAA;AACF,KAAA;;;;;;"}