@strapi/plugin-users-permissions 0.0.0-experimental.62ce06180fe9a772eaeb3d43d238b26644f39f7c → 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282

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 (772) hide show
  1. package/.eslintrc.cjs +29 -0
  2. package/LICENSE +18 -3
  3. package/admin/src/components/BoundRoute/index.jsx +1 -1
  4. package/admin/src/components/FormModal/Input/index.jsx +1 -1
  5. package/admin/src/components/FormModal/index.jsx +8 -2
  6. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +3 -2
  7. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +10 -3
  8. package/admin/src/components/Policies/index.jsx +4 -1
  9. package/admin/src/components/UsersPermissions/index.jsx +10 -1
  10. package/admin/src/index.js +2 -2
  11. package/admin/src/pages/AdvancedSettings/index.jsx +9 -3
  12. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +8 -2
  13. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +22 -17
  14. package/admin/src/pages/Providers/index.jsx +75 -77
  15. package/admin/src/pages/Providers/utils/forms.js +15 -3
  16. package/admin/src/pages/Roles/index.jsx +1 -1
  17. package/admin/src/pages/Roles/pages/CreatePage.jsx +26 -8
  18. package/admin/src/pages/Roles/pages/EditPage.jsx +13 -7
  19. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +9 -8
  20. package/admin/src/pages/Roles/pages/ListPage/index.jsx +93 -96
  21. package/admin/src/pluginId.js +2 -2
  22. package/admin/src/translations/cs.json +42 -5
  23. package/admin/src/translations/de.json +27 -2
  24. package/admin/src/translations/en.json +1 -0
  25. package/admin/src/translations/ja.json +46 -7
  26. package/admin/src/translations/nl.json +40 -1
  27. package/admin/src/translations/pl.json +2 -1
  28. package/admin/src/translations/sk.json +41 -4
  29. package/admin/src/translations/uk.json +41 -4
  30. package/admin/src/utils/formatPluginName.js +1 -1
  31. package/dist/admin/components/BoundRoute/getMethodColor.js +49 -0
  32. package/dist/admin/components/BoundRoute/getMethodColor.js.map +1 -0
  33. package/dist/admin/components/BoundRoute/getMethodColor.mjs +47 -0
  34. package/dist/admin/components/BoundRoute/getMethodColor.mjs.map +1 -0
  35. package/dist/admin/components/BoundRoute/index.js +104 -0
  36. package/dist/admin/components/BoundRoute/index.js.map +1 -0
  37. package/dist/admin/components/BoundRoute/index.mjs +96 -0
  38. package/dist/admin/components/BoundRoute/index.mjs.map +1 -0
  39. package/dist/admin/components/FormModal/Input/index.js +127 -0
  40. package/dist/admin/components/FormModal/Input/index.js.map +1 -0
  41. package/dist/admin/components/FormModal/Input/index.mjs +121 -0
  42. package/dist/admin/components/FormModal/Input/index.mjs.map +1 -0
  43. package/dist/admin/components/FormModal/index.js +114 -0
  44. package/dist/admin/components/FormModal/index.js.map +1 -0
  45. package/dist/admin/components/FormModal/index.mjs +108 -0
  46. package/dist/admin/components/FormModal/index.mjs.map +1 -0
  47. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js +33 -0
  48. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js.map +1 -0
  49. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs +31 -0
  50. package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs.map +1 -0
  51. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +163 -0
  52. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -0
  53. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +156 -0
  54. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -0
  55. package/dist/admin/components/Permissions/PermissionRow/index.js +55 -0
  56. package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -0
  57. package/dist/admin/components/Permissions/PermissionRow/index.mjs +48 -0
  58. package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -0
  59. package/dist/admin/components/Permissions/index.js +52 -0
  60. package/dist/admin/components/Permissions/index.js.map +1 -0
  61. package/dist/admin/components/Permissions/index.mjs +50 -0
  62. package/dist/admin/components/Permissions/index.mjs.map +1 -0
  63. package/dist/admin/components/Permissions/init.js +15 -0
  64. package/dist/admin/components/Permissions/init.js.map +1 -0
  65. package/dist/admin/components/Permissions/init.mjs +13 -0
  66. package/dist/admin/components/Permissions/init.mjs.map +1 -0
  67. package/dist/admin/components/Permissions/reducer.js +34 -0
  68. package/dist/admin/components/Permissions/reducer.js.map +1 -0
  69. package/dist/admin/components/Permissions/reducer.mjs +31 -0
  70. package/dist/admin/components/Permissions/reducer.mjs.map +1 -0
  71. package/dist/admin/components/Policies/index.js +74 -0
  72. package/dist/admin/components/Policies/index.js.map +1 -0
  73. package/dist/admin/components/Policies/index.mjs +66 -0
  74. package/dist/admin/components/Policies/index.mjs.map +1 -0
  75. package/dist/admin/components/UsersPermissions/index.js +120 -0
  76. package/dist/admin/components/UsersPermissions/index.js.map +1 -0
  77. package/dist/admin/components/UsersPermissions/index.mjs +114 -0
  78. package/dist/admin/components/UsersPermissions/index.mjs.map +1 -0
  79. package/dist/admin/components/UsersPermissions/init.js +13 -0
  80. package/dist/admin/components/UsersPermissions/init.js.map +1 -0
  81. package/dist/admin/components/UsersPermissions/init.mjs +11 -0
  82. package/dist/admin/components/UsersPermissions/init.mjs.map +1 -0
  83. package/dist/admin/components/UsersPermissions/reducer.js +79 -0
  84. package/dist/admin/components/UsersPermissions/reducer.js.map +1 -0
  85. package/dist/admin/components/UsersPermissions/reducer.mjs +68 -0
  86. package/dist/admin/components/UsersPermissions/reducer.mjs.map +1 -0
  87. package/dist/admin/constants.js +81 -0
  88. package/dist/admin/constants.js.map +1 -0
  89. package/dist/admin/constants.mjs +79 -0
  90. package/dist/admin/constants.mjs.map +1 -0
  91. package/dist/admin/contexts/UsersPermissionsContext/index.js +27 -0
  92. package/dist/admin/contexts/UsersPermissionsContext/index.js.map +1 -0
  93. package/dist/admin/contexts/UsersPermissionsContext/index.mjs +19 -0
  94. package/dist/admin/contexts/UsersPermissionsContext/index.mjs.map +1 -0
  95. package/dist/admin/index.js +124 -3
  96. package/dist/admin/index.js.map +1 -1
  97. package/dist/admin/index.mjs +119 -3
  98. package/dist/admin/index.mjs.map +1 -1
  99. package/dist/admin/package.json.js +9 -0
  100. package/dist/admin/package.json.js.map +1 -0
  101. package/dist/admin/package.json.mjs +6 -0
  102. package/dist/admin/package.json.mjs.map +1 -0
  103. package/dist/admin/pages/AdvancedSettings/index.js +195 -0
  104. package/dist/admin/pages/AdvancedSettings/index.js.map +1 -0
  105. package/dist/admin/pages/AdvancedSettings/index.mjs +192 -0
  106. package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -0
  107. package/dist/admin/pages/AdvancedSettings/utils/layout.js +83 -0
  108. package/dist/admin/pages/AdvancedSettings/utils/layout.js.map +1 -0
  109. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs +81 -0
  110. package/dist/admin/pages/AdvancedSettings/utils/layout.mjs.map +1 -0
  111. package/dist/admin/pages/AdvancedSettings/utils/schema.js +41 -0
  112. package/dist/admin/pages/AdvancedSettings/utils/schema.js.map +1 -0
  113. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs +19 -0
  114. package/dist/admin/pages/AdvancedSettings/utils/schema.mjs.map +1 -0
  115. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +176 -0
  116. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -0
  117. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +170 -0
  118. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -0
  119. package/dist/admin/pages/EmailTemplates/components/EmailTable.js +149 -0
  120. package/dist/admin/pages/EmailTemplates/components/EmailTable.js.map +1 -0
  121. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs +143 -0
  122. package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs.map +1 -0
  123. package/dist/admin/pages/EmailTemplates/index.js +158 -0
  124. package/dist/admin/pages/EmailTemplates/index.js.map +1 -0
  125. package/dist/admin/pages/EmailTemplates/index.mjs +135 -0
  126. package/dist/admin/pages/EmailTemplates/index.mjs.map +1 -0
  127. package/dist/admin/pages/EmailTemplates/utils/schema.js +51 -0
  128. package/dist/admin/pages/EmailTemplates/utils/schema.js.map +1 -0
  129. package/dist/admin/pages/EmailTemplates/utils/schema.mjs +29 -0
  130. package/dist/admin/pages/EmailTemplates/utils/schema.mjs.map +1 -0
  131. package/dist/admin/pages/Providers/index.js +278 -0
  132. package/dist/admin/pages/Providers/index.js.map +1 -0
  133. package/dist/admin/pages/Providers/index.mjs +250 -0
  134. package/dist/admin/pages/Providers/index.mjs.map +1 -0
  135. package/dist/admin/pages/Providers/utils/forms.js +282 -0
  136. package/dist/admin/pages/Providers/utils/forms.js.map +1 -0
  137. package/dist/admin/pages/Providers/utils/forms.mjs +260 -0
  138. package/dist/admin/pages/Providers/utils/forms.mjs.map +1 -0
  139. package/dist/admin/pages/Roles/constants.js +32 -0
  140. package/dist/admin/pages/Roles/constants.js.map +1 -0
  141. package/dist/admin/pages/Roles/constants.mjs +10 -0
  142. package/dist/admin/pages/Roles/constants.mjs.map +1 -0
  143. package/dist/admin/pages/Roles/hooks/usePlugins.js +78 -0
  144. package/dist/admin/pages/Roles/hooks/usePlugins.js.map +1 -0
  145. package/dist/admin/pages/Roles/hooks/usePlugins.mjs +76 -0
  146. package/dist/admin/pages/Roles/hooks/usePlugins.mjs.map +1 -0
  147. package/dist/admin/pages/Roles/index.js +35 -0
  148. package/dist/admin/pages/Roles/index.js.map +1 -0
  149. package/dist/admin/pages/Roles/index.mjs +33 -0
  150. package/dist/admin/pages/Roles/index.mjs.map +1 -0
  151. package/dist/admin/pages/Roles/pages/CreatePage.js +240 -0
  152. package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -0
  153. package/dist/admin/pages/Roles/pages/CreatePage.mjs +217 -0
  154. package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -0
  155. package/dist/admin/pages/Roles/pages/EditPage.js +241 -0
  156. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -0
  157. package/dist/admin/pages/Roles/pages/EditPage.mjs +218 -0
  158. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -0
  159. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js +129 -0
  160. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -0
  161. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs +123 -0
  162. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -0
  163. package/dist/admin/pages/Roles/pages/ListPage/index.js +234 -0
  164. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -0
  165. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +231 -0
  166. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -0
  167. package/dist/admin/pluginId.js +8 -0
  168. package/dist/admin/pluginId.js.map +1 -0
  169. package/dist/admin/pluginId.mjs +6 -0
  170. package/dist/admin/pluginId.mjs.map +1 -0
  171. package/dist/admin/translations/ar.json.js +45 -0
  172. package/dist/admin/translations/ar.json.js.map +1 -0
  173. package/dist/admin/translations/ar.json.mjs +43 -0
  174. package/dist/admin/translations/ar.json.mjs.map +1 -0
  175. package/dist/admin/translations/cs.json.js +88 -0
  176. package/dist/admin/translations/cs.json.js.map +1 -0
  177. package/dist/admin/translations/cs.json.mjs +86 -0
  178. package/dist/admin/translations/cs.json.mjs.map +1 -0
  179. package/dist/admin/translations/da.json.js +87 -0
  180. package/dist/admin/translations/da.json.js.map +1 -0
  181. package/dist/admin/translations/da.json.mjs +85 -0
  182. package/dist/admin/translations/da.json.mjs.map +1 -0
  183. package/dist/admin/translations/de.json.js +88 -0
  184. package/dist/admin/translations/de.json.js.map +1 -0
  185. package/dist/admin/translations/de.json.mjs +86 -0
  186. package/dist/admin/translations/de.json.mjs.map +1 -0
  187. package/dist/admin/translations/en.json.js +88 -0
  188. package/dist/admin/translations/en.json.js.map +1 -0
  189. package/dist/admin/translations/en.json.mjs +86 -0
  190. package/dist/admin/translations/en.json.mjs.map +1 -0
  191. package/dist/admin/translations/es.json.js +87 -0
  192. package/dist/admin/translations/es.json.js.map +1 -0
  193. package/dist/admin/translations/es.json.mjs +85 -0
  194. package/dist/admin/translations/es.json.mjs.map +1 -0
  195. package/dist/admin/translations/fr.json.js +51 -0
  196. package/dist/admin/translations/fr.json.js.map +1 -0
  197. package/dist/admin/translations/fr.json.mjs +49 -0
  198. package/dist/admin/translations/fr.json.mjs.map +1 -0
  199. package/dist/admin/translations/id.json.js +63 -0
  200. package/dist/admin/translations/id.json.js.map +1 -0
  201. package/dist/admin/translations/id.json.mjs +61 -0
  202. package/dist/admin/translations/id.json.mjs.map +1 -0
  203. package/dist/admin/translations/it.json.js +63 -0
  204. package/dist/admin/translations/it.json.js.map +1 -0
  205. package/dist/admin/translations/it.json.mjs +61 -0
  206. package/dist/admin/translations/it.json.mjs.map +1 -0
  207. package/dist/admin/translations/ja.json.js +88 -0
  208. package/dist/admin/translations/ja.json.js.map +1 -0
  209. package/dist/admin/translations/ja.json.mjs +86 -0
  210. package/dist/admin/translations/ja.json.mjs.map +1 -0
  211. package/dist/admin/translations/ko.json.js +87 -0
  212. package/dist/admin/translations/ko.json.js.map +1 -0
  213. package/dist/admin/translations/ko.json.mjs +85 -0
  214. package/dist/admin/translations/ko.json.mjs.map +1 -0
  215. package/dist/admin/translations/ms.json.js +50 -0
  216. package/dist/admin/translations/ms.json.js.map +1 -0
  217. package/dist/admin/translations/ms.json.mjs +48 -0
  218. package/dist/admin/translations/ms.json.mjs.map +1 -0
  219. package/dist/admin/translations/nl.json.js +88 -0
  220. package/dist/admin/translations/nl.json.js.map +1 -0
  221. package/dist/admin/translations/nl.json.mjs +86 -0
  222. package/dist/admin/translations/nl.json.mjs.map +1 -0
  223. package/dist/admin/translations/pl.json.js +88 -0
  224. package/dist/admin/translations/pl.json.js.map +1 -0
  225. package/dist/admin/translations/pl.json.mjs +86 -0
  226. package/dist/admin/translations/pl.json.mjs.map +1 -0
  227. package/dist/admin/translations/pt-BR.json.js +45 -0
  228. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  229. package/dist/admin/translations/pt-BR.json.mjs +43 -0
  230. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  231. package/dist/admin/translations/pt.json.js +49 -0
  232. package/dist/admin/translations/pt.json.js.map +1 -0
  233. package/dist/admin/translations/pt.json.mjs +47 -0
  234. package/dist/admin/translations/pt.json.mjs.map +1 -0
  235. package/dist/admin/translations/ru.json.js +87 -0
  236. package/dist/admin/translations/ru.json.js.map +1 -0
  237. package/dist/admin/translations/ru.json.mjs +85 -0
  238. package/dist/admin/translations/ru.json.mjs.map +1 -0
  239. package/dist/admin/translations/sk.json.js +88 -0
  240. package/dist/admin/translations/sk.json.js.map +1 -0
  241. package/dist/admin/translations/sk.json.mjs +86 -0
  242. package/dist/admin/translations/sk.json.mjs.map +1 -0
  243. package/dist/admin/translations/sv.json.js +87 -0
  244. package/dist/admin/translations/sv.json.js.map +1 -0
  245. package/dist/admin/translations/sv.json.mjs +85 -0
  246. package/dist/admin/translations/sv.json.mjs.map +1 -0
  247. package/dist/admin/translations/th.json.js +61 -0
  248. package/dist/admin/translations/th.json.js.map +1 -0
  249. package/dist/admin/translations/th.json.mjs +59 -0
  250. package/dist/admin/translations/th.json.mjs.map +1 -0
  251. package/dist/admin/translations/tr.json.js +86 -0
  252. package/dist/admin/translations/tr.json.js.map +1 -0
  253. package/dist/admin/translations/tr.json.mjs +84 -0
  254. package/dist/admin/translations/tr.json.mjs.map +1 -0
  255. package/dist/admin/translations/uk.json.js +87 -0
  256. package/dist/admin/translations/uk.json.js.map +1 -0
  257. package/dist/admin/translations/uk.json.mjs +85 -0
  258. package/dist/admin/translations/uk.json.mjs.map +1 -0
  259. package/dist/admin/translations/vi.json.js +51 -0
  260. package/dist/admin/translations/vi.json.js.map +1 -0
  261. package/dist/admin/translations/vi.json.mjs +49 -0
  262. package/dist/admin/translations/vi.json.mjs.map +1 -0
  263. package/dist/admin/translations/zh-Hans.json.js +87 -0
  264. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  265. package/dist/admin/translations/zh-Hans.json.mjs +85 -0
  266. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  267. package/dist/admin/translations/zh.json.js +87 -0
  268. package/dist/admin/translations/zh.json.js.map +1 -0
  269. package/dist/admin/translations/zh.json.mjs +85 -0
  270. package/dist/admin/translations/zh.json.mjs.map +1 -0
  271. package/dist/admin/utils/cleanPermissions.js +28 -0
  272. package/dist/admin/utils/cleanPermissions.js.map +1 -0
  273. package/dist/admin/utils/cleanPermissions.mjs +22 -0
  274. package/dist/admin/utils/cleanPermissions.mjs.map +1 -0
  275. package/dist/admin/utils/formatPluginName.js +33 -0
  276. package/dist/admin/utils/formatPluginName.js.map +1 -0
  277. package/dist/admin/utils/formatPluginName.mjs +27 -0
  278. package/dist/admin/utils/formatPluginName.mjs.map +1 -0
  279. package/dist/admin/utils/getTrad.js +8 -0
  280. package/dist/admin/utils/getTrad.js.map +1 -0
  281. package/dist/admin/utils/getTrad.mjs +6 -0
  282. package/dist/admin/utils/getTrad.mjs.map +1 -0
  283. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  284. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  285. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  286. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  287. package/dist/server/_virtual/_commonjsHelpers.js +8 -0
  288. package/dist/server/_virtual/_commonjsHelpers.js.map +1 -0
  289. package/dist/server/_virtual/_commonjsHelpers.mjs +6 -0
  290. package/dist/server/_virtual/_commonjsHelpers.mjs.map +1 -0
  291. package/dist/server/_virtual/rateLimit.js +6 -0
  292. package/dist/server/_virtual/rateLimit.js.map +1 -0
  293. package/dist/server/_virtual/rateLimit.mjs +4 -0
  294. package/dist/server/_virtual/rateLimit.mjs.map +1 -0
  295. package/dist/server/bootstrap/index.js +171 -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 +658 -0
  328. package/dist/server/controllers/auth.js.map +1 -0
  329. package/dist/server/controllers/auth.mjs +648 -0
  330. package/dist/server/controllers/auth.mjs.map +1 -0
  331. package/dist/server/controllers/content-manager-user.js +173 -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 +41 -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 +96 -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 +112 -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 +206 -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 +135 -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 +77 -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 +65 -0
  364. package/dist/server/controllers/validation/user.js.map +1 -0
  365. package/dist/server/controllers/validation/user.mjs +59 -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 +44 -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 +42 -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 +41 -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 +44 -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 +42 -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 +44 -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 +41 -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 +50 -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 +53 -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 +36 -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 +127 -0
  496. package/dist/server/middlewares/rateLimit.js.map +1 -0
  497. package/dist/server/middlewares/rateLimit.mjs +118 -0
  498. package/dist/server/middlewares/rateLimit.mjs.map +1 -0
  499. package/dist/server/register.js +46 -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 +187 -0
  520. package/dist/server/routes/content-api/auth.js.map +1 -0
  521. package/dist/server/routes/content-api/auth.mjs +185 -0
  522. package/dist/server/routes/content-api/auth.mjs.map +1 -0
  523. package/dist/server/routes/content-api/index.js +36 -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 +136 -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 +249 -0
  540. package/dist/server/routes/content-api/validation.js.map +1 -0
  541. package/dist/server/routes/content-api/validation.mjs +242 -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 +100 -0
  556. package/dist/server/services/jwt.js.map +1 -0
  557. package/dist/server/services/jwt.mjs +93 -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 +563 -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 +120 -0
  568. package/dist/server/services/providers.js.map +1 -0
  569. package/dist/server/services/providers.mjs +113 -0
  570. package/dist/server/services/providers.mjs.map +1 -0
  571. package/dist/server/services/role.js +191 -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 +214 -0
  576. package/dist/server/services/user.js.map +1 -0
  577. package/dist/server/services/user.mjs +204 -0
  578. package/dist/server/services/user.mjs.map +1 -0
  579. package/dist/server/services/users-permissions.js +271 -0
  580. package/dist/server/services/users-permissions.js.map +1 -0
  581. package/dist/server/services/users-permissions.mjs +262 -0
  582. package/dist/server/services/users-permissions.mjs.map +1 -0
  583. package/dist/server/strategies/users-permissions.js +126 -0
  584. package/dist/server/strategies/users-permissions.js.map +1 -0
  585. package/dist/server/strategies/users-permissions.mjs +119 -0
  586. package/dist/server/strategies/users-permissions.mjs.map +1 -0
  587. package/dist/server/utils/index.js +52 -0
  588. package/dist/server/utils/index.js.map +1 -0
  589. package/dist/server/utils/index.mjs +46 -0
  590. package/dist/server/utils/index.mjs.map +1 -0
  591. package/dist/server/utils/refresh-cookie-options.js +27 -0
  592. package/dist/server/utils/refresh-cookie-options.js.map +1 -0
  593. package/dist/server/utils/refresh-cookie-options.mjs +25 -0
  594. package/dist/server/utils/refresh-cookie-options.mjs.map +1 -0
  595. package/dist/server/utils/sanitize/index.js +21 -0
  596. package/dist/server/utils/sanitize/index.js.map +1 -0
  597. package/dist/server/utils/sanitize/index.mjs +19 -0
  598. package/dist/server/utils/sanitize/index.mjs.map +1 -0
  599. package/dist/server/utils/sanitize/sanitizers.js +37 -0
  600. package/dist/server/utils/sanitize/sanitizers.js.map +1 -0
  601. package/dist/server/utils/sanitize/sanitizers.mjs +30 -0
  602. package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -0
  603. package/dist/server/utils/sanitize/visitors/index.js +17 -0
  604. package/dist/server/utils/sanitize/visitors/index.js.map +1 -0
  605. package/dist/server/utils/sanitize/visitors/index.mjs +15 -0
  606. package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -0
  607. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +17 -0
  608. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -0
  609. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs +15 -0
  610. package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -0
  611. package/lint-staged.config.mjs +1 -0
  612. package/package.json +34 -28
  613. package/rollup.config.mjs +19 -0
  614. package/server/bootstrap/index.js +44 -9
  615. package/server/bootstrap/users-permissions-actions.js +6 -0
  616. package/server/config.js +22 -0
  617. package/server/controllers/auth.js +286 -15
  618. package/server/controllers/content-manager-user.js +3 -4
  619. package/server/controllers/role.js +16 -3
  620. package/server/controllers/validation/auth.js +104 -25
  621. package/server/controllers/validation/user.js +34 -10
  622. package/server/graphql/types/index.js +1 -0
  623. package/server/graphql/types/me.js +1 -0
  624. package/server/graphql/types/user-input.js +20 -0
  625. package/server/middlewares/rateLimit.js +91 -15
  626. package/server/register.js +1 -1
  627. package/server/routes/content-api/auth.js +132 -71
  628. package/server/routes/content-api/index.js +11 -4
  629. package/server/routes/content-api/permissions.js +14 -7
  630. package/server/routes/content-api/role.js +57 -27
  631. package/server/routes/content-api/user.js +108 -51
  632. package/server/routes/content-api/validation.js +280 -0
  633. package/server/services/constants.js +9 -0
  634. package/server/services/jwt.js +51 -2
  635. package/server/services/providers-registry.js +468 -275
  636. package/server/services/providers.js +6 -1
  637. package/server/services/user.js +40 -6
  638. package/server/services/users-permissions.js +8 -2
  639. package/server/strategies/users-permissions.js +6 -1
  640. package/server/utils/index.d.ts +6 -1
  641. package/server/utils/index.js +30 -0
  642. package/server/utils/refresh-cookie-options.js +20 -0
  643. package/.eslintignore +0 -1
  644. package/.eslintrc +0 -17
  645. package/dist/_chunks/ar-BguGUqwK.js +0 -44
  646. package/dist/_chunks/ar-BguGUqwK.js.map +0 -1
  647. package/dist/_chunks/ar-CK8BRRXB.mjs +0 -44
  648. package/dist/_chunks/ar-CK8BRRXB.mjs.map +0 -1
  649. package/dist/_chunks/cs-BVigMk0l.mjs +0 -50
  650. package/dist/_chunks/cs-BVigMk0l.mjs.map +0 -1
  651. package/dist/_chunks/cs-BW8-K_GY.js +0 -50
  652. package/dist/_chunks/cs-BW8-K_GY.js.map +0 -1
  653. package/dist/_chunks/de-BKUdRFI4.mjs +0 -62
  654. package/dist/_chunks/de-BKUdRFI4.mjs.map +0 -1
  655. package/dist/_chunks/de-owXpVluI.js +0 -62
  656. package/dist/_chunks/de-owXpVluI.js.map +0 -1
  657. package/dist/_chunks/dk-BQiTK50l.mjs +0 -86
  658. package/dist/_chunks/dk-BQiTK50l.mjs.map +0 -1
  659. package/dist/_chunks/dk-LXAnbuBk.js +0 -86
  660. package/dist/_chunks/dk-LXAnbuBk.js.map +0 -1
  661. package/dist/_chunks/en-DOHtPf-2.mjs +0 -86
  662. package/dist/_chunks/en-DOHtPf-2.mjs.map +0 -1
  663. package/dist/_chunks/en-MHo5mcsU.js +0 -86
  664. package/dist/_chunks/en-MHo5mcsU.js.map +0 -1
  665. package/dist/_chunks/es-BwLCLXAQ.js +0 -86
  666. package/dist/_chunks/es-BwLCLXAQ.js.map +0 -1
  667. package/dist/_chunks/es-DNgOVMjD.mjs +0 -86
  668. package/dist/_chunks/es-DNgOVMjD.mjs.map +0 -1
  669. package/dist/_chunks/fr-DkgRugiU.mjs +0 -50
  670. package/dist/_chunks/fr-DkgRugiU.mjs.map +0 -1
  671. package/dist/_chunks/fr-DkhpSjjm.js +0 -50
  672. package/dist/_chunks/fr-DkhpSjjm.js.map +0 -1
  673. package/dist/_chunks/id-BTemOeTZ.js +0 -62
  674. package/dist/_chunks/id-BTemOeTZ.js.map +0 -1
  675. package/dist/_chunks/id-BdEsvnaF.mjs +0 -62
  676. package/dist/_chunks/id-BdEsvnaF.mjs.map +0 -1
  677. package/dist/_chunks/index-1yJqFGcz.js +0 -357
  678. package/dist/_chunks/index-1yJqFGcz.js.map +0 -1
  679. package/dist/_chunks/index-BB5U9Kud.mjs +0 -335
  680. package/dist/_chunks/index-BB5U9Kud.mjs.map +0 -1
  681. package/dist/_chunks/index-C66h32T6.mjs +0 -249
  682. package/dist/_chunks/index-C66h32T6.mjs.map +0 -1
  683. package/dist/_chunks/index-CCvjUh0q.js +0 -272
  684. package/dist/_chunks/index-CCvjUh0q.js.map +0 -1
  685. package/dist/_chunks/index-CF3O6laL.js +0 -248
  686. package/dist/_chunks/index-CF3O6laL.js.map +0 -1
  687. package/dist/_chunks/index-DXzNLZhT.mjs +0 -1127
  688. package/dist/_chunks/index-DXzNLZhT.mjs.map +0 -1
  689. package/dist/_chunks/index-D_vMW40H-Cqx0wYbj.js +0 -10594
  690. package/dist/_chunks/index-D_vMW40H-Cqx0wYbj.js.map +0 -1
  691. package/dist/_chunks/index-D_vMW40H-dMZbL-qM.mjs +0 -10570
  692. package/dist/_chunks/index-D_vMW40H-dMZbL-qM.mjs.map +0 -1
  693. package/dist/_chunks/index-DbO1QgVj.mjs +0 -605
  694. package/dist/_chunks/index-DbO1QgVj.mjs.map +0 -1
  695. package/dist/_chunks/index-DhIibAlG.mjs +0 -253
  696. package/dist/_chunks/index-DhIibAlG.mjs.map +0 -1
  697. package/dist/_chunks/index-nERSS5kO.js +0 -628
  698. package/dist/_chunks/index-nERSS5kO.js.map +0 -1
  699. package/dist/_chunks/index-y80DChTp.js +0 -1157
  700. package/dist/_chunks/index-y80DChTp.js.map +0 -1
  701. package/dist/_chunks/it-B-rv0E24.mjs +0 -62
  702. package/dist/_chunks/it-B-rv0E24.mjs.map +0 -1
  703. package/dist/_chunks/it-D1rH6V6_.js +0 -62
  704. package/dist/_chunks/it-D1rH6V6_.js.map +0 -1
  705. package/dist/_chunks/ja-C8K-VBPD.mjs +0 -48
  706. package/dist/_chunks/ja-C8K-VBPD.mjs.map +0 -1
  707. package/dist/_chunks/ja-DqShgTMf.js +0 -48
  708. package/dist/_chunks/ja-DqShgTMf.js.map +0 -1
  709. package/dist/_chunks/ko-B9DGEPWH.js +0 -86
  710. package/dist/_chunks/ko-B9DGEPWH.js.map +0 -1
  711. package/dist/_chunks/ko-Busb0wIY.mjs +0 -86
  712. package/dist/_chunks/ko-Busb0wIY.mjs.map +0 -1
  713. package/dist/_chunks/ms-ByvsQjRt.mjs +0 -49
  714. package/dist/_chunks/ms-ByvsQjRt.mjs.map +0 -1
  715. package/dist/_chunks/ms-CPBU3LWf.js +0 -49
  716. package/dist/_chunks/ms-CPBU3LWf.js.map +0 -1
  717. package/dist/_chunks/nl-5qO8Rpcy.mjs +0 -48
  718. package/dist/_chunks/nl-5qO8Rpcy.mjs.map +0 -1
  719. package/dist/_chunks/nl-CwNB6YoO.js +0 -48
  720. package/dist/_chunks/nl-CwNB6YoO.js.map +0 -1
  721. package/dist/_chunks/pl-BdIzifBE.mjs +0 -86
  722. package/dist/_chunks/pl-BdIzifBE.mjs.map +0 -1
  723. package/dist/_chunks/pl-Do9UD69f.js +0 -86
  724. package/dist/_chunks/pl-Do9UD69f.js.map +0 -1
  725. package/dist/_chunks/pt-BIO24ioG.mjs +0 -48
  726. package/dist/_chunks/pt-BIO24ioG.mjs.map +0 -1
  727. package/dist/_chunks/pt-BR-D7dZhxuP.js +0 -44
  728. package/dist/_chunks/pt-BR-D7dZhxuP.js.map +0 -1
  729. package/dist/_chunks/pt-BR-f0p23AQZ.mjs +0 -44
  730. package/dist/_chunks/pt-BR-f0p23AQZ.mjs.map +0 -1
  731. package/dist/_chunks/pt-fdvyOnUp.js +0 -48
  732. package/dist/_chunks/pt-fdvyOnUp.js.map +0 -1
  733. package/dist/_chunks/ru-C94rjPGA.js +0 -86
  734. package/dist/_chunks/ru-C94rjPGA.js.map +0 -1
  735. package/dist/_chunks/ru-VWy-IB7K.mjs +0 -86
  736. package/dist/_chunks/ru-VWy-IB7K.mjs.map +0 -1
  737. package/dist/_chunks/sk-BABEhykl.js +0 -50
  738. package/dist/_chunks/sk-BABEhykl.js.map +0 -1
  739. package/dist/_chunks/sk-B_LIcepm.mjs +0 -50
  740. package/dist/_chunks/sk-B_LIcepm.mjs.map +0 -1
  741. package/dist/_chunks/sv-ABLKOokl.mjs +0 -86
  742. package/dist/_chunks/sv-ABLKOokl.mjs.map +0 -1
  743. package/dist/_chunks/sv-Be43LhA9.js +0 -86
  744. package/dist/_chunks/sv-Be43LhA9.js.map +0 -1
  745. package/dist/_chunks/th-DKyP7ueR.mjs +0 -60
  746. package/dist/_chunks/th-DKyP7ueR.mjs.map +0 -1
  747. package/dist/_chunks/th-DgVhVLhL.js +0 -60
  748. package/dist/_chunks/th-DgVhVLhL.js.map +0 -1
  749. package/dist/_chunks/tr-B_idhkEs.js +0 -85
  750. package/dist/_chunks/tr-B_idhkEs.js.map +0 -1
  751. package/dist/_chunks/tr-qa1Q5UjC.mjs +0 -85
  752. package/dist/_chunks/tr-qa1Q5UjC.mjs.map +0 -1
  753. package/dist/_chunks/uk-BmRqbeQc.mjs +0 -49
  754. package/dist/_chunks/uk-BmRqbeQc.mjs.map +0 -1
  755. package/dist/_chunks/uk-LHOivnhP.js +0 -49
  756. package/dist/_chunks/uk-LHOivnhP.js.map +0 -1
  757. package/dist/_chunks/vi-CdVRdKDw.js +0 -50
  758. package/dist/_chunks/vi-CdVRdKDw.js.map +0 -1
  759. package/dist/_chunks/vi-HW-EdMea.mjs +0 -50
  760. package/dist/_chunks/vi-HW-EdMea.mjs.map +0 -1
  761. package/dist/_chunks/zh-5hKkVPA4.mjs +0 -86
  762. package/dist/_chunks/zh-5hKkVPA4.mjs.map +0 -1
  763. package/dist/_chunks/zh-Cuq8gMnF.js +0 -86
  764. package/dist/_chunks/zh-Cuq8gMnF.js.map +0 -1
  765. package/dist/_chunks/zh-Hans-BHilK-yc.mjs +0 -86
  766. package/dist/_chunks/zh-Hans-BHilK-yc.mjs.map +0 -1
  767. package/dist/_chunks/zh-Hans-GQDMKtY4.js +0 -86
  768. package/dist/_chunks/zh-Hans-GQDMKtY4.js.map +0 -1
  769. package/packup.config.ts +0 -22
  770. package/server/bootstrap/grant-config.js +0 -140
  771. package/strapi-server.js +0 -3
  772. /package/admin/src/translations/{dk.json → da.json} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.mjs","sources":["../../../server/services/role.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { NotFoundError } = require('@strapi/utils').errors;\nconst { getService } = require('../utils');\n\nmodule.exports = ({ strapi }) => ({\n async createRole(params) {\n if (!params.type) {\n params.type = _.snakeCase(_.deburr(_.toLower(params.name)));\n }\n\n const role = await strapi.db\n .query('plugin::users-permissions.role')\n .create({ data: _.omit(params, ['users', 'permissions']) });\n\n const createPromises = _.flatMap(params.permissions, (type, typeName) => {\n return _.flatMap(type.controllers, (controller, controllerName) => {\n return _.reduce(\n controller,\n (acc, action, actionName) => {\n const { enabled /* policy */ } = action;\n\n if (enabled) {\n const actionID = `${typeName}.${controllerName}.${actionName}`;\n\n acc.push(\n strapi.db\n .query('plugin::users-permissions.permission')\n .create({ data: { action: actionID, role: role.id } })\n );\n }\n\n return acc;\n },\n []\n );\n });\n });\n\n await Promise.all(createPromises);\n },\n\n async findOne(roleID) {\n const role = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { id: roleID }, populate: ['permissions'] });\n\n if (!role) {\n throw new NotFoundError('Role not found');\n }\n\n const allActions = getService('users-permissions').getActions();\n\n // Group by `type`.\n role.permissions.forEach((permission) => {\n const [type, controller, action] = permission.action.split('.');\n\n _.set(allActions, `${type}.controllers.${controller}.${action}`, {\n enabled: true,\n policy: '',\n });\n });\n\n return {\n ...role,\n permissions: allActions,\n };\n },\n\n async find() {\n const roles = await strapi.db\n .query('plugin::users-permissions.role')\n .findMany({ sort: ['name'] });\n\n for (const role of roles) {\n role.nb_users = await strapi.db\n .query('plugin::users-permissions.user')\n .count({ where: { role: { id: role.id } } });\n }\n\n return roles;\n },\n\n async updateRole(roleID, data) {\n const role = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { id: roleID }, populate: ['permissions'] });\n\n if (!role) {\n throw new NotFoundError('Role not found');\n }\n\n await strapi.db.query('plugin::users-permissions.role').update({\n where: { id: roleID },\n data: _.pick(data, ['name', 'description']),\n });\n\n const { permissions } = data;\n\n const newActions = _.flatMap(permissions, (type, typeName) => {\n return _.flatMap(type.controllers, (controller, controllerName) => {\n return _.reduce(\n controller,\n (acc, action, actionName) => {\n const { enabled /* policy */ } = action;\n\n if (enabled) {\n acc.push(`${typeName}.${controllerName}.${actionName}`);\n }\n\n return acc;\n },\n []\n );\n });\n });\n\n const oldActions = role.permissions.map(({ action }) => action);\n\n const toDelete = role.permissions.reduce((acc, permission) => {\n if (!newActions.includes(permission.action)) {\n acc.push(permission);\n }\n return acc;\n }, []);\n\n const toCreate = newActions\n .filter((action) => !oldActions.includes(action))\n .map((action) => ({ action, role: role.id }));\n\n await Promise.all(\n toDelete.map((permission) =>\n strapi.db\n .query('plugin::users-permissions.permission')\n .delete({ where: { id: permission.id } })\n )\n );\n\n await Promise.all(\n toCreate.map((permissionInfo) =>\n strapi.db.query('plugin::users-permissions.permission').create({ data: permissionInfo })\n )\n );\n },\n\n async deleteRole(roleID, publicRoleID) {\n const role = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { id: roleID }, populate: ['users', 'permissions'] });\n\n if (!role) {\n throw new NotFoundError('Role not found');\n }\n\n // Move users to guest role.\n await Promise.all(\n role.users.map((user) => {\n return strapi.db.query('plugin::users-permissions.user').update({\n where: { id: user.id },\n data: { role: publicRoleID },\n });\n })\n );\n\n // Remove permissions related to this role.\n // TODO: use delete many\n await Promise.all(\n role.permissions.map((permission) => {\n return strapi.db.query('plugin::users-permissions.permission').delete({\n where: { id: permission.id },\n });\n })\n );\n\n // Delete the role.\n await strapi.db.query('plugin::users-permissions.role').delete({ where: { id: roleID } });\n },\n});\n"],"names":["_","require$$0","NotFoundError","require$$1","errors","getService","require$$2","role","strapi","createRole","params","type","snakeCase","deburr","toLower","name","db","query","create","data","omit","createPromises","flatMap","permissions","typeName","controllers","controller","controllerName","reduce","acc","action","actionName","enabled","actionID","push","id","Promise","all","findOne","roleID","where","populate","allActions","getActions","forEach","permission","split","set","policy","find","roles","findMany","sort","nb_users","count","updateRole","update","pick","newActions","oldActions","map","toDelete","includes","toCreate","filter","delete","permissionInfo","deleteRole","publicRoleID","users","user"],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ 'use strict';
2
+
3
+ var require$$0$1 = require('crypto');
4
+ var require$$1$1 = require('bcryptjs');
5
+ var require$$2 = require('url-join');
6
+ var require$$1 = require('@strapi/utils');
7
+ var require$$0 = require('lodash/fp');
8
+ var index = require('../utils/index.js');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var require$$0__default$1 = /*#__PURE__*/_interopDefault(require$$0$1);
13
+ var require$$1__default$1 = /*#__PURE__*/_interopDefault(require$$1$1);
14
+ var require$$2__default = /*#__PURE__*/_interopDefault(require$$2);
15
+ var require$$1__default = /*#__PURE__*/_interopDefault(require$$1);
16
+ var require$$0__default = /*#__PURE__*/_interopDefault(require$$0);
17
+
18
+ var user;
19
+ var hasRequiredUser;
20
+ function requireUser() {
21
+ if (hasRequiredUser) return user;
22
+ hasRequiredUser = 1;
23
+ /**
24
+ * User.js service
25
+ *
26
+ * @description: A set of functions similar to controller's actions to avoid code duplication.
27
+ */ const crypto = require$$0__default$1.default;
28
+ const bcrypt = require$$1__default$1.default;
29
+ const urlJoin = require$$2__default.default;
30
+ const { sanitize } = require$$1__default.default;
31
+ const { toNumber, getOr } = require$$0__default.default;
32
+ const { getService } = index.__require();
33
+ const USER_MODEL_UID = 'plugin::users-permissions.user';
34
+ const getSessionManager = ()=>{
35
+ const manager = strapi.sessionManager;
36
+ return manager ?? null;
37
+ };
38
+ user = ({ strapi: strapi1 })=>({
39
+ /**
40
+ * Promise to count users
41
+ *
42
+ * @return {Promise}
43
+ */ count (params) {
44
+ return strapi1.db.query(USER_MODEL_UID).count({
45
+ where: params
46
+ });
47
+ },
48
+ /**
49
+ * Hashes password fields in the provided values object if they are present.
50
+ * It checks each key in the values object against the model's attributes and
51
+ * hashes it if the attribute type is 'password',
52
+ *
53
+ * @param {object} values - The object containing the fields to be hashed.
54
+ * @return {object} The values object with hashed password fields if they were present.
55
+ */ async ensureHashedPasswords (values) {
56
+ const attributes = strapi1.getModel(USER_MODEL_UID).attributes;
57
+ for(const key in values){
58
+ if (attributes[key] && attributes[key].type === 'password') {
59
+ // Check if a custom encryption.rounds has been set on the password attribute
60
+ const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));
61
+ values[key] = await bcrypt.hash(values[key], rounds);
62
+ }
63
+ }
64
+ return values;
65
+ },
66
+ /**
67
+ * Promise to add a/an user.
68
+ * @return {Promise}
69
+ */ async add (values) {
70
+ // Use the Document Service so relation inputs accept both the internal
71
+ // numeric id (legacy) and the documentId (v5 default) syntax, consistent
72
+ // with every other content-type endpoint. The Document Service hashes
73
+ // `password` attributes itself, so we must not pre-hash here.
74
+ return strapi1.documents(USER_MODEL_UID).create({
75
+ data: values,
76
+ populate: [
77
+ 'role'
78
+ ]
79
+ });
80
+ },
81
+ /**
82
+ * Promise to edit a/an user.
83
+ * @param {string} userId
84
+ * @param {object} params
85
+ * @return {Promise}
86
+ */ async edit (userId, params = {}) {
87
+ // The user is addressed by its numeric id (e.g. the `/users/:id` route),
88
+ // but the Document Service updates by documentId. Resolve it first so the
89
+ // relation inputs are processed by the Document Service, which accepts both
90
+ // numeric ids (legacy) and documentIds (v5 default). The Document Service
91
+ // hashes `password` attributes itself, so we must not pre-hash here.
92
+ const entry = await strapi1.db.query(USER_MODEL_UID).findOne({
93
+ where: {
94
+ id: userId
95
+ },
96
+ select: [
97
+ 'documentId'
98
+ ]
99
+ });
100
+ if (!entry) {
101
+ return null;
102
+ }
103
+ return strapi1.documents(USER_MODEL_UID).update({
104
+ documentId: entry.documentId,
105
+ data: params,
106
+ populate: [
107
+ 'role'
108
+ ]
109
+ });
110
+ },
111
+ /**
112
+ * Promise to fetch a/an user.
113
+ * @return {Promise}
114
+ */ fetch (id, params) {
115
+ const query = strapi1.get('query-params').transform(USER_MODEL_UID, params ?? {});
116
+ return strapi1.db.query(USER_MODEL_UID).findOne({
117
+ ...query,
118
+ where: {
119
+ $and: [
120
+ {
121
+ id
122
+ },
123
+ query.where || {}
124
+ ]
125
+ }
126
+ });
127
+ },
128
+ /**
129
+ * Promise to fetch authenticated user.
130
+ * @return {Promise}
131
+ */ fetchAuthenticatedUser (id) {
132
+ return strapi1.db.query(USER_MODEL_UID).findOne({
133
+ where: {
134
+ id
135
+ },
136
+ populate: [
137
+ 'role'
138
+ ]
139
+ });
140
+ },
141
+ /**
142
+ * Promise to fetch all users.
143
+ * @return {Promise}
144
+ */ fetchAll (params) {
145
+ const query = strapi1.get('query-params').transform(USER_MODEL_UID, params ?? {});
146
+ return strapi1.db.query(USER_MODEL_UID).findMany(query);
147
+ },
148
+ /**
149
+ * Promise to remove a/an user.
150
+ * @return {Promise}
151
+ */ async remove (params) {
152
+ // Invalidate sessions for all affected users
153
+ const sessionManager = getSessionManager();
154
+ if (sessionManager && sessionManager.hasOrigin('users-permissions') && params.id) {
155
+ await sessionManager('users-permissions').invalidateRefreshToken(String(params.id));
156
+ }
157
+ return strapi1.db.query(USER_MODEL_UID).delete({
158
+ where: params
159
+ });
160
+ },
161
+ validatePassword (password, hash) {
162
+ return bcrypt.compare(password, hash);
163
+ },
164
+ async sendConfirmationEmail (user) {
165
+ const userPermissionService = getService('users-permissions');
166
+ const pluginStore = await strapi1.store({
167
+ type: 'plugin',
168
+ name: 'users-permissions'
169
+ });
170
+ const userSchema = strapi1.getModel(USER_MODEL_UID);
171
+ const settings = await pluginStore.get({
172
+ key: 'email'
173
+ }).then((storeEmail)=>storeEmail.email_confirmation.options);
174
+ // Sanitize the template's user information
175
+ const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput({
176
+ schema: userSchema,
177
+ getModel: strapi1.getModel.bind(strapi1)
178
+ }, user);
179
+ const confirmationToken = crypto.randomBytes(20).toString('hex');
180
+ await this.edit(user.id, {
181
+ confirmationToken
182
+ });
183
+ const apiPrefix = strapi1.config.get('api.rest.prefix');
184
+ try {
185
+ settings.message = await userPermissionService.template(settings.message, {
186
+ URL: urlJoin(strapi1.config.get('server.absoluteUrl'), apiPrefix, '/auth/email-confirmation'),
187
+ SERVER_URL: strapi1.config.get('server.absoluteUrl'),
188
+ ADMIN_URL: strapi1.config.get('admin.absoluteUrl'),
189
+ USER: sanitizedUserInfo,
190
+ CODE: confirmationToken
191
+ });
192
+ settings.object = await userPermissionService.template(settings.object, {
193
+ USER: sanitizedUserInfo
194
+ });
195
+ } catch {
196
+ strapi1.log.error('[plugin::users-permissions.sendConfirmationEmail]: Failed to generate a template for "user confirmation email". Please make sure your email template is valid and does not contain invalid characters or patterns');
197
+ return;
198
+ }
199
+ // Send an email to the user.
200
+ await strapi1.plugin('email').service('email').send({
201
+ to: user.email,
202
+ from: settings.from.email && settings.from.name ? `${settings.from.name} <${settings.from.email}>` : undefined,
203
+ replyTo: settings.response_email,
204
+ subject: settings.object,
205
+ text: settings.message,
206
+ html: settings.message
207
+ });
208
+ }
209
+ });
210
+ return user;
211
+ }
212
+
213
+ exports.__require = requireUser;
214
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sources":["../../../server/services/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js service\n *\n * @description: A set of functions similar to controller's actions to avoid code duplication.\n */\n\nconst crypto = require('crypto');\nconst bcrypt = require('bcryptjs');\nconst urlJoin = require('url-join');\n\nconst { sanitize } = require('@strapi/utils');\nconst { toNumber, getOr } = require('lodash/fp');\nconst { getService } = require('../utils');\n\nconst USER_MODEL_UID = 'plugin::users-permissions.user';\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\nmodule.exports = ({ strapi }) => ({\n /**\n * Promise to count users\n *\n * @return {Promise}\n */\n\n count(params) {\n return strapi.db.query(USER_MODEL_UID).count({ where: params });\n },\n\n /**\n * Hashes password fields in the provided values object if they are present.\n * It checks each key in the values object against the model's attributes and\n * hashes it if the attribute type is 'password',\n *\n * @param {object} values - The object containing the fields to be hashed.\n * @return {object} The values object with hashed password fields if they were present.\n */\n async ensureHashedPasswords(values) {\n const attributes = strapi.getModel(USER_MODEL_UID).attributes;\n\n for (const key in values) {\n if (attributes[key] && attributes[key].type === 'password') {\n // Check if a custom encryption.rounds has been set on the password attribute\n const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));\n values[key] = await bcrypt.hash(values[key], rounds);\n }\n }\n\n return values;\n },\n\n /**\n * Promise to add a/an user.\n * @return {Promise}\n */\n async add(values) {\n // Use the Document Service so relation inputs accept both the internal\n // numeric id (legacy) and the documentId (v5 default) syntax, consistent\n // with every other content-type endpoint. The Document Service hashes\n // `password` attributes itself, so we must not pre-hash here.\n return strapi.documents(USER_MODEL_UID).create({\n data: values,\n populate: ['role'],\n });\n },\n\n /**\n * Promise to edit a/an user.\n * @param {string} userId\n * @param {object} params\n * @return {Promise}\n */\n async edit(userId, params = {}) {\n // The user is addressed by its numeric id (e.g. the `/users/:id` route),\n // but the Document Service updates by documentId. Resolve it first so the\n // relation inputs are processed by the Document Service, which accepts both\n // numeric ids (legacy) and documentIds (v5 default). The Document Service\n // hashes `password` attributes itself, so we must not pre-hash here.\n const entry = await strapi.db\n .query(USER_MODEL_UID)\n .findOne({ where: { id: userId }, select: ['documentId'] });\n\n if (!entry) {\n return null;\n }\n\n return strapi.documents(USER_MODEL_UID).update({\n documentId: entry.documentId,\n data: params,\n populate: ['role'],\n });\n },\n\n /**\n * Promise to fetch a/an user.\n * @return {Promise}\n */\n fetch(id, params) {\n const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});\n\n return strapi.db.query(USER_MODEL_UID).findOne({\n ...query,\n where: {\n $and: [{ id }, query.where || {}],\n },\n });\n },\n\n /**\n * Promise to fetch authenticated user.\n * @return {Promise}\n */\n fetchAuthenticatedUser(id) {\n return strapi.db.query(USER_MODEL_UID).findOne({ where: { id }, populate: ['role'] });\n },\n\n /**\n * Promise to fetch all users.\n * @return {Promise}\n */\n fetchAll(params) {\n const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});\n\n return strapi.db.query(USER_MODEL_UID).findMany(query);\n },\n\n /**\n * Promise to remove a/an user.\n * @return {Promise}\n */\n async remove(params) {\n // Invalidate sessions for all affected users\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('users-permissions') && params.id) {\n await sessionManager('users-permissions').invalidateRefreshToken(String(params.id));\n }\n\n return strapi.db.query(USER_MODEL_UID).delete({ where: params });\n },\n\n validatePassword(password, hash) {\n return bcrypt.compare(password, hash);\n },\n\n async sendConfirmationEmail(user) {\n const userPermissionService = getService('users-permissions');\n const pluginStore = await strapi.store({ type: 'plugin', name: 'users-permissions' });\n const userSchema = strapi.getModel(USER_MODEL_UID);\n\n const settings = await pluginStore\n .get({ key: 'email' })\n .then((storeEmail) => storeEmail.email_confirmation.options);\n\n // Sanitize the template's user information\n const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(\n {\n schema: userSchema,\n getModel: strapi.getModel.bind(strapi),\n },\n user\n );\n\n const confirmationToken = crypto.randomBytes(20).toString('hex');\n\n await this.edit(user.id, { confirmationToken });\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n\n try {\n settings.message = await userPermissionService.template(settings.message, {\n URL: urlJoin(\n strapi.config.get('server.absoluteUrl'),\n apiPrefix,\n '/auth/email-confirmation'\n ),\n SERVER_URL: strapi.config.get('server.absoluteUrl'),\n ADMIN_URL: strapi.config.get('admin.absoluteUrl'),\n USER: sanitizedUserInfo,\n CODE: confirmationToken,\n });\n\n settings.object = await userPermissionService.template(settings.object, {\n USER: sanitizedUserInfo,\n });\n } catch {\n strapi.log.error(\n '[plugin::users-permissions.sendConfirmationEmail]: Failed to generate a template for \"user confirmation email\". Please make sure your email template is valid and does not contain invalid characters or patterns'\n );\n return;\n }\n\n // Send an email to the user.\n await strapi\n .plugin('email')\n .service('email')\n .send({\n to: user.email,\n from:\n settings.from.email && settings.from.name\n ? `${settings.from.name} <${settings.from.email}>`\n : undefined,\n replyTo: settings.response_email,\n subject: settings.object,\n text: settings.message,\n html: settings.message,\n });\n },\n});\n"],"names":["crypto","require$$0","bcrypt","require$$1","urlJoin","require$$2","sanitize","require$$3","toNumber","getOr","require$$4","getService","require$$5","USER_MODEL_UID","getSessionManager","manager","strapi","sessionManager","user","count","params","db","query","where","ensureHashedPasswords","values","attributes","getModel","key","type","rounds","hash","add","documents","create","data","populate","edit","userId","entry","findOne","id","select","update","documentId","fetch","get","transform","$and","fetchAuthenticatedUser","fetchAll","findMany","remove","hasOrigin","invalidateRefreshToken","String","delete","validatePassword","password","compare","sendConfirmationEmail","userPermissionService","pluginStore","store","name","userSchema","settings","then","storeEmail","email_confirmation","options","sanitizedUserInfo","sanitizers","defaultSanitizeOutput","schema","bind","confirmationToken","randomBytes","toString","apiPrefix","config","message","template","URL","SERVER_URL","ADMIN_URL","USER","CODE","object","log","error","plugin","service","send","to","email","from","undefined","replyTo","response_email","subject","text","html"],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ import require$$0$1 from 'crypto';
2
+ import require$$1$1 from 'bcryptjs';
3
+ import require$$2 from 'url-join';
4
+ import require$$1 from '@strapi/utils';
5
+ import require$$0 from 'lodash/fp';
6
+ import { __require as requireUtils } from '../utils/index.mjs';
7
+
8
+ var user;
9
+ var hasRequiredUser;
10
+ function requireUser() {
11
+ if (hasRequiredUser) return user;
12
+ hasRequiredUser = 1;
13
+ /**
14
+ * User.js service
15
+ *
16
+ * @description: A set of functions similar to controller's actions to avoid code duplication.
17
+ */ const crypto = require$$0$1;
18
+ const bcrypt = require$$1$1;
19
+ const urlJoin = require$$2;
20
+ const { sanitize } = require$$1;
21
+ const { toNumber, getOr } = require$$0;
22
+ const { getService } = requireUtils();
23
+ const USER_MODEL_UID = 'plugin::users-permissions.user';
24
+ const getSessionManager = ()=>{
25
+ const manager = strapi.sessionManager;
26
+ return manager ?? null;
27
+ };
28
+ user = ({ strapi: strapi1 })=>({
29
+ /**
30
+ * Promise to count users
31
+ *
32
+ * @return {Promise}
33
+ */ count (params) {
34
+ return strapi1.db.query(USER_MODEL_UID).count({
35
+ where: params
36
+ });
37
+ },
38
+ /**
39
+ * Hashes password fields in the provided values object if they are present.
40
+ * It checks each key in the values object against the model's attributes and
41
+ * hashes it if the attribute type is 'password',
42
+ *
43
+ * @param {object} values - The object containing the fields to be hashed.
44
+ * @return {object} The values object with hashed password fields if they were present.
45
+ */ async ensureHashedPasswords (values) {
46
+ const attributes = strapi1.getModel(USER_MODEL_UID).attributes;
47
+ for(const key in values){
48
+ if (attributes[key] && attributes[key].type === 'password') {
49
+ // Check if a custom encryption.rounds has been set on the password attribute
50
+ const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));
51
+ values[key] = await bcrypt.hash(values[key], rounds);
52
+ }
53
+ }
54
+ return values;
55
+ },
56
+ /**
57
+ * Promise to add a/an user.
58
+ * @return {Promise}
59
+ */ async add (values) {
60
+ // Use the Document Service so relation inputs accept both the internal
61
+ // numeric id (legacy) and the documentId (v5 default) syntax, consistent
62
+ // with every other content-type endpoint. The Document Service hashes
63
+ // `password` attributes itself, so we must not pre-hash here.
64
+ return strapi1.documents(USER_MODEL_UID).create({
65
+ data: values,
66
+ populate: [
67
+ 'role'
68
+ ]
69
+ });
70
+ },
71
+ /**
72
+ * Promise to edit a/an user.
73
+ * @param {string} userId
74
+ * @param {object} params
75
+ * @return {Promise}
76
+ */ async edit (userId, params = {}) {
77
+ // The user is addressed by its numeric id (e.g. the `/users/:id` route),
78
+ // but the Document Service updates by documentId. Resolve it first so the
79
+ // relation inputs are processed by the Document Service, which accepts both
80
+ // numeric ids (legacy) and documentIds (v5 default). The Document Service
81
+ // hashes `password` attributes itself, so we must not pre-hash here.
82
+ const entry = await strapi1.db.query(USER_MODEL_UID).findOne({
83
+ where: {
84
+ id: userId
85
+ },
86
+ select: [
87
+ 'documentId'
88
+ ]
89
+ });
90
+ if (!entry) {
91
+ return null;
92
+ }
93
+ return strapi1.documents(USER_MODEL_UID).update({
94
+ documentId: entry.documentId,
95
+ data: params,
96
+ populate: [
97
+ 'role'
98
+ ]
99
+ });
100
+ },
101
+ /**
102
+ * Promise to fetch a/an user.
103
+ * @return {Promise}
104
+ */ fetch (id, params) {
105
+ const query = strapi1.get('query-params').transform(USER_MODEL_UID, params ?? {});
106
+ return strapi1.db.query(USER_MODEL_UID).findOne({
107
+ ...query,
108
+ where: {
109
+ $and: [
110
+ {
111
+ id
112
+ },
113
+ query.where || {}
114
+ ]
115
+ }
116
+ });
117
+ },
118
+ /**
119
+ * Promise to fetch authenticated user.
120
+ * @return {Promise}
121
+ */ fetchAuthenticatedUser (id) {
122
+ return strapi1.db.query(USER_MODEL_UID).findOne({
123
+ where: {
124
+ id
125
+ },
126
+ populate: [
127
+ 'role'
128
+ ]
129
+ });
130
+ },
131
+ /**
132
+ * Promise to fetch all users.
133
+ * @return {Promise}
134
+ */ fetchAll (params) {
135
+ const query = strapi1.get('query-params').transform(USER_MODEL_UID, params ?? {});
136
+ return strapi1.db.query(USER_MODEL_UID).findMany(query);
137
+ },
138
+ /**
139
+ * Promise to remove a/an user.
140
+ * @return {Promise}
141
+ */ async remove (params) {
142
+ // Invalidate sessions for all affected users
143
+ const sessionManager = getSessionManager();
144
+ if (sessionManager && sessionManager.hasOrigin('users-permissions') && params.id) {
145
+ await sessionManager('users-permissions').invalidateRefreshToken(String(params.id));
146
+ }
147
+ return strapi1.db.query(USER_MODEL_UID).delete({
148
+ where: params
149
+ });
150
+ },
151
+ validatePassword (password, hash) {
152
+ return bcrypt.compare(password, hash);
153
+ },
154
+ async sendConfirmationEmail (user) {
155
+ const userPermissionService = getService('users-permissions');
156
+ const pluginStore = await strapi1.store({
157
+ type: 'plugin',
158
+ name: 'users-permissions'
159
+ });
160
+ const userSchema = strapi1.getModel(USER_MODEL_UID);
161
+ const settings = await pluginStore.get({
162
+ key: 'email'
163
+ }).then((storeEmail)=>storeEmail.email_confirmation.options);
164
+ // Sanitize the template's user information
165
+ const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput({
166
+ schema: userSchema,
167
+ getModel: strapi1.getModel.bind(strapi1)
168
+ }, user);
169
+ const confirmationToken = crypto.randomBytes(20).toString('hex');
170
+ await this.edit(user.id, {
171
+ confirmationToken
172
+ });
173
+ const apiPrefix = strapi1.config.get('api.rest.prefix');
174
+ try {
175
+ settings.message = await userPermissionService.template(settings.message, {
176
+ URL: urlJoin(strapi1.config.get('server.absoluteUrl'), apiPrefix, '/auth/email-confirmation'),
177
+ SERVER_URL: strapi1.config.get('server.absoluteUrl'),
178
+ ADMIN_URL: strapi1.config.get('admin.absoluteUrl'),
179
+ USER: sanitizedUserInfo,
180
+ CODE: confirmationToken
181
+ });
182
+ settings.object = await userPermissionService.template(settings.object, {
183
+ USER: sanitizedUserInfo
184
+ });
185
+ } catch {
186
+ strapi1.log.error('[plugin::users-permissions.sendConfirmationEmail]: Failed to generate a template for "user confirmation email". Please make sure your email template is valid and does not contain invalid characters or patterns');
187
+ return;
188
+ }
189
+ // Send an email to the user.
190
+ await strapi1.plugin('email').service('email').send({
191
+ to: user.email,
192
+ from: settings.from.email && settings.from.name ? `${settings.from.name} <${settings.from.email}>` : undefined,
193
+ replyTo: settings.response_email,
194
+ subject: settings.object,
195
+ text: settings.message,
196
+ html: settings.message
197
+ });
198
+ }
199
+ });
200
+ return user;
201
+ }
202
+
203
+ export { requireUser as __require };
204
+ //# sourceMappingURL=user.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.mjs","sources":["../../../server/services/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js service\n *\n * @description: A set of functions similar to controller's actions to avoid code duplication.\n */\n\nconst crypto = require('crypto');\nconst bcrypt = require('bcryptjs');\nconst urlJoin = require('url-join');\n\nconst { sanitize } = require('@strapi/utils');\nconst { toNumber, getOr } = require('lodash/fp');\nconst { getService } = require('../utils');\n\nconst USER_MODEL_UID = 'plugin::users-permissions.user';\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\nmodule.exports = ({ strapi }) => ({\n /**\n * Promise to count users\n *\n * @return {Promise}\n */\n\n count(params) {\n return strapi.db.query(USER_MODEL_UID).count({ where: params });\n },\n\n /**\n * Hashes password fields in the provided values object if they are present.\n * It checks each key in the values object against the model's attributes and\n * hashes it if the attribute type is 'password',\n *\n * @param {object} values - The object containing the fields to be hashed.\n * @return {object} The values object with hashed password fields if they were present.\n */\n async ensureHashedPasswords(values) {\n const attributes = strapi.getModel(USER_MODEL_UID).attributes;\n\n for (const key in values) {\n if (attributes[key] && attributes[key].type === 'password') {\n // Check if a custom encryption.rounds has been set on the password attribute\n const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));\n values[key] = await bcrypt.hash(values[key], rounds);\n }\n }\n\n return values;\n },\n\n /**\n * Promise to add a/an user.\n * @return {Promise}\n */\n async add(values) {\n // Use the Document Service so relation inputs accept both the internal\n // numeric id (legacy) and the documentId (v5 default) syntax, consistent\n // with every other content-type endpoint. The Document Service hashes\n // `password` attributes itself, so we must not pre-hash here.\n return strapi.documents(USER_MODEL_UID).create({\n data: values,\n populate: ['role'],\n });\n },\n\n /**\n * Promise to edit a/an user.\n * @param {string} userId\n * @param {object} params\n * @return {Promise}\n */\n async edit(userId, params = {}) {\n // The user is addressed by its numeric id (e.g. the `/users/:id` route),\n // but the Document Service updates by documentId. Resolve it first so the\n // relation inputs are processed by the Document Service, which accepts both\n // numeric ids (legacy) and documentIds (v5 default). The Document Service\n // hashes `password` attributes itself, so we must not pre-hash here.\n const entry = await strapi.db\n .query(USER_MODEL_UID)\n .findOne({ where: { id: userId }, select: ['documentId'] });\n\n if (!entry) {\n return null;\n }\n\n return strapi.documents(USER_MODEL_UID).update({\n documentId: entry.documentId,\n data: params,\n populate: ['role'],\n });\n },\n\n /**\n * Promise to fetch a/an user.\n * @return {Promise}\n */\n fetch(id, params) {\n const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});\n\n return strapi.db.query(USER_MODEL_UID).findOne({\n ...query,\n where: {\n $and: [{ id }, query.where || {}],\n },\n });\n },\n\n /**\n * Promise to fetch authenticated user.\n * @return {Promise}\n */\n fetchAuthenticatedUser(id) {\n return strapi.db.query(USER_MODEL_UID).findOne({ where: { id }, populate: ['role'] });\n },\n\n /**\n * Promise to fetch all users.\n * @return {Promise}\n */\n fetchAll(params) {\n const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});\n\n return strapi.db.query(USER_MODEL_UID).findMany(query);\n },\n\n /**\n * Promise to remove a/an user.\n * @return {Promise}\n */\n async remove(params) {\n // Invalidate sessions for all affected users\n const sessionManager = getSessionManager();\n if (sessionManager && sessionManager.hasOrigin('users-permissions') && params.id) {\n await sessionManager('users-permissions').invalidateRefreshToken(String(params.id));\n }\n\n return strapi.db.query(USER_MODEL_UID).delete({ where: params });\n },\n\n validatePassword(password, hash) {\n return bcrypt.compare(password, hash);\n },\n\n async sendConfirmationEmail(user) {\n const userPermissionService = getService('users-permissions');\n const pluginStore = await strapi.store({ type: 'plugin', name: 'users-permissions' });\n const userSchema = strapi.getModel(USER_MODEL_UID);\n\n const settings = await pluginStore\n .get({ key: 'email' })\n .then((storeEmail) => storeEmail.email_confirmation.options);\n\n // Sanitize the template's user information\n const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(\n {\n schema: userSchema,\n getModel: strapi.getModel.bind(strapi),\n },\n user\n );\n\n const confirmationToken = crypto.randomBytes(20).toString('hex');\n\n await this.edit(user.id, { confirmationToken });\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n\n try {\n settings.message = await userPermissionService.template(settings.message, {\n URL: urlJoin(\n strapi.config.get('server.absoluteUrl'),\n apiPrefix,\n '/auth/email-confirmation'\n ),\n SERVER_URL: strapi.config.get('server.absoluteUrl'),\n ADMIN_URL: strapi.config.get('admin.absoluteUrl'),\n USER: sanitizedUserInfo,\n CODE: confirmationToken,\n });\n\n settings.object = await userPermissionService.template(settings.object, {\n USER: sanitizedUserInfo,\n });\n } catch {\n strapi.log.error(\n '[plugin::users-permissions.sendConfirmationEmail]: Failed to generate a template for \"user confirmation email\". Please make sure your email template is valid and does not contain invalid characters or patterns'\n );\n return;\n }\n\n // Send an email to the user.\n await strapi\n .plugin('email')\n .service('email')\n .send({\n to: user.email,\n from:\n settings.from.email && settings.from.name\n ? `${settings.from.name} <${settings.from.email}>`\n : undefined,\n replyTo: settings.response_email,\n subject: settings.object,\n text: settings.message,\n html: settings.message,\n });\n },\n});\n"],"names":["crypto","require$$0","bcrypt","require$$1","urlJoin","require$$2","sanitize","require$$3","toNumber","getOr","require$$4","getService","require$$5","USER_MODEL_UID","getSessionManager","manager","strapi","sessionManager","user","count","params","db","query","where","ensureHashedPasswords","values","attributes","getModel","key","type","rounds","hash","add","documents","create","data","populate","edit","userId","entry","findOne","id","select","update","documentId","fetch","get","transform","$and","fetchAuthenticatedUser","fetchAll","findMany","remove","hasOrigin","invalidateRefreshToken","String","delete","validatePassword","password","compare","sendConfirmationEmail","userPermissionService","pluginStore","store","name","userSchema","settings","then","storeEmail","email_confirmation","options","sanitizedUserInfo","sanitizers","defaultSanitizeOutput","schema","bind","confirmationToken","randomBytes","toString","apiPrefix","config","message","template","URL","SERVER_URL","ADMIN_URL","USER","CODE","object","log","error","plugin","service","send","to","email","from","undefined","replyTo","response_email","subject","text","html"],"mappings":"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"}