@strapi/plugin-users-permissions 0.0.0-next.f7babb775ed9a7e18d8351cb7f74c63e016323c4 → 0.0.0-next.f86041c89a8c1545c6437a881dc613e98bc52bd7

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 (678) hide show
  1. package/.eslintignore +2 -2
  2. package/.eslintrc +17 -0
  3. package/LICENSE +18 -3
  4. package/admin/src/components/BoundRoute/{index.js → index.jsx} +3 -3
  5. package/admin/src/components/FormModal/Input/{index.js → index.jsx} +33 -32
  6. package/admin/src/components/FormModal/index.jsx +115 -0
  7. package/admin/src/components/Permissions/PermissionRow/{CheckboxWrapper.js → CheckboxWrapper.jsx} +4 -3
  8. package/admin/src/components/Permissions/PermissionRow/{SubCategory.js → SubCategory.jsx} +20 -22
  9. package/admin/src/components/Permissions/index.jsx +47 -0
  10. package/admin/src/components/Permissions/reducer.js +1 -1
  11. package/admin/src/components/Policies/{index.js → index.jsx} +9 -6
  12. package/admin/src/components/UsersPermissions/{index.js → index.jsx} +16 -7
  13. package/admin/src/components/UsersPermissions/reducer.js +1 -1
  14. package/admin/src/index.js +21 -49
  15. package/admin/src/pages/AdvancedSettings/index.jsx +214 -0
  16. package/admin/src/pages/AdvancedSettings/utils/layout.js +20 -35
  17. package/admin/src/pages/AdvancedSettings/utils/schema.js +5 -2
  18. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +157 -0
  19. package/admin/src/pages/EmailTemplates/components/{EmailTable.js → EmailTable.jsx} +21 -18
  20. package/admin/src/pages/EmailTemplates/index.jsx +148 -0
  21. package/admin/src/pages/EmailTemplates/utils/schema.js +18 -6
  22. package/admin/src/pages/Providers/index.jsx +260 -0
  23. package/admin/src/pages/Providers/utils/forms.js +23 -11
  24. package/admin/src/pages/Roles/constants.js +3 -3
  25. package/admin/src/{hooks → pages/Roles/hooks}/usePlugins.js +19 -12
  26. package/admin/src/pages/Roles/index.jsx +24 -0
  27. package/admin/src/pages/Roles/pages/CreatePage.jsx +207 -0
  28. package/admin/src/pages/Roles/pages/EditPage.jsx +220 -0
  29. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +119 -0
  30. package/admin/src/pages/Roles/pages/ListPage/index.jsx +264 -0
  31. package/admin/src/pluginId.js +2 -2
  32. package/admin/src/translations/en.json +2 -1
  33. package/admin/src/translations/uk.json +41 -4
  34. package/admin/src/translations/zh-Hans.json +80 -80
  35. package/admin/src/utils/formatPluginName.js +1 -1
  36. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  37. package/dist/admin/components/BoundRoute/getMethodColor.js +49 -0
  38. package/dist/admin/components/BoundRoute/getMethodColor.js.map +1 -0
  39. package/dist/admin/components/BoundRoute/getMethodColor.mjs +47 -0
  40. package/dist/admin/components/BoundRoute/getMethodColor.mjs.map +1 -0
  41. package/dist/admin/components/BoundRoute/index.js +98 -0
  42. package/dist/admin/components/BoundRoute/index.js.map +1 -0
  43. package/dist/admin/components/BoundRoute/index.mjs +96 -0
  44. package/dist/admin/components/BoundRoute/index.mjs.map +1 -0
  45. package/dist/admin/components/FormModal/Input/index.js +123 -0
  46. package/dist/admin/components/FormModal/Input/index.js.map +1 -0
  47. package/dist/admin/components/FormModal/Input/index.mjs +121 -0
  48. package/dist/admin/components/FormModal/Input/index.mjs.map +1 -0
  49. package/dist/admin/components/FormModal/index.js +110 -0
  50. package/dist/admin/components/FormModal/index.js.map +1 -0
  51. package/dist/admin/components/FormModal/index.mjs +108 -0
  52. package/dist/admin/components/FormModal/index.mjs.map +1 -0
  53. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js +33 -0
  54. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js.map +1 -0
  55. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs +31 -0
  56. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs.map +1 -0
  57. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +158 -0
  58. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -0
  59. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +156 -0
  60. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -0
  61. package/dist/admin/components/Permissions/PermissionRow/index.js +50 -0
  62. package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -0
  63. package/dist/admin/components/Permissions/PermissionRow/index.mjs +48 -0
  64. package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -0
  65. package/dist/admin/components/Permissions/index.js +52 -0
  66. package/dist/admin/components/Permissions/index.js.map +1 -0
  67. package/dist/admin/components/Permissions/index.mjs +50 -0
  68. package/dist/admin/components/Permissions/index.mjs.map +1 -0
  69. package/dist/admin/components/Permissions/init.js +15 -0
  70. package/dist/admin/components/Permissions/init.js.map +1 -0
  71. package/dist/admin/components/Permissions/init.mjs +13 -0
  72. package/dist/admin/components/Permissions/init.mjs.map +1 -0
  73. package/dist/admin/components/Permissions/reducer.js +34 -0
  74. package/dist/admin/components/Permissions/reducer.js.map +1 -0
  75. package/dist/admin/components/Permissions/reducer.mjs +31 -0
  76. package/dist/admin/components/Permissions/reducer.mjs.map +1 -0
  77. package/dist/admin/components/Policies/index.js +68 -0
  78. package/dist/admin/components/Policies/index.js.map +1 -0
  79. package/dist/admin/components/Policies/index.mjs +66 -0
  80. package/dist/admin/components/Policies/index.mjs.map +1 -0
  81. package/dist/admin/components/UsersPermissions/index.js +116 -0
  82. package/dist/admin/components/UsersPermissions/index.js.map +1 -0
  83. package/dist/admin/components/UsersPermissions/index.mjs +114 -0
  84. package/dist/admin/components/UsersPermissions/index.mjs.map +1 -0
  85. package/dist/admin/components/UsersPermissions/init.js +13 -0
  86. package/dist/admin/components/UsersPermissions/init.js.map +1 -0
  87. package/dist/admin/components/UsersPermissions/init.mjs +11 -0
  88. package/dist/admin/components/UsersPermissions/init.mjs.map +1 -0
  89. package/dist/admin/components/UsersPermissions/reducer.js +73 -0
  90. package/dist/admin/components/UsersPermissions/reducer.js.map +1 -0
  91. package/dist/admin/components/UsersPermissions/reducer.mjs +68 -0
  92. package/dist/admin/components/UsersPermissions/reducer.mjs.map +1 -0
  93. package/dist/admin/constants.js +81 -0
  94. package/dist/admin/constants.js.map +1 -0
  95. package/dist/admin/constants.mjs +79 -0
  96. package/dist/admin/constants.mjs.map +1 -0
  97. package/dist/admin/contexts/UsersPermissionsContext/index.js +23 -0
  98. package/dist/admin/contexts/UsersPermissionsContext/index.js.map +1 -0
  99. package/dist/admin/contexts/UsersPermissionsContext/index.mjs +19 -0
  100. package/dist/admin/contexts/UsersPermissionsContext/index.mjs.map +1 -0
  101. package/dist/admin/index.js +125 -0
  102. package/dist/admin/index.js.map +1 -0
  103. package/dist/admin/index.mjs +121 -0
  104. package/dist/admin/index.mjs.map +1 -0
  105. package/dist/admin/package.json.js +14 -0
  106. package/dist/admin/package.json.js.map +1 -0
  107. package/dist/admin/package.json.mjs +11 -0
  108. package/dist/admin/package.json.mjs.map +1 -0
  109. package/dist/admin/pages/AdvancedSettings/index.js +194 -0
  110. package/dist/admin/pages/AdvancedSettings/index.js.map +1 -0
  111. package/dist/admin/pages/AdvancedSettings/index.mjs +191 -0
  112. package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -0
  113. package/dist/admin/pages/AdvancedSettings/utils/layout.js +83 -0
  114. package/dist/admin/pages/AdvancedSettings/utils/layout.js.map +1 -0
  115. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs +81 -0
  116. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs.map +1 -0
  117. package/dist/admin/pages/AdvancedSettings/utils/schema.js +40 -0
  118. package/dist/admin/pages/AdvancedSettings/utils/schema.js.map +1 -0
  119. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs +19 -0
  120. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs.map +1 -0
  121. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +172 -0
  122. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -0
  123. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +170 -0
  124. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -0
  125. package/dist/admin/pages/EmailTemplates/components/EmailTable.js +145 -0
  126. package/dist/admin/pages/EmailTemplates/components/EmailTable.js.map +1 -0
  127. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs +143 -0
  128. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs.map +1 -0
  129. package/dist/admin/pages/EmailTemplates/index.js +157 -0
  130. package/dist/admin/pages/EmailTemplates/index.js.map +1 -0
  131. package/dist/admin/pages/EmailTemplates/index.mjs +135 -0
  132. package/dist/admin/pages/EmailTemplates/index.mjs.map +1 -0
  133. package/dist/admin/pages/EmailTemplates/utils/schema.js +50 -0
  134. package/dist/admin/pages/EmailTemplates/utils/schema.js.map +1 -0
  135. package/dist/admin/pages/EmailTemplates/utils/schema.mjs +29 -0
  136. package/dist/admin/pages/EmailTemplates/utils/schema.mjs.map +1 -0
  137. package/dist/admin/pages/Providers/index.js +274 -0
  138. package/dist/admin/pages/Providers/index.js.map +1 -0
  139. package/dist/admin/pages/Providers/index.mjs +250 -0
  140. package/dist/admin/pages/Providers/index.mjs.map +1 -0
  141. package/dist/admin/pages/Providers/utils/forms.js +281 -0
  142. package/dist/admin/pages/Providers/utils/forms.js.map +1 -0
  143. package/dist/admin/pages/Providers/utils/forms.mjs +260 -0
  144. package/dist/admin/pages/Providers/utils/forms.mjs.map +1 -0
  145. package/dist/admin/pages/Roles/constants.js +31 -0
  146. package/dist/admin/pages/Roles/constants.js.map +1 -0
  147. package/dist/admin/pages/Roles/constants.mjs +10 -0
  148. package/dist/admin/pages/Roles/constants.mjs.map +1 -0
  149. package/dist/admin/pages/Roles/hooks/usePlugins.js +78 -0
  150. package/dist/admin/pages/Roles/hooks/usePlugins.js.map +1 -0
  151. package/dist/admin/pages/Roles/hooks/usePlugins.mjs +76 -0
  152. package/dist/admin/pages/Roles/hooks/usePlugins.mjs.map +1 -0
  153. package/dist/admin/pages/Roles/index.js +35 -0
  154. package/dist/admin/pages/Roles/index.js.map +1 -0
  155. package/dist/admin/pages/Roles/index.mjs +33 -0
  156. package/dist/admin/pages/Roles/index.mjs.map +1 -0
  157. package/dist/admin/pages/Roles/pages/CreatePage.js +238 -0
  158. package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -0
  159. package/dist/admin/pages/Roles/pages/CreatePage.mjs +216 -0
  160. package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -0
  161. package/dist/admin/pages/Roles/pages/EditPage.js +239 -0
  162. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -0
  163. package/dist/admin/pages/Roles/pages/EditPage.mjs +217 -0
  164. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -0
  165. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js +125 -0
  166. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -0
  167. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs +123 -0
  168. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -0
  169. package/dist/admin/pages/Roles/pages/ListPage/index.js +233 -0
  170. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -0
  171. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +230 -0
  172. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -0
  173. package/dist/admin/pluginId.js +8 -0
  174. package/dist/admin/pluginId.js.map +1 -0
  175. package/dist/admin/pluginId.mjs +6 -0
  176. package/dist/admin/pluginId.mjs.map +1 -0
  177. package/dist/admin/translations/ar.json.js +45 -0
  178. package/dist/admin/translations/ar.json.js.map +1 -0
  179. package/dist/admin/translations/ar.json.mjs +43 -0
  180. package/dist/admin/translations/ar.json.mjs.map +1 -0
  181. package/dist/admin/translations/cs.json.js +51 -0
  182. package/dist/admin/translations/cs.json.js.map +1 -0
  183. package/dist/admin/translations/cs.json.mjs +49 -0
  184. package/dist/admin/translations/cs.json.mjs.map +1 -0
  185. package/dist/admin/translations/de.json.js +63 -0
  186. package/dist/admin/translations/de.json.js.map +1 -0
  187. package/dist/admin/translations/de.json.mjs +61 -0
  188. package/dist/admin/translations/de.json.mjs.map +1 -0
  189. package/dist/admin/translations/dk.json.js +87 -0
  190. package/dist/admin/translations/dk.json.js.map +1 -0
  191. package/dist/admin/translations/dk.json.mjs +85 -0
  192. package/dist/admin/translations/dk.json.mjs.map +1 -0
  193. package/dist/admin/translations/en.json.js +88 -0
  194. package/dist/admin/translations/en.json.js.map +1 -0
  195. package/dist/admin/translations/en.json.mjs +86 -0
  196. package/dist/admin/translations/en.json.mjs.map +1 -0
  197. package/dist/admin/translations/es.json.js +87 -0
  198. package/dist/admin/translations/es.json.js.map +1 -0
  199. package/dist/admin/translations/es.json.mjs +85 -0
  200. package/dist/admin/translations/es.json.mjs.map +1 -0
  201. package/dist/admin/translations/fr.json.js +51 -0
  202. package/dist/admin/translations/fr.json.js.map +1 -0
  203. package/dist/admin/translations/fr.json.mjs +49 -0
  204. package/dist/admin/translations/fr.json.mjs.map +1 -0
  205. package/dist/admin/translations/id.json.js +63 -0
  206. package/dist/admin/translations/id.json.js.map +1 -0
  207. package/dist/admin/translations/id.json.mjs +61 -0
  208. package/dist/admin/translations/id.json.mjs.map +1 -0
  209. package/dist/admin/translations/it.json.js +63 -0
  210. package/dist/admin/translations/it.json.js.map +1 -0
  211. package/dist/admin/translations/it.json.mjs +61 -0
  212. package/dist/admin/translations/it.json.mjs.map +1 -0
  213. package/dist/admin/translations/ja.json.js +49 -0
  214. package/dist/admin/translations/ja.json.js.map +1 -0
  215. package/dist/admin/translations/ja.json.mjs +47 -0
  216. package/dist/admin/translations/ja.json.mjs.map +1 -0
  217. package/dist/admin/translations/ko.json.js +87 -0
  218. package/dist/admin/translations/ko.json.js.map +1 -0
  219. package/dist/admin/translations/ko.json.mjs +85 -0
  220. package/dist/admin/translations/ko.json.mjs.map +1 -0
  221. package/dist/admin/translations/ms.json.js +50 -0
  222. package/dist/admin/translations/ms.json.js.map +1 -0
  223. package/dist/admin/translations/ms.json.mjs +48 -0
  224. package/dist/admin/translations/ms.json.mjs.map +1 -0
  225. package/dist/admin/translations/nl.json.js +49 -0
  226. package/dist/admin/translations/nl.json.js.map +1 -0
  227. package/dist/admin/translations/nl.json.mjs +47 -0
  228. package/dist/admin/translations/nl.json.mjs.map +1 -0
  229. package/dist/admin/translations/pl.json.js +87 -0
  230. package/dist/admin/translations/pl.json.js.map +1 -0
  231. package/dist/admin/translations/pl.json.mjs +85 -0
  232. package/dist/admin/translations/pl.json.mjs.map +1 -0
  233. package/dist/admin/translations/pt-BR.json.js +45 -0
  234. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  235. package/dist/admin/translations/pt-BR.json.mjs +43 -0
  236. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  237. package/dist/admin/translations/pt.json.js +49 -0
  238. package/dist/admin/translations/pt.json.js.map +1 -0
  239. package/dist/admin/translations/pt.json.mjs +47 -0
  240. package/dist/admin/translations/pt.json.mjs.map +1 -0
  241. package/dist/admin/translations/ru.json.js +87 -0
  242. package/dist/admin/translations/ru.json.js.map +1 -0
  243. package/dist/admin/translations/ru.json.mjs +85 -0
  244. package/dist/admin/translations/ru.json.mjs.map +1 -0
  245. package/dist/admin/translations/sk.json.js +51 -0
  246. package/dist/admin/translations/sk.json.js.map +1 -0
  247. package/dist/admin/translations/sk.json.mjs +49 -0
  248. package/dist/admin/translations/sk.json.mjs.map +1 -0
  249. package/dist/admin/translations/sv.json.js +87 -0
  250. package/dist/admin/translations/sv.json.js.map +1 -0
  251. package/dist/admin/translations/sv.json.mjs +85 -0
  252. package/dist/admin/translations/sv.json.mjs.map +1 -0
  253. package/dist/admin/translations/th.json.js +61 -0
  254. package/dist/admin/translations/th.json.js.map +1 -0
  255. package/dist/admin/translations/th.json.mjs +59 -0
  256. package/dist/admin/translations/th.json.mjs.map +1 -0
  257. package/dist/admin/translations/tr.json.js +86 -0
  258. package/dist/admin/translations/tr.json.js.map +1 -0
  259. package/dist/admin/translations/tr.json.mjs +84 -0
  260. package/dist/admin/translations/tr.json.mjs.map +1 -0
  261. package/dist/admin/translations/uk.json.js +87 -0
  262. package/dist/admin/translations/uk.json.js.map +1 -0
  263. package/dist/admin/translations/uk.json.mjs +85 -0
  264. package/dist/admin/translations/uk.json.mjs.map +1 -0
  265. package/dist/admin/translations/vi.json.js +51 -0
  266. package/dist/admin/translations/vi.json.js.map +1 -0
  267. package/dist/admin/translations/vi.json.mjs +49 -0
  268. package/dist/admin/translations/vi.json.mjs.map +1 -0
  269. package/dist/admin/translations/zh-Hans.json.js +87 -0
  270. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  271. package/dist/admin/translations/zh-Hans.json.mjs +85 -0
  272. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  273. package/dist/admin/translations/zh.json.js +87 -0
  274. package/dist/admin/translations/zh.json.js.map +1 -0
  275. package/dist/admin/translations/zh.json.mjs +85 -0
  276. package/dist/admin/translations/zh.json.mjs.map +1 -0
  277. package/dist/admin/utils/cleanPermissions.js +24 -0
  278. package/dist/admin/utils/cleanPermissions.js.map +1 -0
  279. package/dist/admin/utils/cleanPermissions.mjs +22 -0
  280. package/dist/admin/utils/cleanPermissions.mjs.map +1 -0
  281. package/dist/admin/utils/formatPluginName.js +29 -0
  282. package/dist/admin/utils/formatPluginName.js.map +1 -0
  283. package/dist/admin/utils/formatPluginName.mjs +27 -0
  284. package/dist/admin/utils/formatPluginName.mjs.map +1 -0
  285. package/dist/admin/utils/getTrad.js +8 -0
  286. package/dist/admin/utils/getTrad.js.map +1 -0
  287. package/dist/admin/utils/getTrad.mjs +6 -0
  288. package/dist/admin/utils/getTrad.mjs.map +1 -0
  289. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  290. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  291. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  292. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  293. package/dist/server/_virtual/_commonjsHelpers.js +8 -0
  294. package/dist/server/_virtual/_commonjsHelpers.js.map +1 -0
  295. package/dist/server/_virtual/_commonjsHelpers.mjs +6 -0
  296. package/dist/server/_virtual/_commonjsHelpers.mjs.map +1 -0
  297. package/dist/server/bootstrap/index.js +166 -0
  298. package/dist/server/bootstrap/index.js.map +1 -0
  299. package/dist/server/bootstrap/index.mjs +164 -0
  300. package/dist/server/bootstrap/index.mjs.map +1 -0
  301. package/dist/server/bootstrap/users-permissions-actions.js +98 -0
  302. package/dist/server/bootstrap/users-permissions-actions.js.map +1 -0
  303. package/dist/server/bootstrap/users-permissions-actions.mjs +96 -0
  304. package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -0
  305. package/dist/server/config.js +70 -0
  306. package/dist/server/config.js.map +1 -0
  307. package/dist/server/config.mjs +68 -0
  308. package/dist/server/config.mjs.map +1 -0
  309. package/dist/server/content-types/index.js +30 -0
  310. package/dist/server/content-types/index.js.map +1 -0
  311. package/dist/server/content-types/index.mjs +28 -0
  312. package/dist/server/content-types/index.mjs.map +1 -0
  313. package/dist/server/content-types/permission/index.js +44 -0
  314. package/dist/server/content-types/permission/index.js.map +1 -0
  315. package/dist/server/content-types/permission/index.mjs +42 -0
  316. package/dist/server/content-types/permission/index.mjs.map +1 -0
  317. package/dist/server/content-types/role/index.js +61 -0
  318. package/dist/server/content-types/role/index.js.map +1 -0
  319. package/dist/server/content-types/role/index.mjs +59 -0
  320. package/dist/server/content-types/role/index.mjs.map +1 -0
  321. package/dist/server/content-types/user/index.js +84 -0
  322. package/dist/server/content-types/user/index.js.map +1 -0
  323. package/dist/server/content-types/user/index.mjs +82 -0
  324. package/dist/server/content-types/user/index.mjs.map +1 -0
  325. package/dist/server/content-types/user/schema-config.js +25 -0
  326. package/dist/server/content-types/user/schema-config.js.map +1 -0
  327. package/dist/server/content-types/user/schema-config.mjs +23 -0
  328. package/dist/server/content-types/user/schema-config.mjs.map +1 -0
  329. package/dist/server/controllers/auth.js +630 -0
  330. package/dist/server/controllers/auth.js.map +1 -0
  331. package/dist/server/controllers/auth.mjs +628 -0
  332. package/dist/server/controllers/auth.mjs.map +1 -0
  333. package/dist/server/controllers/content-manager-user.js +168 -0
  334. package/dist/server/controllers/content-manager-user.js.map +1 -0
  335. package/dist/server/controllers/content-manager-user.mjs +166 -0
  336. package/dist/server/controllers/content-manager-user.mjs.map +1 -0
  337. package/dist/server/controllers/index.js +33 -0
  338. package/dist/server/controllers/index.js.map +1 -0
  339. package/dist/server/controllers/index.mjs +31 -0
  340. package/dist/server/controllers/index.mjs.map +1 -0
  341. package/dist/server/controllers/permissions.js +37 -0
  342. package/dist/server/controllers/permissions.js.map +1 -0
  343. package/dist/server/controllers/permissions.mjs +35 -0
  344. package/dist/server/controllers/permissions.mjs.map +1 -0
  345. package/dist/server/controllers/role.js +91 -0
  346. package/dist/server/controllers/role.js.map +1 -0
  347. package/dist/server/controllers/role.mjs +89 -0
  348. package/dist/server/controllers/role.mjs.map +1 -0
  349. package/dist/server/controllers/settings.js +107 -0
  350. package/dist/server/controllers/settings.js.map +1 -0
  351. package/dist/server/controllers/settings.mjs +105 -0
  352. package/dist/server/controllers/settings.mjs.map +1 -0
  353. package/dist/server/controllers/user.js +201 -0
  354. package/dist/server/controllers/user.js.map +1 -0
  355. package/dist/server/controllers/user.mjs +199 -0
  356. package/dist/server/controllers/user.mjs.map +1 -0
  357. package/dist/server/controllers/validation/auth.js +131 -0
  358. package/dist/server/controllers/validation/auth.js.map +1 -0
  359. package/dist/server/controllers/validation/auth.mjs +129 -0
  360. package/dist/server/controllers/validation/auth.mjs.map +1 -0
  361. package/dist/server/controllers/validation/email-template.js +72 -0
  362. package/dist/server/controllers/validation/email-template.js.map +1 -0
  363. package/dist/server/controllers/validation/email-template.mjs +70 -0
  364. package/dist/server/controllers/validation/email-template.mjs.map +1 -0
  365. package/dist/server/controllers/validation/user.js +54 -0
  366. package/dist/server/controllers/validation/user.js.map +1 -0
  367. package/dist/server/controllers/validation/user.mjs +52 -0
  368. package/dist/server/controllers/validation/user.mjs.map +1 -0
  369. package/dist/server/graphql/index.js +66 -0
  370. package/dist/server/graphql/index.js.map +1 -0
  371. package/dist/server/graphql/index.mjs +64 -0
  372. package/dist/server/graphql/index.mjs.map +1 -0
  373. package/dist/server/graphql/mutations/auth/change-password.js +40 -0
  374. package/dist/server/graphql/mutations/auth/change-password.js.map +1 -0
  375. package/dist/server/graphql/mutations/auth/change-password.mjs +38 -0
  376. package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -0
  377. package/dist/server/graphql/mutations/auth/email-confirmation.js +38 -0
  378. package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -0
  379. package/dist/server/graphql/mutations/auth/email-confirmation.mjs +36 -0
  380. package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -0
  381. package/dist/server/graphql/mutations/auth/forgot-password.js +37 -0
  382. package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -0
  383. package/dist/server/graphql/mutations/auth/forgot-password.mjs +35 -0
  384. package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -0
  385. package/dist/server/graphql/mutations/auth/login.js +40 -0
  386. package/dist/server/graphql/mutations/auth/login.js.map +1 -0
  387. package/dist/server/graphql/mutations/auth/login.mjs +38 -0
  388. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -0
  389. package/dist/server/graphql/mutations/auth/register.js +38 -0
  390. package/dist/server/graphql/mutations/auth/register.js.map +1 -0
  391. package/dist/server/graphql/mutations/auth/register.mjs +36 -0
  392. package/dist/server/graphql/mutations/auth/register.mjs.map +1 -0
  393. package/dist/server/graphql/mutations/auth/reset-password.js +40 -0
  394. package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -0
  395. package/dist/server/graphql/mutations/auth/reset-password.mjs +38 -0
  396. package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -0
  397. package/dist/server/graphql/mutations/crud/role/create-role.js +37 -0
  398. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -0
  399. package/dist/server/graphql/mutations/crud/role/create-role.mjs +35 -0
  400. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -0
  401. package/dist/server/graphql/mutations/crud/role/delete-role.js +32 -0
  402. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -0
  403. package/dist/server/graphql/mutations/crud/role/delete-role.mjs +30 -0
  404. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -0
  405. package/dist/server/graphql/mutations/crud/role/update-role.js +39 -0
  406. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -0
  407. package/dist/server/graphql/mutations/crud/role/update-role.mjs +37 -0
  408. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -0
  409. package/dist/server/graphql/mutations/crud/user/create-user.js +46 -0
  410. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -0
  411. package/dist/server/graphql/mutations/crud/user/create-user.mjs +44 -0
  412. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -0
  413. package/dist/server/graphql/mutations/crud/user/delete-user.js +44 -0
  414. package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -0
  415. package/dist/server/graphql/mutations/crud/user/delete-user.mjs +42 -0
  416. package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -0
  417. package/dist/server/graphql/mutations/crud/user/update-user.js +49 -0
  418. package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -0
  419. package/dist/server/graphql/mutations/crud/user/update-user.mjs +47 -0
  420. package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -0
  421. package/dist/server/graphql/mutations/index.js +58 -0
  422. package/dist/server/graphql/mutations/index.js.map +1 -0
  423. package/dist/server/graphql/mutations/index.mjs +56 -0
  424. package/dist/server/graphql/mutations/index.mjs.map +1 -0
  425. package/dist/server/graphql/queries/index.js +25 -0
  426. package/dist/server/graphql/queries/index.js.map +1 -0
  427. package/dist/server/graphql/queries/index.mjs +23 -0
  428. package/dist/server/graphql/queries/index.mjs.map +1 -0
  429. package/dist/server/graphql/queries/me.js +23 -0
  430. package/dist/server/graphql/queries/me.js.map +1 -0
  431. package/dist/server/graphql/queries/me.mjs +21 -0
  432. package/dist/server/graphql/queries/me.mjs.map +1 -0
  433. package/dist/server/graphql/resolvers-configs.js +93 -0
  434. package/dist/server/graphql/resolvers-configs.js.map +1 -0
  435. package/dist/server/graphql/resolvers-configs.mjs +91 -0
  436. package/dist/server/graphql/resolvers-configs.mjs.map +1 -0
  437. package/dist/server/graphql/types/create-role-payload.js +20 -0
  438. package/dist/server/graphql/types/create-role-payload.js.map +1 -0
  439. package/dist/server/graphql/types/create-role-payload.mjs +18 -0
  440. package/dist/server/graphql/types/create-role-payload.mjs.map +1 -0
  441. package/dist/server/graphql/types/delete-role-payload.js +20 -0
  442. package/dist/server/graphql/types/delete-role-payload.js.map +1 -0
  443. package/dist/server/graphql/types/delete-role-payload.mjs +18 -0
  444. package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -0
  445. package/dist/server/graphql/types/index.js +41 -0
  446. package/dist/server/graphql/types/index.js.map +1 -0
  447. package/dist/server/graphql/types/index.mjs +39 -0
  448. package/dist/server/graphql/types/index.mjs.map +1 -0
  449. package/dist/server/graphql/types/login-input.js +24 -0
  450. package/dist/server/graphql/types/login-input.js.map +1 -0
  451. package/dist/server/graphql/types/login-input.mjs +22 -0
  452. package/dist/server/graphql/types/login-input.mjs.map +1 -0
  453. package/dist/server/graphql/types/login-payload.js +23 -0
  454. package/dist/server/graphql/types/login-payload.js.map +1 -0
  455. package/dist/server/graphql/types/login-payload.mjs +21 -0
  456. package/dist/server/graphql/types/login-payload.mjs.map +1 -0
  457. package/dist/server/graphql/types/me-role.js +23 -0
  458. package/dist/server/graphql/types/me-role.js.map +1 -0
  459. package/dist/server/graphql/types/me-role.mjs +21 -0
  460. package/dist/server/graphql/types/me-role.mjs.map +1 -0
  461. package/dist/server/graphql/types/me.js +28 -0
  462. package/dist/server/graphql/types/me.js.map +1 -0
  463. package/dist/server/graphql/types/me.mjs +26 -0
  464. package/dist/server/graphql/types/me.mjs.map +1 -0
  465. package/dist/server/graphql/types/password-payload.js +20 -0
  466. package/dist/server/graphql/types/password-payload.js.map +1 -0
  467. package/dist/server/graphql/types/password-payload.mjs +18 -0
  468. package/dist/server/graphql/types/password-payload.mjs.map +1 -0
  469. package/dist/server/graphql/types/register-input.js +22 -0
  470. package/dist/server/graphql/types/register-input.js.map +1 -0
  471. package/dist/server/graphql/types/register-input.mjs +20 -0
  472. package/dist/server/graphql/types/register-input.mjs.map +1 -0
  473. package/dist/server/graphql/types/update-role-payload.js +20 -0
  474. package/dist/server/graphql/types/update-role-payload.js.map +1 -0
  475. package/dist/server/graphql/types/update-role-payload.mjs +18 -0
  476. package/dist/server/graphql/types/update-role-payload.mjs.map +1 -0
  477. package/dist/server/graphql/types/user-input.js +26 -0
  478. package/dist/server/graphql/types/user-input.js.map +1 -0
  479. package/dist/server/graphql/types/user-input.mjs +24 -0
  480. package/dist/server/graphql/types/user-input.mjs.map +1 -0
  481. package/dist/server/graphql/utils.js +32 -0
  482. package/dist/server/graphql/utils.js.map +1 -0
  483. package/dist/server/graphql/utils.mjs +30 -0
  484. package/dist/server/graphql/utils.mjs.map +1 -0
  485. package/dist/server/index.js +10 -0
  486. package/dist/server/index.js.map +1 -0
  487. package/dist/server/index.mjs +8 -0
  488. package/dist/server/index.mjs.map +1 -0
  489. package/dist/server/index2.js +39 -0
  490. package/dist/server/index2.js.map +1 -0
  491. package/dist/server/index2.mjs +37 -0
  492. package/dist/server/index2.mjs.map +1 -0
  493. package/dist/server/middlewares/index.js +18 -0
  494. package/dist/server/middlewares/index.js.map +1 -0
  495. package/dist/server/middlewares/index.mjs +16 -0
  496. package/dist/server/middlewares/index.mjs.map +1 -0
  497. package/dist/server/middlewares/rateLimit.js +51 -0
  498. package/dist/server/middlewares/rateLimit.js.map +1 -0
  499. package/dist/server/middlewares/rateLimit.mjs +49 -0
  500. package/dist/server/middlewares/rateLimit.mjs.map +1 -0
  501. package/dist/server/register.js +41 -0
  502. package/dist/server/register.js.map +1 -0
  503. package/dist/server/register.mjs +39 -0
  504. package/dist/server/register.mjs.map +1 -0
  505. package/dist/server/routes/admin/index.js +27 -0
  506. package/dist/server/routes/admin/index.js.map +1 -0
  507. package/dist/server/routes/admin/index.mjs +25 -0
  508. package/dist/server/routes/admin/index.mjs.map +1 -0
  509. package/dist/server/routes/admin/permissions.js +29 -0
  510. package/dist/server/routes/admin/permissions.js.map +1 -0
  511. package/dist/server/routes/admin/permissions.mjs +27 -0
  512. package/dist/server/routes/admin/permissions.mjs.map +1 -0
  513. package/dist/server/routes/admin/role.js +99 -0
  514. package/dist/server/routes/admin/role.js.map +1 -0
  515. package/dist/server/routes/admin/role.mjs +97 -0
  516. package/dist/server/routes/admin/role.mjs.map +1 -0
  517. package/dist/server/routes/admin/settings.js +116 -0
  518. package/dist/server/routes/admin/settings.js.map +1 -0
  519. package/dist/server/routes/admin/settings.mjs +114 -0
  520. package/dist/server/routes/admin/settings.mjs.map +1 -0
  521. package/dist/server/routes/content-api/auth.js +168 -0
  522. package/dist/server/routes/content-api/auth.js.map +1 -0
  523. package/dist/server/routes/content-api/auth.mjs +166 -0
  524. package/dist/server/routes/content-api/auth.mjs.map +1 -0
  525. package/dist/server/routes/content-api/index.js +32 -0
  526. package/dist/server/routes/content-api/index.js.map +1 -0
  527. package/dist/server/routes/content-api/index.mjs +30 -0
  528. package/dist/server/routes/content-api/index.mjs.map +1 -0
  529. package/dist/server/routes/content-api/permissions.js +26 -0
  530. package/dist/server/routes/content-api/permissions.js.map +1 -0
  531. package/dist/server/routes/content-api/permissions.mjs +24 -0
  532. package/dist/server/routes/content-api/permissions.mjs.map +1 -0
  533. package/dist/server/routes/content-api/role.js +73 -0
  534. package/dist/server/routes/content-api/role.js.map +1 -0
  535. package/dist/server/routes/content-api/role.mjs +71 -0
  536. package/dist/server/routes/content-api/role.mjs.map +1 -0
  537. package/dist/server/routes/content-api/user.js +132 -0
  538. package/dist/server/routes/content-api/user.js.map +1 -0
  539. package/dist/server/routes/content-api/user.mjs +130 -0
  540. package/dist/server/routes/content-api/user.mjs.map +1 -0
  541. package/dist/server/routes/content-api/validation.js +217 -0
  542. package/dist/server/routes/content-api/validation.js.map +1 -0
  543. package/dist/server/routes/content-api/validation.mjs +215 -0
  544. package/dist/server/routes/content-api/validation.mjs.map +1 -0
  545. package/dist/server/routes/index.js +19 -0
  546. package/dist/server/routes/index.js.map +1 -0
  547. package/dist/server/routes/index.mjs +17 -0
  548. package/dist/server/routes/index.mjs.map +1 -0
  549. package/dist/server/services/constants.js +19 -0
  550. package/dist/server/services/constants.js.map +1 -0
  551. package/dist/server/services/constants.mjs +17 -0
  552. package/dist/server/services/constants.mjs.map +1 -0
  553. package/dist/server/services/index.js +36 -0
  554. package/dist/server/services/index.js.map +1 -0
  555. package/dist/server/services/index.mjs +34 -0
  556. package/dist/server/services/index.mjs.map +1 -0
  557. package/dist/server/services/jwt.js +93 -0
  558. package/dist/server/services/jwt.js.map +1 -0
  559. package/dist/server/services/jwt.mjs +91 -0
  560. package/dist/server/services/jwt.mjs.map +1 -0
  561. package/dist/server/services/permission.js +52 -0
  562. package/dist/server/services/permission.js.map +1 -0
  563. package/dist/server/services/permission.mjs +50 -0
  564. package/dist/server/services/permission.mjs.map +1 -0
  565. package/dist/server/services/providers-registry.js +555 -0
  566. package/dist/server/services/providers-registry.js.map +1 -0
  567. package/dist/server/services/providers-registry.mjs +553 -0
  568. package/dist/server/services/providers-registry.mjs.map +1 -0
  569. package/dist/server/services/providers.js +111 -0
  570. package/dist/server/services/providers.js.map +1 -0
  571. package/dist/server/services/providers.mjs +109 -0
  572. package/dist/server/services/providers.mjs.map +1 -0
  573. package/dist/server/services/role.js +186 -0
  574. package/dist/server/services/role.js.map +1 -0
  575. package/dist/server/services/role.mjs +184 -0
  576. package/dist/server/services/role.mjs.map +1 -0
  577. package/dist/server/services/user.js +188 -0
  578. package/dist/server/services/user.js.map +1 -0
  579. package/dist/server/services/user.mjs +186 -0
  580. package/dist/server/services/user.mjs.map +1 -0
  581. package/dist/server/services/users-permissions.js +256 -0
  582. package/dist/server/services/users-permissions.js.map +1 -0
  583. package/dist/server/services/users-permissions.mjs +254 -0
  584. package/dist/server/services/users-permissions.mjs.map +1 -0
  585. package/dist/server/strategies/users-permissions.js +114 -0
  586. package/dist/server/strategies/users-permissions.js.map +1 -0
  587. package/dist/server/strategies/users-permissions.mjs +112 -0
  588. package/dist/server/strategies/users-permissions.mjs.map +1 -0
  589. package/dist/server/utils/index.js +22 -0
  590. package/dist/server/utils/index.js.map +1 -0
  591. package/dist/server/utils/index.mjs +20 -0
  592. package/dist/server/utils/index.mjs.map +1 -0
  593. package/dist/server/utils/sanitize/index.js +21 -0
  594. package/dist/server/utils/sanitize/index.js.map +1 -0
  595. package/dist/server/utils/sanitize/index.mjs +19 -0
  596. package/dist/server/utils/sanitize/index.mjs.map +1 -0
  597. package/dist/server/utils/sanitize/sanitizers.js +32 -0
  598. package/dist/server/utils/sanitize/sanitizers.js.map +1 -0
  599. package/dist/server/utils/sanitize/sanitizers.mjs +30 -0
  600. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -0
  601. package/dist/server/utils/sanitize/visitors/index.js +17 -0
  602. package/dist/server/utils/sanitize/visitors/index.js.map +1 -0
  603. package/dist/server/utils/sanitize/visitors/index.mjs +15 -0
  604. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -0
  605. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +17 -0
  606. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -0
  607. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs +15 -0
  608. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -0
  609. package/documentation/content-api.yaml +1 -1
  610. package/jest.config.front.js +1 -1
  611. package/package.json +50 -30
  612. package/rollup.config.mjs +19 -0
  613. package/server/bootstrap/index.js +49 -15
  614. package/server/bootstrap/users-permissions-actions.js +6 -0
  615. package/server/config.js +51 -0
  616. package/server/content-types/user/index.js +0 -1
  617. package/server/controllers/auth.js +323 -47
  618. package/server/controllers/content-manager-user.js +31 -34
  619. package/server/controllers/role.js +17 -4
  620. package/server/controllers/user.js +18 -8
  621. package/server/controllers/validation/auth.js +104 -25
  622. package/server/controllers/validation/user.js +12 -1
  623. package/server/graphql/types/index.js +1 -0
  624. package/server/graphql/types/me.js +1 -0
  625. package/server/graphql/types/user-input.js +20 -0
  626. package/server/middlewares/rateLimit.js +2 -2
  627. package/server/register.js +2 -2
  628. package/server/routes/content-api/auth.js +119 -71
  629. package/server/routes/content-api/index.js +11 -4
  630. package/server/routes/content-api/permissions.js +14 -7
  631. package/server/routes/content-api/role.js +57 -27
  632. package/server/routes/content-api/user.js +108 -51
  633. package/server/routes/content-api/validation.js +250 -0
  634. package/server/services/constants.js +9 -0
  635. package/server/services/jwt.js +53 -5
  636. package/server/services/permission.js +3 -7
  637. package/server/services/providers-registry.js +469 -261
  638. package/server/services/providers.js +10 -5
  639. package/server/services/role.js +15 -13
  640. package/server/services/user.js +67 -19
  641. package/server/services/users-permissions.js +21 -15
  642. package/server/utils/index.d.ts +2 -1
  643. package/server/utils/sanitize/sanitizers.js +7 -3
  644. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  645. package/.eslintrc.js +0 -14
  646. package/admin/src/components/FormModal/index.js +0 -126
  647. package/admin/src/components/Permissions/index.js +0 -57
  648. package/admin/src/hooks/index.js +0 -5
  649. package/admin/src/hooks/useFetchRole/index.js +0 -67
  650. package/admin/src/hooks/useFetchRole/reducer.js +0 -31
  651. package/admin/src/hooks/useForm/index.js +0 -68
  652. package/admin/src/hooks/useForm/reducer.js +0 -40
  653. package/admin/src/hooks/useRolesList/index.js +0 -65
  654. package/admin/src/hooks/useRolesList/init.js +0 -5
  655. package/admin/src/hooks/useRolesList/reducer.js +0 -31
  656. package/admin/src/pages/AdvancedSettings/index.js +0 -242
  657. package/admin/src/pages/AdvancedSettings/utils/api.js +0 -16
  658. package/admin/src/pages/EmailTemplates/components/EmailForm.js +0 -176
  659. package/admin/src/pages/EmailTemplates/index.js +0 -159
  660. package/admin/src/pages/EmailTemplates/utils/api.js +0 -16
  661. package/admin/src/pages/Providers/index.js +0 -271
  662. package/admin/src/pages/Providers/reducer.js +0 -54
  663. package/admin/src/pages/Providers/utils/api.js +0 -24
  664. package/admin/src/pages/Providers/utils/createProvidersArray.js +0 -21
  665. package/admin/src/pages/Roles/CreatePage.js +0 -185
  666. package/admin/src/pages/Roles/EditPage.js +0 -197
  667. package/admin/src/pages/Roles/ListPage/components/TableBody.js +0 -93
  668. package/admin/src/pages/Roles/ListPage/index.js +0 -238
  669. package/admin/src/pages/Roles/ListPage/utils/api.js +0 -30
  670. package/admin/src/pages/Roles/ProtectedCreatePage.js +0 -15
  671. package/admin/src/pages/Roles/ProtectedEditPage.js +0 -15
  672. package/admin/src/pages/Roles/ProtectedListPage.js +0 -17
  673. package/admin/src/pages/Roles/index.js +0 -30
  674. package/server/bootstrap/grant-config.js +0 -131
  675. package/strapi-admin.js +0 -3
  676. package/strapi-server.js +0 -3
  677. /package/admin/src/components/Permissions/PermissionRow/{index.js → index.jsx} +0 -0
  678. /package/admin/src/contexts/UsersPermissionsContext/{index.js → index.jsx} +0 -0
