@strapi/plugin-users-permissions 0.0.0-next.e6eaa3d0563c85f80fd88b258df70a55c057096e → 0.0.0-next.e822ba8a3443f5fce869d85539f9fdaa02e10639

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