@strapi/plugin-users-permissions 0.0.0-next.d0bd7aa4c25bfb448b93a62f3d47db9b6fdd8ee3 → 0.0.0-next.d12f17cb0e0c555e001d49241bfe5ec85e83c948

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 (765) hide show
  1. package/.eslintignore +2 -1
  2. package/LICENSE +18 -3
  3. package/admin/src/components/BoundRoute/index.jsx +3 -3
  4. package/admin/src/components/FormModal/Input/index.jsx +33 -32
  5. package/admin/src/components/FormModal/index.jsx +58 -69
  6. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +4 -3
  7. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +20 -22
  8. package/admin/src/components/Permissions/index.jsx +27 -35
  9. package/admin/src/components/Permissions/reducer.js +1 -1
  10. package/admin/src/components/Policies/index.jsx +9 -6
  11. package/admin/src/components/UsersPermissions/index.jsx +16 -7
  12. package/admin/src/components/UsersPermissions/reducer.js +1 -1
  13. package/admin/src/index.js +17 -34
  14. package/admin/src/pages/AdvancedSettings/index.jsx +85 -129
  15. package/admin/src/pages/AdvancedSettings/utils/layout.js +20 -35
  16. package/admin/src/pages/AdvancedSettings/utils/schema.js +5 -2
  17. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +121 -140
  18. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +21 -18
  19. package/admin/src/pages/EmailTemplates/index.jsx +36 -62
  20. package/admin/src/pages/EmailTemplates/utils/schema.js +18 -6
  21. package/admin/src/pages/Providers/index.jsx +98 -115
  22. package/admin/src/pages/Providers/utils/forms.js +23 -11
  23. package/admin/src/pages/Roles/constants.js +3 -3
  24. package/admin/src/pages/Roles/hooks/usePlugins.js +4 -4
  25. package/admin/src/pages/Roles/index.jsx +10 -19
  26. package/admin/src/pages/Roles/pages/CreatePage.jsx +74 -61
  27. package/admin/src/pages/Roles/pages/EditPage.jsx +70 -69
  28. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +28 -32
  29. package/admin/src/pages/Roles/pages/ListPage/index.jsx +152 -129
  30. package/admin/src/pluginId.js +2 -2
  31. package/admin/src/translations/de.json +27 -2
  32. package/admin/src/translations/en.json +2 -1
  33. package/admin/src/translations/uk.json +41 -4
  34. package/admin/src/utils/formatPluginName.js +1 -1
  35. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  36. package/dist/admin/components/BoundRoute/getMethodColor.js +49 -0
  37. package/dist/admin/components/BoundRoute/getMethodColor.js.map +1 -0
  38. package/dist/admin/components/BoundRoute/getMethodColor.mjs +47 -0
  39. package/dist/admin/components/BoundRoute/getMethodColor.mjs.map +1 -0
  40. package/dist/admin/components/BoundRoute/index.js +98 -0
  41. package/dist/admin/components/BoundRoute/index.js.map +1 -0
  42. package/dist/admin/components/BoundRoute/index.mjs +96 -0
  43. package/dist/admin/components/BoundRoute/index.mjs.map +1 -0
  44. package/dist/admin/components/FormModal/Input/index.js +123 -0
  45. package/dist/admin/components/FormModal/Input/index.js.map +1 -0
  46. package/dist/admin/components/FormModal/Input/index.mjs +121 -0
  47. package/dist/admin/components/FormModal/Input/index.mjs.map +1 -0
  48. package/dist/admin/components/FormModal/index.js +110 -0
  49. package/dist/admin/components/FormModal/index.js.map +1 -0
  50. package/dist/admin/components/FormModal/index.mjs +108 -0
  51. package/dist/admin/components/FormModal/index.mjs.map +1 -0
  52. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js +33 -0
  53. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js.map +1 -0
  54. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs +31 -0
  55. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs.map +1 -0
  56. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +158 -0
  57. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -0
  58. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +156 -0
  59. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -0
  60. package/dist/admin/components/Permissions/PermissionRow/index.js +50 -0
  61. package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -0
  62. package/dist/admin/components/Permissions/PermissionRow/index.mjs +48 -0
  63. package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -0
  64. package/dist/admin/components/Permissions/index.js +52 -0
  65. package/dist/admin/components/Permissions/index.js.map +1 -0
  66. package/dist/admin/components/Permissions/index.mjs +50 -0
  67. package/dist/admin/components/Permissions/index.mjs.map +1 -0
  68. package/dist/admin/components/Permissions/init.js +15 -0
  69. package/dist/admin/components/Permissions/init.js.map +1 -0
  70. package/dist/admin/components/Permissions/init.mjs +13 -0
  71. package/dist/admin/components/Permissions/init.mjs.map +1 -0
  72. package/dist/admin/components/Permissions/reducer.js +34 -0
  73. package/dist/admin/components/Permissions/reducer.js.map +1 -0
  74. package/dist/admin/components/Permissions/reducer.mjs +31 -0
  75. package/dist/admin/components/Permissions/reducer.mjs.map +1 -0
  76. package/dist/admin/components/Policies/index.js +68 -0
  77. package/dist/admin/components/Policies/index.js.map +1 -0
  78. package/dist/admin/components/Policies/index.mjs +66 -0
  79. package/dist/admin/components/Policies/index.mjs.map +1 -0
  80. package/dist/admin/components/UsersPermissions/index.js +116 -0
  81. package/dist/admin/components/UsersPermissions/index.js.map +1 -0
  82. package/dist/admin/components/UsersPermissions/index.mjs +114 -0
  83. package/dist/admin/components/UsersPermissions/index.mjs.map +1 -0
  84. package/dist/admin/components/UsersPermissions/init.js +13 -0
  85. package/dist/admin/components/UsersPermissions/init.js.map +1 -0
  86. package/dist/admin/components/UsersPermissions/init.mjs +11 -0
  87. package/dist/admin/components/UsersPermissions/init.mjs.map +1 -0
  88. package/dist/admin/components/UsersPermissions/reducer.js +73 -0
  89. package/dist/admin/components/UsersPermissions/reducer.js.map +1 -0
  90. package/dist/admin/components/UsersPermissions/reducer.mjs +68 -0
  91. package/dist/admin/components/UsersPermissions/reducer.mjs.map +1 -0
  92. package/dist/admin/constants.js +81 -0
  93. package/dist/admin/constants.js.map +1 -0
  94. package/dist/admin/constants.mjs +79 -0
  95. package/dist/admin/constants.mjs.map +1 -0
  96. package/dist/admin/contexts/UsersPermissionsContext/index.js +23 -0
  97. package/dist/admin/contexts/UsersPermissionsContext/index.js.map +1 -0
  98. package/dist/admin/contexts/UsersPermissionsContext/index.mjs +19 -0
  99. package/dist/admin/contexts/UsersPermissionsContext/index.mjs.map +1 -0
  100. package/dist/admin/index.js +124 -4
  101. package/dist/admin/index.js.map +1 -1
  102. package/dist/admin/index.mjs +119 -4
  103. package/dist/admin/index.mjs.map +1 -1
  104. package/dist/admin/package.json.js +14 -0
  105. package/dist/admin/package.json.js.map +1 -0
  106. package/dist/admin/package.json.mjs +11 -0
  107. package/dist/admin/package.json.mjs.map +1 -0
  108. package/dist/admin/pages/AdvancedSettings/index.js +195 -0
  109. package/dist/admin/pages/AdvancedSettings/index.js.map +1 -0
  110. package/dist/admin/pages/AdvancedSettings/index.mjs +192 -0
  111. package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -0
  112. package/dist/admin/pages/AdvancedSettings/utils/layout.js +83 -0
  113. package/dist/admin/pages/AdvancedSettings/utils/layout.js.map +1 -0
  114. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs +81 -0
  115. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs.map +1 -0
  116. package/dist/admin/pages/AdvancedSettings/utils/schema.js +40 -0
  117. package/dist/admin/pages/AdvancedSettings/utils/schema.js.map +1 -0
  118. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs +19 -0
  119. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs.map +1 -0
  120. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +172 -0
  121. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -0
  122. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +170 -0
  123. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -0
  124. package/dist/admin/pages/EmailTemplates/components/EmailTable.js +145 -0
  125. package/dist/admin/pages/EmailTemplates/components/EmailTable.js.map +1 -0
  126. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs +143 -0
  127. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs.map +1 -0
  128. package/dist/admin/pages/EmailTemplates/index.js +157 -0
  129. package/dist/admin/pages/EmailTemplates/index.js.map +1 -0
  130. package/dist/admin/pages/EmailTemplates/index.mjs +135 -0
  131. package/dist/admin/pages/EmailTemplates/index.mjs.map +1 -0
  132. package/dist/admin/pages/EmailTemplates/utils/schema.js +50 -0
  133. package/dist/admin/pages/EmailTemplates/utils/schema.js.map +1 -0
  134. package/dist/admin/pages/EmailTemplates/utils/schema.mjs +29 -0
  135. package/dist/admin/pages/EmailTemplates/utils/schema.mjs.map +1 -0
  136. package/dist/admin/pages/Providers/index.js +274 -0
  137. package/dist/admin/pages/Providers/index.js.map +1 -0
  138. package/dist/admin/pages/Providers/index.mjs +250 -0
  139. package/dist/admin/pages/Providers/index.mjs.map +1 -0
  140. package/dist/admin/pages/Providers/utils/forms.js +281 -0
  141. package/dist/admin/pages/Providers/utils/forms.js.map +1 -0
  142. package/dist/admin/pages/Providers/utils/forms.mjs +260 -0
  143. package/dist/admin/pages/Providers/utils/forms.mjs.map +1 -0
  144. package/dist/admin/pages/Roles/constants.js +31 -0
  145. package/dist/admin/pages/Roles/constants.js.map +1 -0
  146. package/dist/admin/pages/Roles/constants.mjs +10 -0
  147. package/dist/admin/pages/Roles/constants.mjs.map +1 -0
  148. package/dist/admin/pages/Roles/hooks/usePlugins.js +78 -0
  149. package/dist/admin/pages/Roles/hooks/usePlugins.js.map +1 -0
  150. package/dist/admin/pages/Roles/hooks/usePlugins.mjs +76 -0
  151. package/dist/admin/pages/Roles/hooks/usePlugins.mjs.map +1 -0
  152. package/dist/admin/pages/Roles/index.js +35 -0
  153. package/dist/admin/pages/Roles/index.js.map +1 -0
  154. package/dist/admin/pages/Roles/index.mjs +33 -0
  155. package/dist/admin/pages/Roles/index.mjs.map +1 -0
  156. package/dist/admin/pages/Roles/pages/CreatePage.js +239 -0
  157. package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -0
  158. package/dist/admin/pages/Roles/pages/CreatePage.mjs +217 -0
  159. package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -0
  160. package/dist/admin/pages/Roles/pages/EditPage.js +240 -0
  161. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -0
  162. package/dist/admin/pages/Roles/pages/EditPage.mjs +218 -0
  163. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -0
  164. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js +125 -0
  165. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -0
  166. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs +123 -0
  167. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -0
  168. package/dist/admin/pages/Roles/pages/ListPage/index.js +234 -0
  169. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -0
  170. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +231 -0
  171. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -0
  172. package/dist/admin/pluginId.js +8 -0
  173. package/dist/admin/pluginId.js.map +1 -0
  174. package/dist/admin/pluginId.mjs +6 -0
  175. package/dist/admin/pluginId.mjs.map +1 -0
  176. package/dist/admin/translations/ar.json.js +45 -0
  177. package/dist/admin/translations/ar.json.js.map +1 -0
  178. package/dist/admin/translations/ar.json.mjs +43 -0
  179. package/dist/admin/translations/ar.json.mjs.map +1 -0
  180. package/dist/admin/translations/cs.json.js +51 -0
  181. package/dist/admin/translations/cs.json.js.map +1 -0
  182. package/dist/admin/translations/cs.json.mjs +49 -0
  183. package/dist/admin/translations/cs.json.mjs.map +1 -0
  184. package/dist/admin/translations/de.json.js +88 -0
  185. package/dist/admin/translations/de.json.js.map +1 -0
  186. package/dist/admin/translations/de.json.mjs +86 -0
  187. package/dist/admin/translations/de.json.mjs.map +1 -0
  188. package/dist/admin/translations/dk.json.js +87 -0
  189. package/dist/admin/translations/dk.json.js.map +1 -0
  190. package/dist/admin/translations/dk.json.mjs +85 -0
  191. package/dist/admin/translations/dk.json.mjs.map +1 -0
  192. package/dist/admin/translations/en.json.js +88 -0
  193. package/dist/admin/translations/en.json.js.map +1 -0
  194. package/dist/admin/translations/en.json.mjs +86 -0
  195. package/dist/admin/translations/en.json.mjs.map +1 -0
  196. package/dist/admin/translations/es.json.js +87 -0
  197. package/dist/admin/translations/es.json.js.map +1 -0
  198. package/dist/admin/translations/es.json.mjs +85 -0
  199. package/dist/admin/translations/es.json.mjs.map +1 -0
  200. package/dist/admin/translations/fr.json.js +51 -0
  201. package/dist/admin/translations/fr.json.js.map +1 -0
  202. package/dist/admin/translations/fr.json.mjs +49 -0
  203. package/dist/admin/translations/fr.json.mjs.map +1 -0
  204. package/dist/admin/translations/id.json.js +63 -0
  205. package/dist/admin/translations/id.json.js.map +1 -0
  206. package/dist/admin/translations/id.json.mjs +61 -0
  207. package/dist/admin/translations/id.json.mjs.map +1 -0
  208. package/dist/admin/translations/it.json.js +63 -0
  209. package/dist/admin/translations/it.json.js.map +1 -0
  210. package/dist/admin/translations/it.json.mjs +61 -0
  211. package/dist/admin/translations/it.json.mjs.map +1 -0
  212. package/dist/admin/translations/ja.json.js +49 -0
  213. package/dist/admin/translations/ja.json.js.map +1 -0
  214. package/dist/admin/translations/ja.json.mjs +47 -0
  215. package/dist/admin/translations/ja.json.mjs.map +1 -0
  216. package/dist/admin/translations/ko.json.js +87 -0
  217. package/dist/admin/translations/ko.json.js.map +1 -0
  218. package/dist/admin/translations/ko.json.mjs +85 -0
  219. package/dist/admin/translations/ko.json.mjs.map +1 -0
  220. package/dist/admin/translations/ms.json.js +50 -0
  221. package/dist/admin/translations/ms.json.js.map +1 -0
  222. package/dist/admin/translations/ms.json.mjs +48 -0
  223. package/dist/admin/translations/ms.json.mjs.map +1 -0
  224. package/dist/admin/translations/nl.json.js +49 -0
  225. package/dist/admin/translations/nl.json.js.map +1 -0
  226. package/dist/admin/translations/nl.json.mjs +47 -0
  227. package/dist/admin/translations/nl.json.mjs.map +1 -0
  228. package/dist/admin/translations/pl.json.js +87 -0
  229. package/dist/admin/translations/pl.json.js.map +1 -0
  230. package/dist/admin/translations/pl.json.mjs +85 -0
  231. package/dist/admin/translations/pl.json.mjs.map +1 -0
  232. package/dist/admin/translations/pt-BR.json.js +45 -0
  233. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  234. package/dist/admin/translations/pt-BR.json.mjs +43 -0
  235. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  236. package/dist/admin/translations/pt.json.js +49 -0
  237. package/dist/admin/translations/pt.json.js.map +1 -0
  238. package/dist/admin/translations/pt.json.mjs +47 -0
  239. package/dist/admin/translations/pt.json.mjs.map +1 -0
  240. package/dist/admin/translations/ru.json.js +87 -0
  241. package/dist/admin/translations/ru.json.js.map +1 -0
  242. package/dist/admin/translations/ru.json.mjs +85 -0
  243. package/dist/admin/translations/ru.json.mjs.map +1 -0
  244. package/dist/admin/translations/sk.json.js +51 -0
  245. package/dist/admin/translations/sk.json.js.map +1 -0
  246. package/dist/admin/translations/sk.json.mjs +49 -0
  247. package/dist/admin/translations/sk.json.mjs.map +1 -0
  248. package/dist/admin/translations/sv.json.js +87 -0
  249. package/dist/admin/translations/sv.json.js.map +1 -0
  250. package/dist/admin/translations/sv.json.mjs +85 -0
  251. package/dist/admin/translations/sv.json.mjs.map +1 -0
  252. package/dist/admin/translations/th.json.js +61 -0
  253. package/dist/admin/translations/th.json.js.map +1 -0
  254. package/dist/admin/translations/th.json.mjs +59 -0
  255. package/dist/admin/translations/th.json.mjs.map +1 -0
  256. package/dist/admin/translations/tr.json.js +86 -0
  257. package/dist/admin/translations/tr.json.js.map +1 -0
  258. package/dist/admin/translations/tr.json.mjs +84 -0
  259. package/dist/admin/translations/tr.json.mjs.map +1 -0
  260. package/dist/admin/translations/uk.json.js +87 -0
  261. package/dist/admin/translations/uk.json.js.map +1 -0
  262. package/dist/admin/translations/uk.json.mjs +85 -0
  263. package/dist/admin/translations/uk.json.mjs.map +1 -0
  264. package/dist/admin/translations/vi.json.js +51 -0
  265. package/dist/admin/translations/vi.json.js.map +1 -0
  266. package/dist/admin/translations/vi.json.mjs +49 -0
  267. package/dist/admin/translations/vi.json.mjs.map +1 -0
  268. package/dist/admin/translations/zh-Hans.json.js +87 -0
  269. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  270. package/dist/admin/translations/zh-Hans.json.mjs +85 -0
  271. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  272. package/dist/admin/translations/zh.json.js +87 -0
  273. package/dist/admin/translations/zh.json.js.map +1 -0
  274. package/dist/admin/translations/zh.json.mjs +85 -0
  275. package/dist/admin/translations/zh.json.mjs.map +1 -0
  276. package/dist/admin/utils/cleanPermissions.js +24 -0
  277. package/dist/admin/utils/cleanPermissions.js.map +1 -0
  278. package/dist/admin/utils/cleanPermissions.mjs +22 -0
  279. package/dist/admin/utils/cleanPermissions.mjs.map +1 -0
  280. package/dist/admin/utils/formatPluginName.js +29 -0
  281. package/dist/admin/utils/formatPluginName.js.map +1 -0
  282. package/dist/admin/utils/formatPluginName.mjs +27 -0
  283. package/dist/admin/utils/formatPluginName.mjs.map +1 -0
  284. package/dist/admin/utils/getTrad.js +8 -0
  285. package/dist/admin/utils/getTrad.js.map +1 -0
  286. package/dist/admin/utils/getTrad.mjs +6 -0
  287. package/dist/admin/utils/getTrad.mjs.map +1 -0
  288. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  289. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  290. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  291. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  292. package/dist/server/_virtual/_commonjsHelpers.js +8 -0
  293. package/dist/server/_virtual/_commonjsHelpers.js.map +1 -0
  294. package/dist/server/_virtual/_commonjsHelpers.mjs +6 -0
  295. package/dist/server/_virtual/_commonjsHelpers.mjs.map +1 -0
  296. package/dist/server/bootstrap/index.js +166 -0
  297. package/dist/server/bootstrap/index.js.map +1 -0
  298. package/dist/server/bootstrap/index.mjs +164 -0
  299. package/dist/server/bootstrap/index.mjs.map +1 -0
  300. package/dist/server/bootstrap/users-permissions-actions.js +98 -0
  301. package/dist/server/bootstrap/users-permissions-actions.js.map +1 -0
  302. package/dist/server/bootstrap/users-permissions-actions.mjs +96 -0
  303. package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -0
  304. package/dist/server/config.js +70 -0
  305. package/dist/server/config.js.map +1 -0
  306. package/dist/server/config.mjs +68 -0
  307. package/dist/server/config.mjs.map +1 -0
  308. package/dist/server/content-types/index.js +30 -0
  309. package/dist/server/content-types/index.js.map +1 -0
  310. package/dist/server/content-types/index.mjs +28 -0
  311. package/dist/server/content-types/index.mjs.map +1 -0
  312. package/dist/server/content-types/permission/index.js +44 -0
  313. package/dist/server/content-types/permission/index.js.map +1 -0
  314. package/dist/server/content-types/permission/index.mjs +42 -0
  315. package/dist/server/content-types/permission/index.mjs.map +1 -0
  316. package/dist/server/content-types/role/index.js +61 -0
  317. package/dist/server/content-types/role/index.js.map +1 -0
  318. package/dist/server/content-types/role/index.mjs +59 -0
  319. package/dist/server/content-types/role/index.mjs.map +1 -0
  320. package/dist/server/content-types/user/index.js +84 -0
  321. package/dist/server/content-types/user/index.js.map +1 -0
  322. package/dist/server/content-types/user/index.mjs +82 -0
  323. package/dist/server/content-types/user/index.mjs.map +1 -0
  324. package/dist/server/content-types/user/schema-config.js +25 -0
  325. package/dist/server/content-types/user/schema-config.js.map +1 -0
  326. package/dist/server/content-types/user/schema-config.mjs +23 -0
  327. package/dist/server/content-types/user/schema-config.mjs.map +1 -0
  328. package/dist/server/controllers/auth.js +630 -0
  329. package/dist/server/controllers/auth.js.map +1 -0
  330. package/dist/server/controllers/auth.mjs +628 -0
  331. package/dist/server/controllers/auth.mjs.map +1 -0
  332. package/dist/server/controllers/content-manager-user.js +168 -0
  333. package/dist/server/controllers/content-manager-user.js.map +1 -0
  334. package/dist/server/controllers/content-manager-user.mjs +166 -0
  335. package/dist/server/controllers/content-manager-user.mjs.map +1 -0
  336. package/dist/server/controllers/index.js +33 -0
  337. package/dist/server/controllers/index.js.map +1 -0
  338. package/dist/server/controllers/index.mjs +31 -0
  339. package/dist/server/controllers/index.mjs.map +1 -0
  340. package/dist/server/controllers/permissions.js +37 -0
  341. package/dist/server/controllers/permissions.js.map +1 -0
  342. package/dist/server/controllers/permissions.mjs +35 -0
  343. package/dist/server/controllers/permissions.mjs.map +1 -0
  344. package/dist/server/controllers/role.js +91 -0
  345. package/dist/server/controllers/role.js.map +1 -0
  346. package/dist/server/controllers/role.mjs +89 -0
  347. package/dist/server/controllers/role.mjs.map +1 -0
  348. package/dist/server/controllers/settings.js +107 -0
  349. package/dist/server/controllers/settings.js.map +1 -0
  350. package/dist/server/controllers/settings.mjs +105 -0
  351. package/dist/server/controllers/settings.mjs.map +1 -0
  352. package/dist/server/controllers/user.js +201 -0
  353. package/dist/server/controllers/user.js.map +1 -0
  354. package/dist/server/controllers/user.mjs +199 -0
  355. package/dist/server/controllers/user.mjs.map +1 -0
  356. package/dist/server/controllers/validation/auth.js +131 -0
  357. package/dist/server/controllers/validation/auth.js.map +1 -0
  358. package/dist/server/controllers/validation/auth.mjs +129 -0
  359. package/dist/server/controllers/validation/auth.mjs.map +1 -0
  360. package/dist/server/controllers/validation/email-template.js +72 -0
  361. package/dist/server/controllers/validation/email-template.js.map +1 -0
  362. package/dist/server/controllers/validation/email-template.mjs +70 -0
  363. package/dist/server/controllers/validation/email-template.mjs.map +1 -0
  364. package/dist/server/controllers/validation/user.js +54 -0
  365. package/dist/server/controllers/validation/user.js.map +1 -0
  366. package/dist/server/controllers/validation/user.mjs +52 -0
  367. package/dist/server/controllers/validation/user.mjs.map +1 -0
  368. package/dist/server/graphql/index.js +66 -0
  369. package/dist/server/graphql/index.js.map +1 -0
  370. package/dist/server/graphql/index.mjs +64 -0
  371. package/dist/server/graphql/index.mjs.map +1 -0
  372. package/dist/server/graphql/mutations/auth/change-password.js +40 -0
  373. package/dist/server/graphql/mutations/auth/change-password.js.map +1 -0
  374. package/dist/server/graphql/mutations/auth/change-password.mjs +38 -0
  375. package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -0
  376. package/dist/server/graphql/mutations/auth/email-confirmation.js +38 -0
  377. package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -0
  378. package/dist/server/graphql/mutations/auth/email-confirmation.mjs +36 -0
  379. package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -0
  380. package/dist/server/graphql/mutations/auth/forgot-password.js +37 -0
  381. package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -0
  382. package/dist/server/graphql/mutations/auth/forgot-password.mjs +35 -0
  383. package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -0
  384. package/dist/server/graphql/mutations/auth/login.js +40 -0
  385. package/dist/server/graphql/mutations/auth/login.js.map +1 -0
  386. package/dist/server/graphql/mutations/auth/login.mjs +38 -0
  387. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -0
  388. package/dist/server/graphql/mutations/auth/register.js +38 -0
  389. package/dist/server/graphql/mutations/auth/register.js.map +1 -0
  390. package/dist/server/graphql/mutations/auth/register.mjs +36 -0
  391. package/dist/server/graphql/mutations/auth/register.mjs.map +1 -0
  392. package/dist/server/graphql/mutations/auth/reset-password.js +40 -0
  393. package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -0
  394. package/dist/server/graphql/mutations/auth/reset-password.mjs +38 -0
  395. package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -0
  396. package/dist/server/graphql/mutations/crud/role/create-role.js +37 -0
  397. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -0
  398. package/dist/server/graphql/mutations/crud/role/create-role.mjs +35 -0
  399. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -0
  400. package/dist/server/graphql/mutations/crud/role/delete-role.js +32 -0
  401. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -0
  402. package/dist/server/graphql/mutations/crud/role/delete-role.mjs +30 -0
  403. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -0
  404. package/dist/server/graphql/mutations/crud/role/update-role.js +39 -0
  405. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -0
  406. package/dist/server/graphql/mutations/crud/role/update-role.mjs +37 -0
  407. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -0
  408. package/dist/server/graphql/mutations/crud/user/create-user.js +46 -0
  409. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -0
  410. package/dist/server/graphql/mutations/crud/user/create-user.mjs +44 -0
  411. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -0
  412. package/dist/server/graphql/mutations/crud/user/delete-user.js +44 -0
  413. package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -0
  414. package/dist/server/graphql/mutations/crud/user/delete-user.mjs +42 -0
  415. package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -0
  416. package/dist/server/graphql/mutations/crud/user/update-user.js +49 -0
  417. package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -0
  418. package/dist/server/graphql/mutations/crud/user/update-user.mjs +47 -0
  419. package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -0
  420. package/dist/server/graphql/mutations/index.js +58 -0
  421. package/dist/server/graphql/mutations/index.js.map +1 -0
  422. package/dist/server/graphql/mutations/index.mjs +56 -0
  423. package/dist/server/graphql/mutations/index.mjs.map +1 -0
  424. package/dist/server/graphql/queries/index.js +25 -0
  425. package/dist/server/graphql/queries/index.js.map +1 -0
  426. package/dist/server/graphql/queries/index.mjs +23 -0
  427. package/dist/server/graphql/queries/index.mjs.map +1 -0
  428. package/dist/server/graphql/queries/me.js +23 -0
  429. package/dist/server/graphql/queries/me.js.map +1 -0
  430. package/dist/server/graphql/queries/me.mjs +21 -0
  431. package/dist/server/graphql/queries/me.mjs.map +1 -0
  432. package/dist/server/graphql/resolvers-configs.js +93 -0
  433. package/dist/server/graphql/resolvers-configs.js.map +1 -0
  434. package/dist/server/graphql/resolvers-configs.mjs +91 -0
  435. package/dist/server/graphql/resolvers-configs.mjs.map +1 -0
  436. package/dist/server/graphql/types/create-role-payload.js +20 -0
  437. package/dist/server/graphql/types/create-role-payload.js.map +1 -0
  438. package/dist/server/graphql/types/create-role-payload.mjs +18 -0
  439. package/dist/server/graphql/types/create-role-payload.mjs.map +1 -0
  440. package/dist/server/graphql/types/delete-role-payload.js +20 -0
  441. package/dist/server/graphql/types/delete-role-payload.js.map +1 -0
  442. package/dist/server/graphql/types/delete-role-payload.mjs +18 -0
  443. package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -0
  444. package/dist/server/graphql/types/index.js +41 -0
  445. package/dist/server/graphql/types/index.js.map +1 -0
  446. package/dist/server/graphql/types/index.mjs +39 -0
  447. package/dist/server/graphql/types/index.mjs.map +1 -0
  448. package/dist/server/graphql/types/login-input.js +24 -0
  449. package/dist/server/graphql/types/login-input.js.map +1 -0
  450. package/dist/server/graphql/types/login-input.mjs +22 -0
  451. package/dist/server/graphql/types/login-input.mjs.map +1 -0
  452. package/dist/server/graphql/types/login-payload.js +23 -0
  453. package/dist/server/graphql/types/login-payload.js.map +1 -0
  454. package/dist/server/graphql/types/login-payload.mjs +21 -0
  455. package/dist/server/graphql/types/login-payload.mjs.map +1 -0
  456. package/dist/server/graphql/types/me-role.js +23 -0
  457. package/dist/server/graphql/types/me-role.js.map +1 -0
  458. package/dist/server/graphql/types/me-role.mjs +21 -0
  459. package/dist/server/graphql/types/me-role.mjs.map +1 -0
  460. package/dist/server/graphql/types/me.js +28 -0
  461. package/dist/server/graphql/types/me.js.map +1 -0
  462. package/dist/server/graphql/types/me.mjs +26 -0
  463. package/dist/server/graphql/types/me.mjs.map +1 -0
  464. package/dist/server/graphql/types/password-payload.js +20 -0
  465. package/dist/server/graphql/types/password-payload.js.map +1 -0
  466. package/dist/server/graphql/types/password-payload.mjs +18 -0
  467. package/dist/server/graphql/types/password-payload.mjs.map +1 -0
  468. package/dist/server/graphql/types/register-input.js +22 -0
  469. package/dist/server/graphql/types/register-input.js.map +1 -0
  470. package/dist/server/graphql/types/register-input.mjs +20 -0
  471. package/dist/server/graphql/types/register-input.mjs.map +1 -0
  472. package/dist/server/graphql/types/update-role-payload.js +20 -0
  473. package/dist/server/graphql/types/update-role-payload.js.map +1 -0
  474. package/dist/server/graphql/types/update-role-payload.mjs +18 -0
  475. package/dist/server/graphql/types/update-role-payload.mjs.map +1 -0
  476. package/dist/server/graphql/types/user-input.js +26 -0
  477. package/dist/server/graphql/types/user-input.js.map +1 -0
  478. package/dist/server/graphql/types/user-input.mjs +24 -0
  479. package/dist/server/graphql/types/user-input.mjs.map +1 -0
  480. package/dist/server/graphql/utils.js +32 -0
  481. package/dist/server/graphql/utils.js.map +1 -0
  482. package/dist/server/graphql/utils.mjs +30 -0
  483. package/dist/server/graphql/utils.mjs.map +1 -0
  484. package/dist/server/index.js +10 -0
  485. package/dist/server/index.js.map +1 -0
  486. package/dist/server/index.mjs +8 -0
  487. package/dist/server/index.mjs.map +1 -0
  488. package/dist/server/index2.js +39 -0
  489. package/dist/server/index2.js.map +1 -0
  490. package/dist/server/index2.mjs +37 -0
  491. package/dist/server/index2.mjs.map +1 -0
  492. package/dist/server/middlewares/index.js +18 -0
  493. package/dist/server/middlewares/index.js.map +1 -0
  494. package/dist/server/middlewares/index.mjs +16 -0
  495. package/dist/server/middlewares/index.mjs.map +1 -0
  496. package/dist/server/middlewares/rateLimit.js +51 -0
  497. package/dist/server/middlewares/rateLimit.js.map +1 -0
  498. package/dist/server/middlewares/rateLimit.mjs +49 -0
  499. package/dist/server/middlewares/rateLimit.mjs.map +1 -0
  500. package/dist/server/register.js +41 -0
  501. package/dist/server/register.js.map +1 -0
  502. package/dist/server/register.mjs +39 -0
  503. package/dist/server/register.mjs.map +1 -0
  504. package/dist/server/routes/admin/index.js +27 -0
  505. package/dist/server/routes/admin/index.js.map +1 -0
  506. package/dist/server/routes/admin/index.mjs +25 -0
  507. package/dist/server/routes/admin/index.mjs.map +1 -0
  508. package/dist/server/routes/admin/permissions.js +29 -0
  509. package/dist/server/routes/admin/permissions.js.map +1 -0
  510. package/dist/server/routes/admin/permissions.mjs +27 -0
  511. package/dist/server/routes/admin/permissions.mjs.map +1 -0
  512. package/dist/server/routes/admin/role.js +99 -0
  513. package/dist/server/routes/admin/role.js.map +1 -0
  514. package/dist/server/routes/admin/role.mjs +97 -0
  515. package/dist/server/routes/admin/role.mjs.map +1 -0
  516. package/dist/server/routes/admin/settings.js +116 -0
  517. package/dist/server/routes/admin/settings.js.map +1 -0
  518. package/dist/server/routes/admin/settings.mjs +114 -0
  519. package/dist/server/routes/admin/settings.mjs.map +1 -0
  520. package/dist/server/routes/content-api/auth.js +168 -0
  521. package/dist/server/routes/content-api/auth.js.map +1 -0
  522. package/dist/server/routes/content-api/auth.mjs +166 -0
  523. package/dist/server/routes/content-api/auth.mjs.map +1 -0
  524. package/dist/server/routes/content-api/index.js +32 -0
  525. package/dist/server/routes/content-api/index.js.map +1 -0
  526. package/dist/server/routes/content-api/index.mjs +30 -0
  527. package/dist/server/routes/content-api/index.mjs.map +1 -0
  528. package/dist/server/routes/content-api/permissions.js +26 -0
  529. package/dist/server/routes/content-api/permissions.js.map +1 -0
  530. package/dist/server/routes/content-api/permissions.mjs +24 -0
  531. package/dist/server/routes/content-api/permissions.mjs.map +1 -0
  532. package/dist/server/routes/content-api/role.js +73 -0
  533. package/dist/server/routes/content-api/role.js.map +1 -0
  534. package/dist/server/routes/content-api/role.mjs +71 -0
  535. package/dist/server/routes/content-api/role.mjs.map +1 -0
  536. package/dist/server/routes/content-api/user.js +132 -0
  537. package/dist/server/routes/content-api/user.js.map +1 -0
  538. package/dist/server/routes/content-api/user.mjs +130 -0
  539. package/dist/server/routes/content-api/user.mjs.map +1 -0
  540. package/dist/server/routes/content-api/validation.js +217 -0
  541. package/dist/server/routes/content-api/validation.js.map +1 -0
  542. package/dist/server/routes/content-api/validation.mjs +215 -0
  543. package/dist/server/routes/content-api/validation.mjs.map +1 -0
  544. package/dist/server/routes/index.js +19 -0
  545. package/dist/server/routes/index.js.map +1 -0
  546. package/dist/server/routes/index.mjs +17 -0
  547. package/dist/server/routes/index.mjs.map +1 -0
  548. package/dist/server/services/constants.js +19 -0
  549. package/dist/server/services/constants.js.map +1 -0
  550. package/dist/server/services/constants.mjs +17 -0
  551. package/dist/server/services/constants.mjs.map +1 -0
  552. package/dist/server/services/index.js +36 -0
  553. package/dist/server/services/index.js.map +1 -0
  554. package/dist/server/services/index.mjs +34 -0
  555. package/dist/server/services/index.mjs.map +1 -0
  556. package/dist/server/services/jwt.js +93 -0
  557. package/dist/server/services/jwt.js.map +1 -0
  558. package/dist/server/services/jwt.mjs +91 -0
  559. package/dist/server/services/jwt.mjs.map +1 -0
  560. package/dist/server/services/permission.js +52 -0
  561. package/dist/server/services/permission.js.map +1 -0
  562. package/dist/server/services/permission.mjs +50 -0
  563. package/dist/server/services/permission.mjs.map +1 -0
  564. package/dist/server/services/providers-registry.js +555 -0
  565. package/dist/server/services/providers-registry.js.map +1 -0
  566. package/dist/server/services/providers-registry.mjs +553 -0
  567. package/dist/server/services/providers-registry.mjs.map +1 -0
  568. package/dist/server/services/providers.js +111 -0
  569. package/dist/server/services/providers.js.map +1 -0
  570. package/dist/server/services/providers.mjs +109 -0
  571. package/dist/server/services/providers.mjs.map +1 -0
  572. package/dist/server/services/role.js +186 -0
  573. package/dist/server/services/role.js.map +1 -0
  574. package/dist/server/services/role.mjs +184 -0
  575. package/dist/server/services/role.mjs.map +1 -0
  576. package/dist/server/services/user.js +188 -0
  577. package/dist/server/services/user.js.map +1 -0
  578. package/dist/server/services/user.mjs +186 -0
  579. package/dist/server/services/user.mjs.map +1 -0
  580. package/dist/server/services/users-permissions.js +256 -0
  581. package/dist/server/services/users-permissions.js.map +1 -0
  582. package/dist/server/services/users-permissions.mjs +254 -0
  583. package/dist/server/services/users-permissions.mjs.map +1 -0
  584. package/dist/server/strategies/users-permissions.js +114 -0
  585. package/dist/server/strategies/users-permissions.js.map +1 -0
  586. package/dist/server/strategies/users-permissions.mjs +112 -0
  587. package/dist/server/strategies/users-permissions.mjs.map +1 -0
  588. package/dist/server/utils/index.js +22 -0
  589. package/dist/server/utils/index.js.map +1 -0
  590. package/dist/server/utils/index.mjs +20 -0
  591. package/dist/server/utils/index.mjs.map +1 -0
  592. package/dist/server/utils/sanitize/index.js +21 -0
  593. package/dist/server/utils/sanitize/index.js.map +1 -0
  594. package/dist/server/utils/sanitize/index.mjs +19 -0
  595. package/dist/server/utils/sanitize/index.mjs.map +1 -0
  596. package/dist/server/utils/sanitize/sanitizers.js +32 -0
  597. package/dist/server/utils/sanitize/sanitizers.js.map +1 -0
  598. package/dist/server/utils/sanitize/sanitizers.mjs +30 -0
  599. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -0
  600. package/dist/server/utils/sanitize/visitors/index.js +17 -0
  601. package/dist/server/utils/sanitize/visitors/index.js.map +1 -0
  602. package/dist/server/utils/sanitize/visitors/index.mjs +15 -0
  603. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -0
  604. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +17 -0
  605. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -0
  606. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs +15 -0
  607. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -0
  608. package/package.json +33 -33
  609. package/rollup.config.mjs +19 -0
  610. package/server/bootstrap/index.js +49 -51
  611. package/server/bootstrap/users-permissions-actions.js +6 -0
  612. package/server/config.js +51 -0
  613. package/server/content-types/user/index.js +0 -1
  614. package/server/controllers/auth.js +309 -72
  615. package/server/controllers/content-manager-user.js +31 -34
  616. package/server/controllers/role.js +17 -4
  617. package/server/controllers/user.js +8 -9
  618. package/server/controllers/validation/auth.js +104 -25
  619. package/server/controllers/validation/user.js +12 -1
  620. package/server/graphql/types/index.js +1 -0
  621. package/server/graphql/types/me.js +1 -0
  622. package/server/graphql/types/user-input.js +20 -0
  623. package/server/middlewares/rateLimit.js +1 -1
  624. package/server/register.js +2 -2
  625. package/server/routes/content-api/auth.js +119 -71
  626. package/server/routes/content-api/index.js +11 -4
  627. package/server/routes/content-api/permissions.js +14 -7
  628. package/server/routes/content-api/role.js +57 -27
  629. package/server/routes/content-api/user.js +108 -51
  630. package/server/routes/content-api/validation.js +250 -0
  631. package/server/services/constants.js +9 -0
  632. package/server/services/jwt.js +53 -5
  633. package/server/services/permission.js +3 -7
  634. package/server/services/providers-registry.js +468 -275
  635. package/server/services/providers.js +10 -5
  636. package/server/services/role.js +15 -13
  637. package/server/services/user.js +67 -19
  638. package/server/services/users-permissions.js +21 -15
  639. package/server/utils/index.d.ts +2 -1
  640. package/server/utils/sanitize/sanitizers.js +7 -3
  641. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  642. package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
  643. package/dist/_chunks/ar-MvD8Ghac.mjs +0 -44
  644. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  645. package/dist/_chunks/ar-t5qTFaAD.js +0 -44
  646. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  647. package/dist/_chunks/cs-BMuXwxA1.mjs +0 -50
  648. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  649. package/dist/_chunks/cs-I8N4u-Sd.js +0 -50
  650. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  651. package/dist/_chunks/de-YTjtq89K.js +0 -62
  652. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  653. package/dist/_chunks/de-zs2qqc0W.mjs +0 -62
  654. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  655. package/dist/_chunks/dk-HctVBMsG.mjs +0 -86
  656. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  657. package/dist/_chunks/dk-TF-dWjzl.js +0 -86
  658. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  659. package/dist/_chunks/en-CE3wEy_c.mjs +0 -86
  660. package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
  661. package/dist/_chunks/en-m608rMZx.js +0 -86
  662. package/dist/_chunks/en-m608rMZx.js.map +0 -1
  663. package/dist/_chunks/es-9381tih_.mjs +0 -86
  664. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  665. package/dist/_chunks/es-XBQsB8_9.js +0 -86
  666. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  667. package/dist/_chunks/fr-6cz3U-IF.js +0 -50
  668. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  669. package/dist/_chunks/fr-CMSc77If.mjs +0 -50
  670. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  671. package/dist/_chunks/id-RJ934rq-.js +0 -62
  672. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  673. package/dist/_chunks/id-SDuyIkZa.mjs +0 -62
  674. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  675. package/dist/_chunks/index-0Vc-UWcV.js +0 -249
  676. package/dist/_chunks/index-0Vc-UWcV.js.map +0 -1
  677. package/dist/_chunks/index-4Vr0bnMf.mjs +0 -385
  678. package/dist/_chunks/index-4Vr0bnMf.mjs.map +0 -1
  679. package/dist/_chunks/index-9piswtke.mjs +0 -301
  680. package/dist/_chunks/index-9piswtke.mjs.map +0 -1
  681. package/dist/_chunks/index-A0iXYUYF.mjs +0 -615
  682. package/dist/_chunks/index-A0iXYUYF.mjs.map +0 -1
  683. package/dist/_chunks/index-F4BN074l.mjs +0 -250
  684. package/dist/_chunks/index-F4BN074l.mjs.map +0 -1
  685. package/dist/_chunks/index-NUzEflvS.js +0 -320
  686. package/dist/_chunks/index-NUzEflvS.js.map +0 -1
  687. package/dist/_chunks/index-RsjaHQhm.mjs +0 -1159
  688. package/dist/_chunks/index-RsjaHQhm.mjs.map +0 -1
  689. package/dist/_chunks/index-WmKXywmF.js +0 -638
  690. package/dist/_chunks/index-WmKXywmF.js.map +0 -1
  691. package/dist/_chunks/index-iRrIhpCY.js +0 -407
  692. package/dist/_chunks/index-iRrIhpCY.js.map +0 -1
  693. package/dist/_chunks/index-qfsD2498.js +0 -1191
  694. package/dist/_chunks/index-qfsD2498.js.map +0 -1
  695. package/dist/_chunks/it-YhZOlM2X.js +0 -62
  696. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  697. package/dist/_chunks/it-bvH7DgQo.mjs +0 -62
  698. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  699. package/dist/_chunks/ja-o_-JPvQv.mjs +0 -48
  700. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  701. package/dist/_chunks/ja-xssHUXFv.js +0 -48
  702. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  703. package/dist/_chunks/ko-C3mHUSJa.js +0 -86
  704. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  705. package/dist/_chunks/ko-XJbPSez_.mjs +0 -86
  706. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  707. package/dist/_chunks/ms-II5Ea73J.mjs +0 -49
  708. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  709. package/dist/_chunks/ms-d0hfg65Z.js +0 -49
  710. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  711. package/dist/_chunks/nl-TA7TfK_5.js +0 -48
  712. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  713. package/dist/_chunks/nl-vEy6TN0K.mjs +0 -48
  714. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  715. package/dist/_chunks/pl-0pUL9hdA.js +0 -86
  716. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  717. package/dist/_chunks/pl-2VowaFGt.mjs +0 -86
  718. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  719. package/dist/_chunks/pt-BR-WNOhafR4.js +0 -44
  720. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  721. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs +0 -44
  722. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  723. package/dist/_chunks/pt-Rf9W51IO.mjs +0 -48
  724. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  725. package/dist/_chunks/pt-guNR9Gax.js +0 -48
  726. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  727. package/dist/_chunks/ru-X3BMXDds.js +0 -86
  728. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  729. package/dist/_chunks/ru-qKHnd5or.mjs +0 -86
  730. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  731. package/dist/_chunks/sk-NWPw1oTN.js +0 -50
  732. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  733. package/dist/_chunks/sk-_Ryr-eTT.mjs +0 -50
  734. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  735. package/dist/_chunks/sv-76NnbB__.js +0 -86
  736. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  737. package/dist/_chunks/sv-BqzScFXS.mjs +0 -86
  738. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  739. package/dist/_chunks/th-WsknMEpq.mjs +0 -60
  740. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  741. package/dist/_chunks/th-cbppX21D.js +0 -60
  742. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  743. package/dist/_chunks/tr-6mm_Fmz7.js +0 -85
  744. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  745. package/dist/_chunks/tr-_DB1F1GW.mjs +0 -85
  746. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  747. package/dist/_chunks/uk-sI2I1ogF.js +0 -49
  748. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  749. package/dist/_chunks/uk-yxMSQAwI.mjs +0 -49
  750. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  751. package/dist/_chunks/vi-A3zJxaiI.js +0 -50
  752. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  753. package/dist/_chunks/vi-xY0zCW3d.mjs +0 -50
  754. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  755. package/dist/_chunks/zh-72SpmFXa.js +0 -86
  756. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  757. package/dist/_chunks/zh-Hans-ArWWtyP4.js +0 -86
  758. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  759. package/dist/_chunks/zh-Hans-E84cu4kP.mjs +0 -86
  760. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  761. package/dist/_chunks/zh-OFeldzbX.mjs +0 -86
  762. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  763. package/packup.config.ts +0 -22
  764. package/server/bootstrap/grant-config.js +0 -140
  765. package/strapi-server.js +0 -3