@@ -0,0 +1,201 @@
1
+ 'use strict';
2
+
3
+ var require$$0 = require('lodash');
4
+ var require$$1 = require('@strapi/utils');
5
+ var index = require('../utils/index.js');
6
+ var user$1 = require('./validation/user.js');
7
+
8
+ var user;
9
+ var hasRequiredUser;
10
+ function requireUser() {
11
+ if (hasRequiredUser) return user;
12
+ hasRequiredUser = 1;
13
+ /**
14
+ * User.js controller
15
+ *
16
+ * @description: A set of functions called "actions" for managing `User`.
17
+ */ const _ = require$$0;
18
+ const utils = require$$1;
19
+ const { getService } = index.__require();
20
+ const { validateCreateUserBody, validateUpdateUserBody } = user$1.__require();
21
+ const { ApplicationError, ValidationError, NotFoundError } = utils.errors;
22
+ const sanitizeOutput = async (user, ctx)=>{
23
+ const schema = strapi.getModel('plugin::users-permissions.user');
24
+ const { auth } = ctx.state;
25
+ return strapi.contentAPI.sanitize.output(user, schema, {
26
+ auth
27
+ });
28
+ };
29
+ const validateQuery = async (query, ctx)=>{
30
+ const schema = strapi.getModel('plugin::users-permissions.user');
31
+ const { auth } = ctx.state;
32
+ return strapi.contentAPI.validate.query(query, schema, {
33
+ auth
34
+ });
35
+ };
36
+ const sanitizeQuery = async (query, ctx)=>{
37
+ const schema = strapi.getModel('plugin::users-permissions.user');
38
+ const { auth } = ctx.state;
39
+ return strapi.contentAPI.sanitize.query(query, schema, {
40
+ auth
41
+ });
42
+ };
43
+ user = {
44
+ /**
45
+ * Create a/an user record.
46
+ * @return {Object}
47
+ */ async create (ctx) {
48
+ const advanced = await strapi.store({
49
+ type: 'plugin',
50
+ name: 'users-permissions',
51
+ key: 'advanced'
52
+ }).get();
53
+ await validateCreateUserBody(ctx.request.body);
54
+ const { email, username, role } = ctx.request.body;
55
+ const userWithSameUsername = await strapi.db.query('plugin::users-permissions.user').findOne({
56
+ where: {
57
+ username
58
+ }
59
+ });
60
+ if (userWithSameUsername) {
61
+ if (!email) throw new ApplicationError('Username already taken');
62
+ }
63
+ if (advanced.unique_email) {
64
+ const userWithSameEmail = await strapi.db.query('plugin::users-permissions.user').findOne({
65
+ where: {
66
+ email: email.toLowerCase()
67
+ }
68
+ });
69
+ if (userWithSameEmail) {
70
+ throw new ApplicationError('Email already taken');
71
+ }
72
+ }
73
+ const user = {
74
+ ...ctx.request.body,
75
+ email: email.toLowerCase(),
76
+ provider: 'local'
77
+ };
78
+ if (!role) {
79
+ const defaultRole = await strapi.db.query('plugin::users-permissions.role').findOne({
80
+ where: {
81
+ type: advanced.default_role
82
+ }
83
+ });
84
+ user.role = defaultRole.id;
85
+ }
86
+ try {
87
+ const data = await getService('user').add(user);
88
+ const sanitizedData = await sanitizeOutput(data, ctx);
89
+ ctx.created(sanitizedData);
90
+ } catch (error) {
91
+ throw new ApplicationError(error.message);
92
+ }
93
+ },
94
+ /**
95
+ * Update a/an user record.
96
+ * @return {Object}
97
+ */ async update (ctx) {
98
+ const advancedConfigs = await strapi.store({
99
+ type: 'plugin',
100
+ name: 'users-permissions',
101
+ key: 'advanced'
102
+ }).get();
103
+ const { id } = ctx.params;
104
+ const { email, username, password } = ctx.request.body;
105
+ const user = await getService('user').fetch(id);
106
+ if (!user) {
107
+ throw new NotFoundError(`User not found`);
108
+ }
109
+ await validateUpdateUserBody(ctx.request.body);
110
+ if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {
111
+ throw new ValidationError('password.notNull');
112
+ }
113
+ if (_.has(ctx.request.body, 'username')) {
114
+ const userWithSameUsername = await strapi.db.query('plugin::users-permissions.user').findOne({
115
+ where: {
116
+ username
117
+ }
118
+ });
119
+ if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(id)) {
120
+ throw new ApplicationError('Username already taken');
121
+ }
122
+ }
123
+ if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {
124
+ const userWithSameEmail = await strapi.db.query('plugin::users-permissions.user').findOne({
125
+ where: {
126
+ email: email.toLowerCase()
127
+ }
128
+ });
129
+ if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {
130
+ throw new ApplicationError('Email already taken');
131
+ }
132
+ ctx.request.body.email = ctx.request.body.email.toLowerCase();
133
+ }
134
+ const updateData = {
135
+ ...ctx.request.body
136
+ };
137
+ const data = await getService('user').edit(user.id, updateData);
138
+ const sanitizedData = await sanitizeOutput(data, ctx);
139
+ ctx.send(sanitizedData);
140
+ },
141
+ /**
142
+ * Retrieve user records.
143
+ * @return {Object|Array}
144
+ */ async find (ctx) {
145
+ await validateQuery(ctx.query, ctx);
146
+ const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
147
+ const users = await getService('user').fetchAll(sanitizedQuery);
148
+ ctx.body = await Promise.all(users.map((user)=>sanitizeOutput(user, ctx)));
149
+ },
150
+ /**
151
+ * Retrieve a user record.
152
+ * @return {Object}
153
+ */ async findOne (ctx) {
154
+ const { id } = ctx.params;
155
+ await validateQuery(ctx.query, ctx);
156
+ const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
157
+ let data = await getService('user').fetch(id, sanitizedQuery);
158
+ if (data) {
159
+ data = await sanitizeOutput(data, ctx);
160
+ }
161
+ ctx.body = data;
162
+ },
163
+ /**
164
+ * Retrieve user count.
165
+ * @return {Number}
166
+ */ async count (ctx) {
167
+ await validateQuery(ctx.query, ctx);
168
+ const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
169
+ ctx.body = await getService('user').count(sanitizedQuery);
170
+ },
171
+ /**
172
+ * Destroy a/an user record.
173
+ * @return {Object}
174
+ */ async destroy (ctx) {
175
+ const { id } = ctx.params;
176
+ const data = await getService('user').remove({
177
+ id
178
+ });
179
+ const sanitizedUser = await sanitizeOutput(data, ctx);
180
+ ctx.send(sanitizedUser);
181
+ },
182
+ /**
183
+ * Retrieve authenticated user.
184
+ * @return {Object|Array}
185
+ */ async me (ctx) {
186
+ const authUser = ctx.state.user;
187
+ const { query } = ctx;
188
+ if (!authUser) {
189
+ return ctx.unauthorized();
190
+ }
191
+ await validateQuery(query, ctx);
192
+ const sanitizedQuery = await sanitizeQuery(query, ctx);
193
+ const user = await getService('user').fetch(authUser.id, sanitizedQuery);
194
+ ctx.body = await sanitizeOutput(user, ctx);
195
+ }
196
+ };
197
+ return user;
198
+ }
199
+
200
+ exports.__require = requireUser;
201
+ //# sourceMappingURL=user.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,199 @@
1
+ import require$$0 from 'lodash';
2
+ import require$$1 from '@strapi/utils';
3
+ import { __require as requireUtils } from '../utils/index.mjs';
4
+ import { __require as requireUser$1 } from './validation/user.mjs';
5
+
6
+ var user;
7
+ var hasRequiredUser;
8
+ function requireUser() {
9
+ if (hasRequiredUser) return user;
10
+ hasRequiredUser = 1;
11
+ /**
12
+ * User.js controller
13
+ *
14
+ * @description: A set of functions called "actions" for managing `User`.
15
+ */ const _ = require$$0;
16
+ const utils = require$$1;
17
+ const { getService } = requireUtils();
18
+ const { validateCreateUserBody, validateUpdateUserBody } = requireUser$1();
19
+ const { ApplicationError, ValidationError, NotFoundError } = utils.errors;
20
+ const sanitizeOutput = async (user, ctx)=>{
21
+ const schema = strapi.getModel('plugin::users-permissions.user');
22
+ const { auth } = ctx.state;
23
+ return strapi.contentAPI.sanitize.output(user, schema, {
24
+ auth
25
+ });
26
+ };
27
+ const validateQuery = async (query, ctx)=>{
28
+ const schema = strapi.getModel('plugin::users-permissions.user');
29
+ const { auth } = ctx.state;
30
+ return strapi.contentAPI.validate.query(query, schema, {
31
+ auth
32
+ });
33
+ };
34
+ const sanitizeQuery = async (query, ctx)=>{
35
+ const schema = strapi.getModel('plugin::users-permissions.user');
36
+ const { auth } = ctx.state;
37
+ return strapi.contentAPI.sanitize.query(query, schema, {
38
+ auth
39
+ });
40
+ };
41
+ user = {
42
+ /**
43
+ * Create a/an user record.
44
+ * @return {Object}
45
+ */ async create (ctx) {
46
+ const advanced = await strapi.store({
47
+ type: 'plugin',
48
+ name: 'users-permissions',
49
+ key: 'advanced'
50
+ }).get();
51
+ await validateCreateUserBody(ctx.request.body);
52
+ const { email, username, role } = ctx.request.body;
53
+ const userWithSameUsername = await strapi.db.query('plugin::users-permissions.user').findOne({
54
+ where: {
55
+ username
56
+ }
57
+ });
58
+ if (userWithSameUsername) {
59
+ if (!email) throw new ApplicationError('Username already taken');
60
+ }
61
+ if (advanced.unique_email) {
62
+ const userWithSameEmail = await strapi.db.query('plugin::users-permissions.user').findOne({
63
+ where: {
64
+ email: email.toLowerCase()
65
+ }
66
+ });
67
+ if (userWithSameEmail) {
68
+ throw new ApplicationError('Email already taken');
69
+ }
70
+ }
71
+ const user = {
72
+ ...ctx.request.body,
73
+ email: email.toLowerCase(),
74
+ provider: 'local'
75
+ };
76
+ if (!role) {
77
+ const defaultRole = await strapi.db.query('plugin::users-permissions.role').findOne({
78
+ where: {
79
+ type: advanced.default_role
80
+ }
81
+ });
82
+ user.role = defaultRole.id;
83
+ }
84
+ try {
85
+ const data = await getService('user').add(user);
86
+ const sanitizedData = await sanitizeOutput(data, ctx);
87
+ ctx.created(sanitizedData);
88
+ } catch (error) {
89
+ throw new ApplicationError(error.message);
90
+ }
91
+ },
92
+ /**
93
+ * Update a/an user record.
94
+ * @return {Object}
95
+ */ async update (ctx) {
96
+ const advancedConfigs = await strapi.store({
97
+ type: 'plugin',
98
+ name: 'users-permissions',
99
+ key: 'advanced'
100
+ }).get();
101
+ const { id } = ctx.params;
102
+ const { email, username, password } = ctx.request.body;
103
+ const user = await getService('user').fetch(id);
104
+ if (!user) {
105
+ throw new NotFoundError(`User not found`);
106
+ }
107
+ await validateUpdateUserBody(ctx.request.body);
108
+ if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {
109
+ throw new ValidationError('password.notNull');
110
+ }
111
+ if (_.has(ctx.request.body, 'username')) {
112
+ const userWithSameUsername = await strapi.db.query('plugin::users-permissions.user').findOne({
113
+ where: {
114
+ username
115
+ }
116
+ });
117
+ if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(id)) {
118
+ throw new ApplicationError('Username already taken');
119
+ }
120
+ }
121
+ if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {
122
+ const userWithSameEmail = await strapi.db.query('plugin::users-permissions.user').findOne({
123
+ where: {
124
+ email: email.toLowerCase()
125
+ }
126
+ });
127
+ if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {
128
+ throw new ApplicationError('Email already taken');
129
+ }
130
+ ctx.request.body.email = ctx.request.body.email.toLowerCase();
131
+ }
132
+ const updateData = {
133
+ ...ctx.request.body
134
+ };
135
+ const data = await getService('user').edit(user.id, updateData);
136
+ const sanitizedData = await sanitizeOutput(data, ctx);
137
+ ctx.send(sanitizedData);
138
+ },
139
+ /**
140
+ * Retrieve user records.
141
+ * @return {Object|Array}
142
+ */ async find (ctx) {
143
+ await validateQuery(ctx.query, ctx);
144
+ const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
145
+ const users = await getService('user').fetchAll(sanitizedQuery);
146
+ ctx.body = await Promise.all(users.map((user)=>sanitizeOutput(user, ctx)));
147
+ },
148
+ /**
149
+ * Retrieve a user record.
150
+ * @return {Object}
151
+ */ async findOne (ctx) {
152
+ const { id } = ctx.params;
153
+ await validateQuery(ctx.query, ctx);
154
+ const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
155
+ let data = await getService('user').fetch(id, sanitizedQuery);
156
+ if (data) {
157
+ data = await sanitizeOutput(data, ctx);
158
+ }
159
+ ctx.body = data;
160
+ },
161
+ /**
162
+ * Retrieve user count.
163
+ * @return {Number}
164
+ */ async count (ctx) {
165
+ await validateQuery(ctx.query, ctx);
166
+ const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
167
+ ctx.body = await getService('user').count(sanitizedQuery);
168
+ },
169
+ /**
170
+ * Destroy a/an user record.
171
+ * @return {Object}
172
+ */ async destroy (ctx) {
173
+ const { id } = ctx.params;
174
+ const data = await getService('user').remove({
175
+ id
176
+ });
177
+ const sanitizedUser = await sanitizeOutput(data, ctx);
178
+ ctx.send(sanitizedUser);
179
+ },
180
+ /**
181
+ * Retrieve authenticated user.
182
+ * @return {Object|Array}
183
+ */ async me (ctx) {
184
+ const authUser = ctx.state.user;
185
+ const { query } = ctx;
186
+ if (!authUser) {
187
+ return ctx.unauthorized();
188
+ }
189
+ await validateQuery(query, ctx);
190
+ const sanitizedQuery = await sanitizeQuery(query, ctx);
191
+ const user = await getService('user').fetch(authUser.id, sanitizedQuery);
192
+ ctx.body = await sanitizeOutput(user, ctx);
193
+ }
194
+ };
195
+ return user;
196
+ }
197
+
198
+ export { requireUser as __require };
199
+ //# sourceMappingURL=user.mjs.map
@@ -0,0 +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":"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"}
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ var require$$1 = require('@strapi/utils');
4
+
5
+ var auth;
6
+ var hasRequiredAuth;
7
+ function requireAuth() {
8
+ if (hasRequiredAuth) return auth;
9
+ hasRequiredAuth = 1;
10
+ const { yup, validateYupSchema } = require$$1;
11
+ const callbackSchema = yup.object({
12
+ identifier: yup.string().required(),
13
+ password: yup.string().required()
14
+ });
15
+ const createRegisterSchema = (config)=>yup.object({
16
+ email: yup.string().email().required(),
17
+ username: yup.string().required(),
18
+ password: yup.string().required().test(function(value) {
19
+ if (!value) return true;
20
+ const isValid = new TextEncoder().encode(value).length <= 72;
21
+ if (!isValid) {
22
+ return this.createError({
23
+ message: 'Password must be less than 73 bytes'
24
+ });
25
+ }
26
+ return true;
27
+ }).test(async function(value) {
28
+ if (typeof config?.validatePassword === 'function') {
29
+ try {
30
+ const isValid = await config.validatePassword(value);
31
+ if (!isValid) {
32
+ return this.createError({
33
+ message: 'Password validation failed.'
34
+ });
35
+ }
36
+ } catch (error) {
37
+ return this.createError({
38
+ message: error.message || 'An error occurred.'
39
+ });
40
+ }
41
+ }
42
+ return true;
43
+ })
44
+ });
45
+ const sendEmailConfirmationSchema = yup.object({
46
+ email: yup.string().email().required()
47
+ });
48
+ const validateEmailConfirmationSchema = yup.object({
49
+ confirmation: yup.string().required()
50
+ });
51
+ const forgotPasswordSchema = yup.object({
52
+ email: yup.string().email().required()
53
+ }).noUnknown();
54
+ const createResetPasswordSchema = (config)=>yup.object({
55
+ password: yup.string().required().test(function(value) {
56
+ if (!value) return true;
57
+ const isValid = new TextEncoder().encode(value).length <= 72;
58
+ if (!isValid) {
59
+ return this.createError({
60
+ message: 'Password must be less than 73 bytes'
61
+ });
62
+ }
63
+ return true;
64
+ }).test(async function(value) {
65
+ if (typeof config?.validatePassword === 'function') {
66
+ try {
67
+ const isValid = await config.validatePassword(value);
68
+ if (!isValid) {
69
+ return this.createError({
70
+ message: 'Password validation failed.'
71
+ });
72
+ }
73
+ } catch (error) {
74
+ return this.createError({
75
+ message: error.message || 'An error occurred.'
76
+ });
77
+ }
78
+ }
79
+ return true;
80
+ }),
81
+ passwordConfirmation: yup.string().required().oneOf([
82
+ yup.ref('password')
83
+ ], 'Passwords do not match'),
84
+ code: yup.string().required()
85
+ }).noUnknown();
86
+ const createChangePasswordSchema = (config)=>yup.object({
87
+ password: yup.string().required().test(function(value) {
88
+ if (!value) return true;
89
+ const isValid = new TextEncoder().encode(value).length <= 72;
90
+ if (!isValid) {
91
+ return this.createError({
92
+ message: 'Password must be less than 73 bytes'
93
+ });
94
+ }
95
+ return true;
96
+ }).test(async function(value) {
97
+ if (typeof config?.validatePassword === 'function') {
98
+ try {
99
+ const isValid = await config.validatePassword(value);
100
+ if (!isValid) {
101
+ return this.createError({
102
+ message: 'Password validation failed.'
103
+ });
104
+ }
105
+ } catch (error) {
106
+ return this.createError({
107
+ message: error.message || 'An error occurred.'
108
+ });
109
+ }
110
+ }
111
+ return true;
112
+ }),
113
+ passwordConfirmation: yup.string().required().oneOf([
114
+ yup.ref('password')
115
+ ], 'Passwords do not match'),
116
+ currentPassword: yup.string().required()
117
+ }).noUnknown();
118
+ auth = {
119
+ validateCallbackBody: validateYupSchema(callbackSchema),
120
+ validateRegisterBody: (payload, config)=>validateYupSchema(createRegisterSchema(config))(payload),
121
+ validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),
122
+ validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),
123
+ validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),
124
+ validateResetPasswordBody: (payload, config)=>validateYupSchema(createResetPasswordSchema(config))(payload),
125
+ validateChangePasswordBody: (payload, config)=>validateYupSchema(createChangePasswordSchema(config))(payload)
126
+ };
127
+ return auth;
128
+ }
129
+
130
+ exports.__require = requireAuth;
131
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +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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"}