@@ -11,9 +11,6 @@ const crypto = require('crypto');
11
11
  const _ = require('lodash');
12
12
  const { concat, compact, isArray } = require('lodash/fp');
13
13
  const utils = require('@strapi/utils');
14
- const {
15
- contentTypes: { getNonWritableAttributes },
16
- } = require('@strapi/utils');
17
14
  const { getService } = require('../utils');
18
15
  const {
19
16
  validateCallbackBody,
@@ -25,17 +22,22 @@ const {
25
22
  validateChangePasswordBody,
26
23
  } = require('./validation/auth');
27
24
 
28
- const { getAbsoluteAdminUrl, getAbsoluteServerUrl, sanitize } = utils;
29
25
  const { ApplicationError, ValidationError, ForbiddenError } = utils.errors;
30
26
 
31
27
  const sanitizeUser = (user, ctx) => {
32
28
  const { auth } = ctx.state;
33
29
  const userSchema = strapi.getModel('plugin::users-permissions.user');
34
30
 
35
- return sanitize.contentAPI.output(user, userSchema, { auth });
31
+ return strapi.contentAPI.sanitize.output(user, userSchema, { auth });
36
32
  };
37
33
 
38
- module.exports = {
34
+ const extractDeviceId = (requestBody) => {
35
+ const { deviceId } = requestBody || {};
36
+
37
+ return typeof deviceId === 'string' && deviceId.length > 0 ? deviceId : undefined;
38
+ };
39
+
40
+ module.exports = ({ strapi }) => ({
39
41
  async callback(ctx) {
40
42
  const provider = ctx.params.provider || 'local';
41
43
  const params = ctx.request.body;
@@ -55,7 +57,7 @@ module.exports = {
55
57
  const { identifier } = params;
56
58
 
57
59
  // Check if the user exists.
58
- const user = await strapi.query('plugin::users-permissions.user').findOne({
60
+ const user = await strapi.db.query('plugin::users-permissions.user').findOne({
59
61
  where: {
60
62
  provider,
61
63
  $or: [{ email: identifier.toLowerCase() }, { username: identifier }],
@@ -90,6 +92,51 @@ module.exports = {
90
92
  throw new ApplicationError('Your account has been blocked by an administrator');
91
93
  }
92
94
 
95
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
96
+ if (mode === 'refresh') {
97
+ const deviceId = extractDeviceId(ctx.request.body);
98
+
99
+ const refresh = await strapi
100
+ .sessionManager('users-permissions')
101
+ .generateRefreshToken(String(user.id), deviceId, { type: 'refresh' });
102
+
103
+ const access = await strapi
104
+ .sessionManager('users-permissions')
105
+ .generateAccessToken(refresh.token);
106
+ if ('error' in access) {
107
+ throw new ApplicationError('Invalid credentials');
108
+ }
109
+
110
+ const upSessions = strapi.config.get('plugin::users-permissions.sessions');
111
+ const requestHttpOnly = ctx.request.header['x-strapi-refresh-cookie'] === 'httpOnly';
112
+ if (upSessions?.httpOnly || requestHttpOnly) {
113
+ const cookieName = upSessions.cookie?.name || 'strapi_up_refresh';
114
+ const isProduction = process.env.NODE_ENV === 'production';
115
+ const isSecure =
116
+ typeof upSessions.cookie?.secure === 'boolean'
117
+ ? upSessions.cookie?.secure
118
+ : isProduction;
119
+
120
+ const cookieOptions = {
121
+ httpOnly: true,
122
+ secure: isSecure,
123
+ sameSite: upSessions.cookie?.sameSite ?? 'lax',
124
+ path: upSessions.cookie?.path ?? '/',
125
+ domain: upSessions.cookie?.domain,
126
+ overwrite: true,
127
+ };
128
+
129
+ ctx.cookies.set(cookieName, refresh.token, cookieOptions);
130
+ return ctx.send({ jwt: access.token, user: await sanitizeUser(user, ctx) });
131
+ }
132
+
133
+ return ctx.send({
134
+ jwt: access.token,
135
+ refreshToken: refresh.token,
136
+ user: await sanitizeUser(user, ctx),
137
+ });
138
+ }
139
+
93
140
  return ctx.send({
94
141
  jwt: getService('jwt').issue({ id: user.id }),
95
142
  user: await sanitizeUser(user, ctx),
@@ -104,6 +151,49 @@ module.exports = {
104
151
  throw new ForbiddenError('Your account has been blocked by an administrator');
105
152
  }
106
153
 
154
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
155
+ if (mode === 'refresh') {
156
+ const deviceId = extractDeviceId(ctx.request.body);
157
+
158
+ const refresh = await strapi
159
+ .sessionManager('users-permissions')
160
+ .generateRefreshToken(String(user.id), deviceId, { type: 'refresh' });
161
+
162
+ const access = await strapi
163
+ .sessionManager('users-permissions')
164
+ .generateAccessToken(refresh.token);
165
+ if ('error' in access) {
166
+ throw new ApplicationError('Invalid credentials');
167
+ }
168
+
169
+ const upSessions = strapi.config.get('plugin::users-permissions.sessions');
170
+ const requestHttpOnly = ctx.request.header['x-strapi-refresh-cookie'] === 'httpOnly';
171
+ if (upSessions?.httpOnly || requestHttpOnly) {
172
+ const cookieName = upSessions.cookie?.name || 'strapi_up_refresh';
173
+ const isProduction = process.env.NODE_ENV === 'production';
174
+ const isSecure =
175
+ typeof upSessions.cookie?.secure === 'boolean'
176
+ ? upSessions.cookie?.secure
177
+ : isProduction;
178
+
179
+ const cookieOptions = {
180
+ httpOnly: true,
181
+ secure: isSecure,
182
+ sameSite: upSessions.cookie?.sameSite ?? 'lax',
183
+ path: upSessions.cookie?.path ?? '/',
184
+ domain: upSessions.cookie?.domain,
185
+ overwrite: true,
186
+ };
187
+ ctx.cookies.set(cookieName, refresh.token, cookieOptions);
188
+ return ctx.send({ jwt: access.token, user: await sanitizeUser(user, ctx) });
189
+ }
190
+ return ctx.send({
191
+ jwt: access.token,
192
+ refreshToken: refresh.token,
193
+ user: await sanitizeUser(user, ctx),
194
+ });
195
+ }
196
+
107
197
  return ctx.send({
108
198
  jwt: getService('jwt').issue({ id: user.id }),
109
199
  user: await sanitizeUser(user, ctx),
@@ -118,13 +208,17 @@ module.exports = {
118
208
  throw new ApplicationError('You must be authenticated to reset your password');
119
209
  }
120
210
 
121
- const { currentPassword, password } = await validateChangePasswordBody(ctx.request.body);
211
+ const validations = strapi.config.get('plugin::users-permissions.validationRules');
122
212
 
123
- const user = await strapi.entityService.findOne(
124
- 'plugin::users-permissions.user',
125
- ctx.state.user.id
213
+ const { currentPassword, password } = await validateChangePasswordBody(
214
+ ctx.request.body,
215
+ validations
126
216
  );
127
217
 
218
+ const user = await strapi.db
219
+ .query('plugin::users-permissions.user')
220
+ .findOne({ where: { id: ctx.state.user.id } });
221
+
128
222
  const validPassword = await getService('user').validatePassword(currentPassword, user.password);
129
223
 
130
224
  if (!validPassword) {
@@ -137,22 +231,51 @@ module.exports = {
137
231
 
138
232
  await getService('user').edit(user.id, { password });
139
233
 
140
- ctx.send({
234
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
235
+ if (mode === 'refresh') {
236
+ const deviceId = extractDeviceId(ctx.request.body);
237
+
238
+ // Invalidate all sessions when password changes for security
239
+ await strapi.sessionManager('users-permissions').invalidateRefreshToken(String(user.id));
240
+
241
+ const newDeviceId = deviceId || crypto.randomUUID();
242
+ const refresh = await strapi
243
+ .sessionManager('users-permissions')
244
+ .generateRefreshToken(String(user.id), newDeviceId, { type: 'refresh' });
245
+
246
+ const access = await strapi
247
+ .sessionManager('users-permissions')
248
+ .generateAccessToken(refresh.token);
249
+ if ('error' in access) {
250
+ throw new ApplicationError('Invalid credentials');
251
+ }
252
+
253
+ return ctx.send({
254
+ jwt: access.token,
255
+ refreshToken: refresh.token,
256
+ user: await sanitizeUser(user, ctx),
257
+ });
258
+ }
259
+
260
+ return ctx.send({
141
261
  jwt: getService('jwt').issue({ id: user.id }),
142
262
  user: await sanitizeUser(user, ctx),
143
263
  });
144
264
  },
145
265
 
146
266
  async resetPassword(ctx) {
267
+ const validations = strapi.config.get('plugin::users-permissions.validationRules');
268
+
147
269
  const { password, passwordConfirmation, code } = await validateResetPasswordBody(
148
- ctx.request.body
270
+ ctx.request.body,
271
+ validations
149
272
  );
150
273
 
151
274
  if (password !== passwordConfirmation) {
152
275
  throw new ValidationError('Passwords do not match');
153
276
  }
154
277
 
155
- const user = await strapi
278
+ const user = await strapi.db
156
279
  .query('plugin::users-permissions.user')
157
280
  .findOne({ where: { resetPasswordToken: code } });
158
281
 
@@ -165,15 +288,119 @@ module.exports = {
165
288
  password,
166
289
  });
167
290
 
168
- // Update the user.
169
- ctx.send({
291
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
292
+ if (mode === 'refresh') {
293
+ const deviceId = extractDeviceId(ctx.request.body);
294
+
295
+ // Invalidate all sessions when password is reset for security
296
+ await strapi.sessionManager('users-permissions').invalidateRefreshToken(String(user.id));
297
+
298
+ const newDeviceId = deviceId || crypto.randomUUID();
299
+ const refresh = await strapi
300
+ .sessionManager('users-permissions')
301
+ .generateRefreshToken(String(user.id), newDeviceId, { type: 'refresh' });
302
+
303
+ const access = await strapi
304
+ .sessionManager('users-permissions')
305
+ .generateAccessToken(refresh.token);
306
+ if ('error' in access) {
307
+ throw new ApplicationError('Invalid credentials');
308
+ }
309
+
310
+ return ctx.send({
311
+ jwt: access.token,
312
+ refreshToken: refresh.token,
313
+ user: await sanitizeUser(user, ctx),
314
+ });
315
+ }
316
+
317
+ return ctx.send({
170
318
  jwt: getService('jwt').issue({ id: user.id }),
171
319
  user: await sanitizeUser(user, ctx),
172
320
  });
173
321
  },
322
+ async refresh(ctx) {
323
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
324
+ if (mode !== 'refresh') {
325
+ return ctx.notFound();
326
+ }
327
+
328
+ const upSessions = strapi.config.get('plugin::users-permissions.sessions');
329
+ const cookieName = upSessions?.cookie?.name || 'strapi_up_refresh';
330
+
331
+ // Check for refresh token in cookie first (if httpOnly is configured), then in body
332
+ let refreshToken = ctx.cookies.get(cookieName);
333
+ if (!refreshToken) {
334
+ refreshToken = ctx.request.body?.refreshToken;
335
+ }
336
+
337
+ if (!refreshToken || typeof refreshToken !== 'string') {
338
+ return ctx.badRequest('Missing refresh token');
339
+ }
340
+
341
+ const rotation = await strapi
342
+ .sessionManager('users-permissions')
343
+ .rotateRefreshToken(refreshToken);
344
+ if ('error' in rotation) {
345
+ return ctx.unauthorized('Invalid refresh token');
346
+ }
347
+
348
+ const result = await strapi
349
+ .sessionManager('users-permissions')
350
+ .generateAccessToken(rotation.token);
351
+ if ('error' in result) {
352
+ return ctx.unauthorized('Invalid refresh token');
353
+ }
354
+
355
+ const requestHttpOnly = ctx.request.header['x-strapi-refresh-cookie'] === 'httpOnly';
356
+ if (upSessions?.httpOnly || requestHttpOnly) {
357
+ const isProduction = process.env.NODE_ENV === 'production';
358
+ const isSecure =
359
+ typeof upSessions.cookie?.secure === 'boolean' ? upSessions.cookie?.secure : isProduction;
360
+
361
+ const cookieOptions = {
362
+ httpOnly: true,
363
+ secure: isSecure,
364
+ sameSite: upSessions.cookie?.sameSite ?? 'lax',
365
+ path: upSessions.cookie?.path ?? '/',
366
+ domain: upSessions.cookie?.domain,
367
+ overwrite: true,
368
+ };
369
+ ctx.cookies.set(cookieName, rotation.token, cookieOptions);
370
+ return ctx.send({ jwt: result.token });
371
+ }
372
+ return ctx.send({ jwt: result.token, refreshToken: rotation.token });
373
+ },
374
+ async logout(ctx) {
375
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
376
+ if (mode !== 'refresh') {
377
+ return ctx.notFound();
378
+ }
379
+
380
+ // Invalidate all sessions for the authenticated user, or by deviceId if provided
381
+ if (!ctx.state.user) {
382
+ return ctx.unauthorized('Missing authentication');
383
+ }
384
+
385
+ const deviceId = extractDeviceId(ctx.request.body);
386
+ try {
387
+ await strapi
388
+ .sessionManager('users-permissions')
389
+ .invalidateRefreshToken(String(ctx.state.user.id), deviceId);
390
+ } catch (err) {
391
+ strapi.log.error('UP logout failed', err);
392
+ }
174
393
 
394
+ const upSessions = strapi.config.get('plugin::users-permissions.sessions');
395
+ const requestHttpOnly = ctx.request.header['x-strapi-refresh-cookie'] === 'httpOnly';
396
+ if (upSessions?.httpOnly || requestHttpOnly) {
397
+ const cookieName = upSessions.cookie?.name || 'strapi_up_refresh';
398
+ ctx.cookies.set(cookieName, '', { expires: new Date(0) });
399
+ }
400
+ return ctx.send({ ok: true });
401
+ },
175
402
  async connect(ctx, next) {
176
- const grant = require('grant-koa');
403
+ const grant = require('grant').koa();
177
404
 
178
405
  const providers = await strapi
179
406
  .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })
@@ -201,10 +428,28 @@ module.exports = {
201
428
  }
202
429
 
203
430
  // Ability to pass OAuth callback dynamically
204
- grantConfig[provider].callback =
205
- _.get(ctx, 'query.callback') ||
206
- _.get(ctx, 'session.grant.dynamic.callback') ||
207
- grantConfig[provider].callback;
431
+ const queryCustomCallback = _.get(ctx, 'query.callback');
432
+ const dynamicSessionCallback = _.get(ctx, 'session.grant.dynamic.callback');
433
+
434
+ const customCallback = queryCustomCallback ?? dynamicSessionCallback;
435
+
436
+ // The custom callback is validated to make sure it's not redirecting to an unwanted actor.
437
+ if (customCallback !== undefined) {
438
+ try {
439
+ // We're extracting the callback validator from the plugin config since it can be user-customized
440
+ const { validate: validateCallback } = strapi
441
+ .plugin('users-permissions')
442
+ .config('callback');
443
+
444
+ await validateCallback(customCallback, grantConfig[provider]);
445
+
446
+ grantConfig[provider].callback = customCallback;
447
+ } catch (e) {
448
+ throw new ValidationError('Invalid callback URL provided', { callback: customCallback });
449
+ }
450
+ }
451
+
452
+ // Build a valid redirect URI for the current provider
208
453
  grantConfig[provider].redirect_uri = getService('providers').buildRedirectUri(provider);
209
454
 
210
455
  return grant(grantConfig)(ctx, next);
@@ -219,7 +464,7 @@ module.exports = {
219
464
  const advancedSettings = await pluginStore.get({ key: 'advanced' });
220
465
 
221
466
  // Find the user by email.
222
- const user = await strapi
467
+ const user = await strapi.db
223
468
  .query('plugin::users-permissions.user')
224
469
  .findOne({ where: { email: email.toLowerCase() } });
225
470
 
@@ -237,8 +482,8 @@ module.exports = {
237
482
  resetPasswordSettings.message,
238
483
  {
239
484
  URL: advancedSettings.email_reset_password,
240
- SERVER_URL: getAbsoluteServerUrl(strapi.config),
241
- ADMIN_URL: getAbsoluteAdminUrl(strapi.config),
485
+ SERVER_URL: strapi.config.get('server.absoluteUrl'),
486
+ ADMIN_URL: strapi.config.get('admin.absoluteUrl'),
242
487
  USER: userInfo,
243
488
  TOKEN: resetPasswordToken,
244
489
  }
@@ -281,55 +526,32 @@ module.exports = {
281
526
  throw new ApplicationError('Register action is currently disabled');
282
527
  }
283
528
 
284
- const { register } = strapi.config.get('plugin.users-permissions');
529
+ const { register } = strapi.config.get('plugin::users-permissions');
285
530
  const alwaysAllowedKeys = ['username', 'password', 'email'];
286
- const userModel = strapi.contentTypes['plugin::users-permissions.user'];
287
- const { attributes } = userModel;
288
-
289
- const nonWritable = getNonWritableAttributes(userModel);
290
531
 
532
+ // Note that we intentionally do not filter allowedFields to allow a project to explicitly accept private or other Strapi field on registration
291
533
  const allowedKeys = compact(
292
- concat(
293
- alwaysAllowedKeys,
294
- isArray(register?.allowedFields)
295
- ? // Note that we do not filter allowedFields in case a user explicitly chooses to allow a private or otherwise omitted field on registration
296
- register.allowedFields // if null or undefined, compact will remove it
297
- : // to prevent breaking changes, if allowedFields is not set in config, we only remove private and known dangerous user schema fields
298
- // TODO V5: allowedFields defaults to [] when undefined and remove this case
299
- Object.keys(attributes).filter(
300
- (key) =>
301
- !nonWritable.includes(key) &&
302
- !attributes[key].private &&
303
- ![
304
- // many of these are included in nonWritable, but we'll list them again to be safe and since we're removing this code in v5 anyway
305
- // Strapi user schema fields
306
- 'confirmed',
307
- 'blocked',
308
- 'confirmationToken',
309
- 'resetPasswordToken',
310
- 'provider',
311
- 'id',
312
- 'role',
313
- // other Strapi fields that might be added
314
- 'createdAt',
315
- 'updatedAt',
316
- 'createdBy',
317
- 'updatedBy',
318
- 'publishedAt', // d&p
319
- 'strapi_reviewWorkflows_stage', // review workflows
320
- ].includes(key)
321
- )
322
- )
534
+ concat(alwaysAllowedKeys, isArray(register?.allowedFields) ? register.allowedFields : [])
323
535
  );
324
536
 
537
+ // Check if there are any keys in requestBody that are not in allowedKeys
538
+ const invalidKeys = Object.keys(ctx.request.body).filter((key) => !allowedKeys.includes(key));
539
+
540
+ if (invalidKeys.length > 0) {
541
+ // If there are invalid keys, throw an error
542
+ throw new ValidationError(`Invalid parameters: ${invalidKeys.join(', ')}`);
543
+ }
544
+
325
545
  const params = {
326
546
  ..._.pick(ctx.request.body, allowedKeys),
327
547
  provider: 'local',
328
548
  };
329
549
 
330
- await validateRegisterBody(params);
550
+ const validations = strapi.config.get('plugin::users-permissions.validationRules');
551
+
552
+ await validateRegisterBody(params, validations);
331
553
 
332
- const role = await strapi
554
+ const role = await strapi.db
333
555
  .query('plugin::users-permissions.role')
334
556
  .findOne({ where: { type: settings.default_role } });
335
557
 
@@ -348,7 +570,7 @@ module.exports = {
348
570
  ],
349
571
  };
350
572
 
351
- const conflictingUserCount = await strapi.query('plugin::users-permissions.user').count({
573
+ const conflictingUserCount = await strapi.db.query('plugin::users-permissions.user').count({
352
574
  where: { ...identifierFilter, provider },
353
575
  });
354
576
 
@@ -357,7 +579,7 @@ module.exports = {
357
579
  }
358
580
 
359
581
  if (settings.unique_email) {
360
- const conflictingUserCount = await strapi.query('plugin::users-permissions.user').count({
582
+ const conflictingUserCount = await strapi.db.query('plugin::users-permissions.user').count({
361
583
  where: { ...identifierFilter },
362
584
  });
363
585
 
@@ -382,18 +604,33 @@ module.exports = {
382
604
  try {
383
605
  await getService('user').sendConfirmationEmail(sanitizedUser);
384
606
  } catch (err) {
385
- throw new ApplicationError(err.message);
607
+ strapi.log.error(err);
608
+ throw new ApplicationError('Error sending confirmation email');
386
609
  }
387
610
 
388
611
  return ctx.send({ user: sanitizedUser });
389
612
  }
390
613
 
391
- const jwt = getService('jwt').issue(_.pick(user, ['id']));
614
+ const mode = strapi.config.get('plugin::users-permissions.jwtManagement', 'legacy-support');
615
+ if (mode === 'refresh') {
616
+ const deviceId = extractDeviceId(ctx.request.body) || crypto.randomUUID();
392
617
 
393
- return ctx.send({
394
- jwt,
395
- user: sanitizedUser,
396
- });
618
+ const refresh = await strapi
619
+ .sessionManager('users-permissions')
620
+ .generateRefreshToken(String(user.id), deviceId, { type: 'refresh' });
621
+
622
+ const access = await strapi
623
+ .sessionManager('users-permissions')
624
+ .generateAccessToken(refresh.token);
625
+ if ('error' in access) {
626
+ throw new ApplicationError('Invalid credentials');
627
+ }
628
+
629
+ return ctx.send({ jwt: access.token, refreshToken: refresh.token, user: sanitizedUser });
630
+ }
631
+
632
+ const jwt = getService('jwt').issue(_.pick(user, ['id']));
633
+ return ctx.send({ jwt, user: sanitizedUser });
397
634
  },
398
635
 
399
636
  async emailConfirmation(ctx, next, returnUser) {
@@ -427,7 +664,7 @@ module.exports = {
427
664
  async sendEmailConfirmation(ctx) {
428
665
  const { email } = await validateSendEmailConfirmationBody(ctx.request.body);
429
666
 
430
- const user = await strapi.query('plugin::users-permissions.user').findOne({
667
+ const user = await strapi.db.query('plugin::users-permissions.user').findOne({
431
668
  where: { email: email.toLowerCase() },
432
669
  });
433
670
 
@@ -450,4 +687,4 @@ module.exports = {
450
687
  sent: true,
451
688
  });
452
689
  },
453
- };
690
+ });