@strapi/plugin-users-permissions 0.0.0-next.fc231041206e6f3999b094160cfa05db2892ad54 → 0.0.0-next.fc9d26d995624dc886b29f563e1de655d47e6609

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 (310) 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 +13 -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 +8 -6
  11. package/admin/src/components/UsersPermissions/index.jsx +15 -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 +120 -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 -113
  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 +53 -58
  27. package/admin/src/pages/Roles/pages/EditPage.jsx +63 -68
  28. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +28 -32
  29. package/admin/src/pages/Roles/pages/ListPage/index.jsx +79 -55
  30. package/admin/src/pluginId.js +2 -2
  31. package/admin/src/translations/en.json +1 -1
  32. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  33. package/dist/admin/chunks/ar-BJwjobLp.js +45 -0
  34. package/dist/admin/chunks/ar-BJwjobLp.js.map +1 -0
  35. package/dist/admin/chunks/ar-G6bUGuUb.js +43 -0
  36. package/dist/admin/chunks/ar-G6bUGuUb.js.map +1 -0
  37. package/dist/admin/chunks/cs-Bu59JqhG.js +49 -0
  38. package/dist/admin/chunks/cs-Bu59JqhG.js.map +1 -0
  39. package/dist/admin/chunks/cs-uS_SIEo8.js +51 -0
  40. package/dist/admin/chunks/cs-uS_SIEo8.js.map +1 -0
  41. package/dist/admin/chunks/de-7MVMrqqI.js +63 -0
  42. package/dist/admin/chunks/de-7MVMrqqI.js.map +1 -0
  43. package/dist/admin/chunks/de-B81A69_5.js +61 -0
  44. package/dist/admin/chunks/de-B81A69_5.js.map +1 -0
  45. package/dist/admin/chunks/dk-BaelzvBE.js +85 -0
  46. package/dist/admin/chunks/dk-BaelzvBE.js.map +1 -0
  47. package/dist/admin/chunks/dk-DwCLGmy9.js +87 -0
  48. package/dist/admin/chunks/dk-DwCLGmy9.js.map +1 -0
  49. package/dist/admin/chunks/en-BhgCBe7M.js +85 -0
  50. package/dist/admin/chunks/en-BhgCBe7M.js.map +1 -0
  51. package/dist/admin/chunks/en-DwQjkHi_.js +87 -0
  52. package/dist/admin/chunks/en-DwQjkHi_.js.map +1 -0
  53. package/dist/admin/chunks/es-B0wXmvRj.js +85 -0
  54. package/dist/admin/chunks/es-B0wXmvRj.js.map +1 -0
  55. package/dist/admin/chunks/es-BOJOedG5.js +87 -0
  56. package/dist/admin/chunks/es-BOJOedG5.js.map +1 -0
  57. package/dist/admin/chunks/fr-BDNWCNs0.js +51 -0
  58. package/dist/admin/chunks/fr-BDNWCNs0.js.map +1 -0
  59. package/dist/admin/chunks/fr-CGYvGUXg.js +49 -0
  60. package/dist/admin/chunks/fr-CGYvGUXg.js.map +1 -0
  61. package/dist/admin/chunks/id-CNzbwFjA.js +61 -0
  62. package/dist/admin/chunks/id-CNzbwFjA.js.map +1 -0
  63. package/dist/admin/chunks/id-UqUPykHZ.js +63 -0
  64. package/dist/admin/chunks/id-UqUPykHZ.js.map +1 -0
  65. package/dist/admin/chunks/index-BPiDUOGt.js +471 -0
  66. package/dist/admin/chunks/index-BPiDUOGt.js.map +1 -0
  67. package/dist/admin/chunks/index-BtYUb_br.js +741 -0
  68. package/dist/admin/chunks/index-BtYUb_br.js.map +1 -0
  69. package/dist/admin/chunks/index-CkYplz_3.js +301 -0
  70. package/dist/admin/chunks/index-CkYplz_3.js.map +1 -0
  71. package/dist/admin/chunks/index-CxiKMwJn.js +279 -0
  72. package/dist/admin/chunks/index-CxiKMwJn.js.map +1 -0
  73. package/dist/admin/chunks/index-D01zzG9y.js +1537 -0
  74. package/dist/admin/chunks/index-D01zzG9y.js.map +1 -0
  75. package/dist/admin/chunks/index-DAclA-0k.js +217 -0
  76. package/dist/admin/chunks/index-DAclA-0k.js.map +1 -0
  77. package/dist/admin/chunks/index-DG6Abn44.js +213 -0
  78. package/dist/admin/chunks/index-DG6Abn44.js.map +1 -0
  79. package/dist/admin/chunks/index-De_N0gr1.js +448 -0
  80. package/dist/admin/chunks/index-De_N0gr1.js.map +1 -0
  81. package/dist/admin/chunks/index-DgONbTcJ.js +718 -0
  82. package/dist/admin/chunks/index-DgONbTcJ.js.map +1 -0
  83. package/dist/admin/chunks/index-xVVRcuDA.js +1516 -0
  84. package/dist/admin/chunks/index-xVVRcuDA.js.map +1 -0
  85. package/dist/admin/chunks/it-B2H2foTf.js +61 -0
  86. package/dist/admin/chunks/it-B2H2foTf.js.map +1 -0
  87. package/dist/admin/chunks/it-D5VuyoLU.js +63 -0
  88. package/dist/admin/chunks/it-D5VuyoLU.js.map +1 -0
  89. package/dist/admin/chunks/ja-C0z9d7L9.js +47 -0
  90. package/dist/admin/chunks/ja-C0z9d7L9.js.map +1 -0
  91. package/dist/admin/chunks/ja-MpqVsCgs.js +49 -0
  92. package/dist/admin/chunks/ja-MpqVsCgs.js.map +1 -0
  93. package/dist/admin/chunks/ko-Bm-grPSc.js +87 -0
  94. package/dist/admin/chunks/ko-Bm-grPSc.js.map +1 -0
  95. package/dist/admin/chunks/ko-CzUgzpeS.js +85 -0
  96. package/dist/admin/chunks/ko-CzUgzpeS.js.map +1 -0
  97. package/dist/admin/chunks/ms-CCacxjim.js +48 -0
  98. package/dist/admin/chunks/ms-CCacxjim.js.map +1 -0
  99. package/dist/admin/chunks/ms-D7eyBD5H.js +50 -0
  100. package/dist/admin/chunks/ms-D7eyBD5H.js.map +1 -0
  101. package/dist/admin/chunks/nl-BIOwAQtI.js +49 -0
  102. package/dist/admin/chunks/nl-BIOwAQtI.js.map +1 -0
  103. package/dist/admin/chunks/nl-DDC3nZW-.js +47 -0
  104. package/dist/admin/chunks/nl-DDC3nZW-.js.map +1 -0
  105. package/dist/admin/chunks/pl-D5BeNrg_.js +87 -0
  106. package/dist/admin/chunks/pl-D5BeNrg_.js.map +1 -0
  107. package/dist/admin/chunks/pl-XkS463rN.js +85 -0
  108. package/dist/admin/chunks/pl-XkS463rN.js.map +1 -0
  109. package/dist/admin/chunks/pt-BR-8cC7z8Km.js +43 -0
  110. package/dist/admin/chunks/pt-BR-8cC7z8Km.js.map +1 -0
  111. package/dist/admin/chunks/pt-BR-DxPBzQGx.js +45 -0
  112. package/dist/admin/chunks/pt-BR-DxPBzQGx.js.map +1 -0
  113. package/dist/admin/chunks/pt-DQpEvio8.js +47 -0
  114. package/dist/admin/chunks/pt-DQpEvio8.js.map +1 -0
  115. package/dist/admin/chunks/pt-kkCwzNvH.js +49 -0
  116. package/dist/admin/chunks/pt-kkCwzNvH.js.map +1 -0
  117. package/dist/admin/chunks/ru-BQ0gHmp3.js +87 -0
  118. package/dist/admin/chunks/ru-BQ0gHmp3.js.map +1 -0
  119. package/dist/admin/chunks/ru-nzL_7Mhg.js +85 -0
  120. package/dist/admin/chunks/ru-nzL_7Mhg.js.map +1 -0
  121. package/dist/admin/chunks/sk-Ddxc_tZA.js +49 -0
  122. package/dist/admin/chunks/sk-Ddxc_tZA.js.map +1 -0
  123. package/dist/admin/chunks/sk-nVwAPdYC.js +51 -0
  124. package/dist/admin/chunks/sk-nVwAPdYC.js.map +1 -0
  125. package/dist/admin/chunks/sv-BDfk2A-F.js +87 -0
  126. package/dist/admin/chunks/sv-BDfk2A-F.js.map +1 -0
  127. package/dist/admin/chunks/sv-By3RYpMG.js +85 -0
  128. package/dist/admin/chunks/sv-By3RYpMG.js.map +1 -0
  129. package/dist/admin/chunks/th-BtTtpHe2.js +61 -0
  130. package/dist/admin/chunks/th-BtTtpHe2.js.map +1 -0
  131. package/dist/admin/chunks/th-COl50vqb.js +59 -0
  132. package/dist/admin/chunks/th-COl50vqb.js.map +1 -0
  133. package/dist/admin/chunks/tr-80SJU6jg.js +84 -0
  134. package/dist/admin/chunks/tr-80SJU6jg.js.map +1 -0
  135. package/dist/admin/chunks/tr-Di-Nf7cT.js +86 -0
  136. package/dist/admin/chunks/tr-Di-Nf7cT.js.map +1 -0
  137. package/dist/admin/chunks/uk-CggQOx1l.js +50 -0
  138. package/dist/admin/chunks/uk-CggQOx1l.js.map +1 -0
  139. package/dist/admin/chunks/uk-D8JHuzch.js +48 -0
  140. package/dist/admin/chunks/uk-D8JHuzch.js.map +1 -0
  141. package/dist/admin/chunks/vi-69AF03Iv.js +49 -0
  142. package/dist/admin/chunks/vi-69AF03Iv.js.map +1 -0
  143. package/dist/admin/chunks/vi-D9cCsHsU.js +51 -0
  144. package/dist/admin/chunks/vi-D9cCsHsU.js.map +1 -0
  145. package/dist/admin/chunks/zh-BzSkqxo-.js +85 -0
  146. package/dist/admin/chunks/zh-BzSkqxo-.js.map +1 -0
  147. package/dist/admin/chunks/zh-BzWgJEzz.js +87 -0
  148. package/dist/admin/chunks/zh-BzWgJEzz.js.map +1 -0
  149. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js +87 -0
  150. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js.map +1 -0
  151. package/dist/admin/chunks/zh-Hans-DmDcSsp7.js +85 -0
  152. package/dist/admin/chunks/zh-Hans-DmDcSsp7.js.map +1 -0
  153. package/dist/admin/index.js +6 -3
  154. package/dist/admin/index.js.map +1 -1
  155. package/dist/admin/index.mjs +1 -5
  156. package/dist/admin/index.mjs.map +1 -1
  157. package/dist/server/index.js +4739 -0
  158. package/dist/server/index.js.map +1 -0
  159. package/dist/server/index.mjs +4737 -0
  160. package/dist/server/index.mjs.map +1 -0
  161. package/package.json +31 -32
  162. package/rollup.config.mjs +52 -0
  163. package/server/bootstrap/index.js +18 -51
  164. package/server/bootstrap/users-permissions-actions.js +6 -0
  165. package/server/config.js +29 -0
  166. package/server/content-types/user/index.js +0 -1
  167. package/server/controllers/auth.js +63 -64
  168. package/server/controllers/content-manager-user.js +28 -30
  169. package/server/controllers/role.js +17 -4
  170. package/server/controllers/user.js +8 -9
  171. package/server/controllers/validation/auth.js +81 -25
  172. package/server/graphql/types/index.js +1 -0
  173. package/server/graphql/types/me.js +1 -0
  174. package/server/graphql/types/user-input.js +20 -0
  175. package/server/middlewares/rateLimit.js +1 -1
  176. package/server/register.js +2 -2
  177. package/server/services/jwt.js +3 -3
  178. package/server/services/permission.js +3 -7
  179. package/server/services/providers-registry.js +468 -275
  180. package/server/services/providers.js +10 -5
  181. package/server/services/role.js +15 -13
  182. package/server/services/user.js +56 -19
  183. package/server/services/users-permissions.js +15 -13
  184. package/server/utils/index.d.ts +2 -1
  185. package/server/utils/sanitize/sanitizers.js +7 -3
  186. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  187. package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
  188. package/dist/_chunks/ar-MvD8Ghac.mjs +0 -44
  189. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  190. package/dist/_chunks/ar-t5qTFaAD.js +0 -44
  191. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  192. package/dist/_chunks/cs-BMuXwxA1.mjs +0 -50
  193. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  194. package/dist/_chunks/cs-I8N4u-Sd.js +0 -50
  195. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  196. package/dist/_chunks/de-YTjtq89K.js +0 -62
  197. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  198. package/dist/_chunks/de-zs2qqc0W.mjs +0 -62
  199. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  200. package/dist/_chunks/dk-HctVBMsG.mjs +0 -86
  201. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  202. package/dist/_chunks/dk-TF-dWjzl.js +0 -86
  203. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  204. package/dist/_chunks/en-CE3wEy_c.mjs +0 -86
  205. package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
  206. package/dist/_chunks/en-m608rMZx.js +0 -86
  207. package/dist/_chunks/en-m608rMZx.js.map +0 -1
  208. package/dist/_chunks/es-9381tih_.mjs +0 -86
  209. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  210. package/dist/_chunks/es-XBQsB8_9.js +0 -86
  211. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  212. package/dist/_chunks/fr-6cz3U-IF.js +0 -50
  213. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  214. package/dist/_chunks/fr-CMSc77If.mjs +0 -50
  215. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  216. package/dist/_chunks/id-RJ934rq-.js +0 -62
  217. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  218. package/dist/_chunks/id-SDuyIkZa.mjs +0 -62
  219. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  220. package/dist/_chunks/index-5-krOCaE.mjs +0 -250
  221. package/dist/_chunks/index-5-krOCaE.mjs.map +0 -1
  222. package/dist/_chunks/index-Aq7T7skI.js +0 -1191
  223. package/dist/_chunks/index-Aq7T7skI.js.map +0 -1
  224. package/dist/_chunks/index-LN8gSFZ3.mjs +0 -385
  225. package/dist/_chunks/index-LN8gSFZ3.mjs.map +0 -1
  226. package/dist/_chunks/index-RWAJu_-T.js +0 -407
  227. package/dist/_chunks/index-RWAJu_-T.js.map +0 -1
  228. package/dist/_chunks/index-SICvbeQf.mjs +0 -301
  229. package/dist/_chunks/index-SICvbeQf.mjs.map +0 -1
  230. package/dist/_chunks/index-YkMqn-9t.js +0 -249
  231. package/dist/_chunks/index-YkMqn-9t.js.map +0 -1
  232. package/dist/_chunks/index-_wwOOuf_.js +0 -320
  233. package/dist/_chunks/index-_wwOOuf_.js.map +0 -1
  234. package/dist/_chunks/index-dnfs8wOQ.js +0 -638
  235. package/dist/_chunks/index-dnfs8wOQ.js.map +0 -1
  236. package/dist/_chunks/index-l_QWM0NZ.mjs +0 -1159
  237. package/dist/_chunks/index-l_QWM0NZ.mjs.map +0 -1
  238. package/dist/_chunks/index-wiA9qAAp.mjs +0 -615
  239. package/dist/_chunks/index-wiA9qAAp.mjs.map +0 -1
  240. package/dist/_chunks/it-YhZOlM2X.js +0 -62
  241. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  242. package/dist/_chunks/it-bvH7DgQo.mjs +0 -62
  243. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  244. package/dist/_chunks/ja-o_-JPvQv.mjs +0 -48
  245. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  246. package/dist/_chunks/ja-xssHUXFv.js +0 -48
  247. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  248. package/dist/_chunks/ko-C3mHUSJa.js +0 -86
  249. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  250. package/dist/_chunks/ko-XJbPSez_.mjs +0 -86
  251. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  252. package/dist/_chunks/ms-II5Ea73J.mjs +0 -49
  253. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  254. package/dist/_chunks/ms-d0hfg65Z.js +0 -49
  255. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  256. package/dist/_chunks/nl-TA7TfK_5.js +0 -48
  257. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  258. package/dist/_chunks/nl-vEy6TN0K.mjs +0 -48
  259. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  260. package/dist/_chunks/pl-0pUL9hdA.js +0 -86
  261. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  262. package/dist/_chunks/pl-2VowaFGt.mjs +0 -86
  263. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  264. package/dist/_chunks/pt-BR-WNOhafR4.js +0 -44
  265. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  266. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs +0 -44
  267. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  268. package/dist/_chunks/pt-Rf9W51IO.mjs +0 -48
  269. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  270. package/dist/_chunks/pt-guNR9Gax.js +0 -48
  271. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  272. package/dist/_chunks/ru-X3BMXDds.js +0 -86
  273. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  274. package/dist/_chunks/ru-qKHnd5or.mjs +0 -86
  275. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  276. package/dist/_chunks/sk-NWPw1oTN.js +0 -50
  277. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  278. package/dist/_chunks/sk-_Ryr-eTT.mjs +0 -50
  279. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  280. package/dist/_chunks/sv-76NnbB__.js +0 -86
  281. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  282. package/dist/_chunks/sv-BqzScFXS.mjs +0 -86
  283. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  284. package/dist/_chunks/th-WsknMEpq.mjs +0 -60
  285. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  286. package/dist/_chunks/th-cbppX21D.js +0 -60
  287. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  288. package/dist/_chunks/tr-6mm_Fmz7.js +0 -85
  289. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  290. package/dist/_chunks/tr-_DB1F1GW.mjs +0 -85
  291. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  292. package/dist/_chunks/uk-sI2I1ogF.js +0 -49
  293. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  294. package/dist/_chunks/uk-yxMSQAwI.mjs +0 -49
  295. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  296. package/dist/_chunks/vi-A3zJxaiI.js +0 -50
  297. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  298. package/dist/_chunks/vi-xY0zCW3d.mjs +0 -50
  299. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  300. package/dist/_chunks/zh-72SpmFXa.js +0 -86
  301. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  302. package/dist/_chunks/zh-Hans-ArWWtyP4.js +0 -86
  303. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  304. package/dist/_chunks/zh-Hans-E84cu4kP.mjs +0 -86
  305. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  306. package/dist/_chunks/zh-OFeldzbX.mjs +0 -86
  307. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  308. package/packup.config.ts +0 -22
  309. package/server/bootstrap/grant-config.js +0 -140
  310. package/strapi-server.js +0 -3
@@ -8,7 +8,6 @@
8
8
  const _ = require('lodash');
9
9
  const urlJoin = require('url-join');
10
10
 
11
- const { getAbsoluteServerUrl } = require('@strapi/utils');
12
11
  const { getService } = require('../utils');
13
12
 
14
13
  module.exports = ({ strapi }) => {
@@ -60,7 +59,7 @@ module.exports = ({ strapi }) => {
60
59
  throw new Error('Email was not available.');
61
60
  }
62
61
 
63
- const users = await strapi.query('plugin::users-permissions.user').findMany({
62
+ const users = await strapi.db.query('plugin::users-permissions.user').findMany({
64
63
  where: { email },
65
64
  });
66
65
 
@@ -83,7 +82,7 @@ module.exports = ({ strapi }) => {
83
82
  }
84
83
 
85
84
  // Retrieve default role.
86
- const defaultRole = await strapi
85
+ const defaultRole = await strapi.db
87
86
  .query('plugin::users-permissions.role')
88
87
  .findOne({ where: { type: advancedSettings.default_role } });
89
88
 
@@ -96,7 +95,7 @@ module.exports = ({ strapi }) => {
96
95
  confirmed: true,
97
96
  };
98
97
 
99
- const createdUser = await strapi
98
+ const createdUser = await strapi.db
100
99
  .query('plugin::users-permissions.user')
101
100
  .create({ data: newUser });
102
101
 
@@ -105,7 +104,13 @@ module.exports = ({ strapi }) => {
105
104
 
106
105
  const buildRedirectUri = (provider = '') => {
107
106
  const apiPrefix = strapi.config.get('api.rest.prefix');
108
- return urlJoin(getAbsoluteServerUrl(strapi.config), apiPrefix, 'connect', provider, 'callback');
107
+ return urlJoin(
108
+ strapi.config.get('server.absoluteUrl'),
109
+ apiPrefix,
110
+ 'connect',
111
+ provider,
112
+ 'callback'
113
+ );
109
114
  };
110
115
 
111
116
  return {
@@ -10,7 +10,7 @@ module.exports = ({ strapi }) => ({
10
10
  params.type = _.snakeCase(_.deburr(_.toLower(params.name)));
11
11
  }
12
12
 
13
- const role = await strapi
13
+ const role = await strapi.db
14
14
  .query('plugin::users-permissions.role')
15
15
  .create({ data: _.omit(params, ['users', 'permissions']) });
16
16
 
@@ -25,7 +25,7 @@ module.exports = ({ strapi }) => ({
25
25
  const actionID = `${typeName}.${controllerName}.${actionName}`;
26
26
 
27
27
  acc.push(
28
- strapi
28
+ strapi.db
29
29
  .query('plugin::users-permissions.permission')
30
30
  .create({ data: { action: actionID, role: role.id } })
31
31
  );
@@ -42,7 +42,7 @@ module.exports = ({ strapi }) => ({
42
42
  },
43
43
 
44
44
  async findOne(roleID) {
45
- const role = await strapi
45
+ const role = await strapi.db
46
46
  .query('plugin::users-permissions.role')
47
47
  .findOne({ where: { id: roleID }, populate: ['permissions'] });
48
48
 
@@ -69,10 +69,12 @@ module.exports = ({ strapi }) => ({
69
69
  },
70
70
 
71
71
  async find() {
72
- const roles = await strapi.query('plugin::users-permissions.role').findMany({ sort: ['name'] });
72
+ const roles = await strapi.db
73
+ .query('plugin::users-permissions.role')
74
+ .findMany({ sort: ['name'] });
73
75
 
74
76
  for (const role of roles) {
75
- role.nb_users = await strapi
77
+ role.nb_users = await strapi.db
76
78
  .query('plugin::users-permissions.user')
77
79
  .count({ where: { role: { id: role.id } } });
78
80
  }
@@ -81,7 +83,7 @@ module.exports = ({ strapi }) => ({
81
83
  },
82
84
 
83
85
  async updateRole(roleID, data) {
84
- const role = await strapi
86
+ const role = await strapi.db
85
87
  .query('plugin::users-permissions.role')
86
88
  .findOne({ where: { id: roleID }, populate: ['permissions'] });
87
89
 
@@ -89,7 +91,7 @@ module.exports = ({ strapi }) => ({
89
91
  throw new NotFoundError('Role not found');
90
92
  }
91
93
 
92
- await strapi.query('plugin::users-permissions.role').update({
94
+ await strapi.db.query('plugin::users-permissions.role').update({
93
95
  where: { id: roleID },
94
96
  data: _.pick(data, ['name', 'description']),
95
97
  });
@@ -129,7 +131,7 @@ module.exports = ({ strapi }) => ({
129
131
 
130
132
  await Promise.all(
131
133
  toDelete.map((permission) =>
132
- strapi
134
+ strapi.db
133
135
  .query('plugin::users-permissions.permission')
134
136
  .delete({ where: { id: permission.id } })
135
137
  )
@@ -137,13 +139,13 @@ module.exports = ({ strapi }) => ({
137
139
 
138
140
  await Promise.all(
139
141
  toCreate.map((permissionInfo) =>
140
- strapi.query('plugin::users-permissions.permission').create({ data: permissionInfo })
142
+ strapi.db.query('plugin::users-permissions.permission').create({ data: permissionInfo })
141
143
  )
142
144
  );
143
145
  },
144
146
 
145
147
  async deleteRole(roleID, publicRoleID) {
146
- const role = await strapi
148
+ const role = await strapi.db
147
149
  .query('plugin::users-permissions.role')
148
150
  .findOne({ where: { id: roleID }, populate: ['users', 'permissions'] });
149
151
 
@@ -154,7 +156,7 @@ module.exports = ({ strapi }) => ({
154
156
  // Move users to guest role.
155
157
  await Promise.all(
156
158
  role.users.map((user) => {
157
- return strapi.query('plugin::users-permissions.user').update({
159
+ return strapi.db.query('plugin::users-permissions.user').update({
158
160
  where: { id: user.id },
159
161
  data: { role: publicRoleID },
160
162
  });
@@ -165,13 +167,13 @@ module.exports = ({ strapi }) => ({
165
167
  // TODO: use delete many
166
168
  await Promise.all(
167
169
  role.permissions.map((permission) => {
168
- return strapi.query('plugin::users-permissions.permission').delete({
170
+ return strapi.db.query('plugin::users-permissions.permission').delete({
169
171
  where: { id: permission.id },
170
172
  });
171
173
  })
172
174
  );
173
175
 
174
176
  // Delete the role.
175
- await strapi.query('plugin::users-permissions.role').delete({ where: { id: roleID } });
177
+ await strapi.db.query('plugin::users-permissions.role').delete({ where: { id: roleID } });
176
178
  },
177
179
  });
@@ -10,9 +10,12 @@ const crypto = require('crypto');
10
10
  const bcrypt = require('bcryptjs');
11
11
  const urlJoin = require('url-join');
12
12
 
13
- const { getAbsoluteAdminUrl, getAbsoluteServerUrl, sanitize } = require('@strapi/utils');
13
+ const { sanitize } = require('@strapi/utils');
14
+ const { toNumber, getOr } = require('lodash/fp');
14
15
  const { getService } = require('../utils');
15
16
 
17
+ const USER_MODEL_UID = 'plugin::users-permissions.user';
18
+
16
19
  module.exports = ({ strapi }) => ({
17
20
  /**
18
21
  * Promise to count users
@@ -21,22 +24,38 @@ module.exports = ({ strapi }) => ({
21
24
  */
22
25
 
23
26
  count(params) {
24
- return strapi.query('plugin::users-permissions.user').count({ where: params });
27
+ return strapi.db.query(USER_MODEL_UID).count({ where: params });
25
28
  },
26
29
 
27
30
  /**
28
- * Promise to search count users
31
+ * Hashes password fields in the provided values object if they are present.
32
+ * It checks each key in the values object against the model's attributes and
33
+ * hashes it if the attribute type is 'password',
29
34
  *
30
- * @return {Promise}
35
+ * @param {object} values - The object containing the fields to be hashed.
36
+ * @return {object} The values object with hashed password fields if they were present.
31
37
  */
38
+ async ensureHashedPasswords(values) {
39
+ const attributes = strapi.getModel(USER_MODEL_UID).attributes;
40
+
41
+ for (const key in values) {
42
+ if (attributes[key] && attributes[key].type === 'password') {
43
+ // Check if a custom encryption.rounds has been set on the password attribute
44
+ const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));
45
+ values[key] = await bcrypt.hash(values[key], rounds);
46
+ }
47
+ }
48
+
49
+ return values;
50
+ },
32
51
 
33
52
  /**
34
53
  * Promise to add a/an user.
35
54
  * @return {Promise}
36
55
  */
37
56
  async add(values) {
38
- return strapi.entityService.create('plugin::users-permissions.user', {
39
- data: values,
57
+ return strapi.db.query(USER_MODEL_UID).create({
58
+ data: await this.ensureHashedPasswords(values),
40
59
  populate: ['role'],
41
60
  });
42
61
  },
@@ -48,8 +67,9 @@ module.exports = ({ strapi }) => ({
48
67
  * @return {Promise}
49
68
  */
50
69
  async edit(userId, params = {}) {
51
- return strapi.entityService.update('plugin::users-permissions.user', userId, {
52
- data: params,
70
+ return strapi.db.query(USER_MODEL_UID).update({
71
+ where: { id: userId },
72
+ data: await this.ensureHashedPasswords(params),
53
73
  populate: ['role'],
54
74
  });
55
75
  },
@@ -59,7 +79,14 @@ module.exports = ({ strapi }) => ({
59
79
  * @return {Promise}
60
80
  */
61
81
  fetch(id, params) {
62
- return strapi.entityService.findOne('plugin::users-permissions.user', id, params);
82
+ const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});
83
+
84
+ return strapi.db.query(USER_MODEL_UID).findOne({
85
+ ...query,
86
+ where: {
87
+ $and: [{ id }, query.where || {}],
88
+ },
89
+ });
63
90
  },
64
91
 
65
92
  /**
@@ -67,9 +94,7 @@ module.exports = ({ strapi }) => ({
67
94
  * @return {Promise}
68
95
  */
69
96
  fetchAuthenticatedUser(id) {
70
- return strapi
71
- .query('plugin::users-permissions.user')
72
- .findOne({ where: { id }, populate: ['role'] });
97
+ return strapi.db.query(USER_MODEL_UID).findOne({ where: { id }, populate: ['role'] });
73
98
  },
74
99
 
75
100
  /**
@@ -77,7 +102,9 @@ module.exports = ({ strapi }) => ({
77
102
  * @return {Promise}
78
103
  */
79
104
  fetchAll(params) {
80
- return strapi.entityService.findMany('plugin::users-permissions.user', params);
105
+ const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});
106
+
107
+ return strapi.db.query(USER_MODEL_UID).findMany(query);
81
108
  },
82
109
 
83
110
  /**
@@ -85,7 +112,7 @@ module.exports = ({ strapi }) => ({
85
112
  * @return {Promise}
86
113
  */
87
114
  async remove(params) {
88
- return strapi.query('plugin::users-permissions.user').delete({ where: params });
115
+ return strapi.db.query(USER_MODEL_UID).delete({ where: params });
89
116
  },
90
117
 
91
118
  validatePassword(password, hash) {
@@ -95,14 +122,20 @@ module.exports = ({ strapi }) => ({
95
122
  async sendConfirmationEmail(user) {
96
123
  const userPermissionService = getService('users-permissions');
97
124
  const pluginStore = await strapi.store({ type: 'plugin', name: 'users-permissions' });
98
- const userSchema = strapi.getModel('plugin::users-permissions.user');
125
+ const userSchema = strapi.getModel(USER_MODEL_UID);
99
126
 
100
127
  const settings = await pluginStore
101
128
  .get({ key: 'email' })
102
129
  .then((storeEmail) => storeEmail.email_confirmation.options);
103
130
 
104
131
  // Sanitize the template's user information
105
- const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(userSchema, user);
132
+ const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(
133
+ {
134
+ schema: userSchema,
135
+ getModel: strapi.getModel.bind(strapi),
136
+ },
137
+ user
138
+ );
106
139
 
107
140
  const confirmationToken = crypto.randomBytes(20).toString('hex');
108
141
 
@@ -112,9 +145,13 @@ module.exports = ({ strapi }) => ({
112
145
 
113
146
  try {
114
147
  settings.message = await userPermissionService.template(settings.message, {
115
- URL: urlJoin(getAbsoluteServerUrl(strapi.config), apiPrefix, '/auth/email-confirmation'),
116
- SERVER_URL: getAbsoluteServerUrl(strapi.config),
117
- ADMIN_URL: getAbsoluteAdminUrl(strapi.config),
148
+ URL: urlJoin(
149
+ strapi.config.get('server.absoluteUrl'),
150
+ apiPrefix,
151
+ '/auth/email-confirmation'
152
+ ),
153
+ SERVER_URL: strapi.config.get('server.absoluteUrl'),
154
+ ADMIN_URL: strapi.config.get('admin.absoluteUrl'),
118
155
  USER: sanitizedUserInfo,
119
156
  CODE: confirmationToken,
120
157
  });
@@ -6,7 +6,7 @@ const urlJoin = require('url-join');
6
6
  const {
7
7
  template: { createStrictInterpolationRegExp },
8
8
  errors,
9
- keysDeep,
9
+ objects,
10
10
  } = require('@strapi/utils');
11
11
 
12
12
  const { getService } = require('../utils');
@@ -45,7 +45,7 @@ module.exports = ({ strapi }) => ({
45
45
  return action[Symbol.for('__type__')].includes('content-api');
46
46
  };
47
47
 
48
- _.forEach(strapi.api, (api, apiName) => {
48
+ _.forEach(strapi.apis, (api, apiName) => {
49
49
  const controllers = _.reduce(
50
50
  api.controllers,
51
51
  (acc, controller, controllerName) => {
@@ -105,7 +105,7 @@ module.exports = ({ strapi }) => ({
105
105
  async getRoutes() {
106
106
  const routesMap = {};
107
107
 
108
- _.forEach(strapi.api, (api, apiName) => {
108
+ _.forEach(strapi.apis, (api, apiName) => {
109
109
  const routes = _.flatMap(api.routes, (route) => {
110
110
  if (_.has(route, 'routes')) {
111
111
  return route.routes;
@@ -151,12 +151,12 @@ module.exports = ({ strapi }) => ({
151
151
  },
152
152
 
153
153
  async syncPermissions() {
154
- const roles = await strapi.query('plugin::users-permissions.role').findMany();
155
- const dbPermissions = await strapi.query('plugin::users-permissions.permission').findMany();
154
+ const roles = await strapi.db.query('plugin::users-permissions.role').findMany();
155
+ const dbPermissions = await strapi.db.query('plugin::users-permissions.permission').findMany();
156
156
 
157
157
  const permissionsFoundInDB = _.uniq(_.map(dbPermissions, 'action'));
158
158
 
159
- const appActions = _.flatMap(strapi.api, (api, apiName) => {
159
+ const appActions = _.flatMap(strapi.apis, (api, apiName) => {
160
160
  return _.flatMap(api.controllers, (controller, controllerName) => {
161
161
  return _.keys(controller).map((actionName) => {
162
162
  return `api::${apiName}.${controllerName}.${actionName}`;
@@ -178,7 +178,9 @@ module.exports = ({ strapi }) => ({
178
178
 
179
179
  await Promise.all(
180
180
  toDelete.map((action) => {
181
- return strapi.query('plugin::users-permissions.permission').delete({ where: { action } });
181
+ return strapi.db
182
+ .query('plugin::users-permissions.permission')
183
+ .delete({ where: { action } });
182
184
  })
183
185
  );
184
186
 
@@ -192,7 +194,7 @@ module.exports = ({ strapi }) => ({
192
194
 
193
195
  await Promise.all(
194
196
  toCreate.map((action) => {
195
- return strapi.query('plugin::users-permissions.permission').create({
197
+ return strapi.db.query('plugin::users-permissions.permission').create({
196
198
  data: {
197
199
  action,
198
200
  role: role.id,
@@ -205,10 +207,10 @@ module.exports = ({ strapi }) => ({
205
207
  },
206
208
 
207
209
  async initialize() {
208
- const roleCount = await strapi.query('plugin::users-permissions.role').count();
210
+ const roleCount = await strapi.db.query('plugin::users-permissions.role').count();
209
211
 
210
212
  if (roleCount === 0) {
211
- await strapi.query('plugin::users-permissions.role').create({
213
+ await strapi.db.query('plugin::users-permissions.role').create({
212
214
  data: {
213
215
  name: 'Authenticated',
214
216
  description: 'Default role given to authenticated user.',
@@ -216,7 +218,7 @@ module.exports = ({ strapi }) => ({
216
218
  },
217
219
  });
218
220
 
219
- await strapi.query('plugin::users-permissions.role').create({
221
+ await strapi.db.query('plugin::users-permissions.role').create({
220
222
  data: {
221
223
  name: 'Public',
222
224
  description: 'Default role given to unauthenticated user.',
@@ -229,13 +231,13 @@ module.exports = ({ strapi }) => ({
229
231
  },
230
232
 
231
233
  async updateUserRole(user, role) {
232
- return strapi
234
+ return strapi.db
233
235
  .query('plugin::users-permissions.user')
234
236
  .update({ where: { id: user.id }, data: { role } });
235
237
  },
236
238
 
237
239
  template(layout, data) {
238
- const allowedTemplateVariables = keysDeep(data);
240
+ const allowedTemplateVariables = objects.keysDeep(data);
239
241
 
240
242
  // Create a strict interpolation RegExp based on possible variable names
241
243
  const interpolate = createStrictInterpolationRegExp(allowedTemplateVariables, 'g');
@@ -3,6 +3,7 @@ import * as user from '../services/user';
3
3
  import * as role from '../services/role';
4
4
  import * as jwt from '../services/jwt';
5
5
  import * as providers from '../services/providers';
6
+ import * as providersRegistry from '../services/providers-registry';
6
7
  import * as permission from '../services/permission';
7
8
 
8
9
  type S = {
@@ -11,7 +12,7 @@ type S = {
11
12
  user: typeof user;
12
13
  jwt: typeof jwt;
13
14
  providers: typeof providers;
14
- ['providers-registry']: typeof providers;
15
+ ['providers-registry']: typeof providersRegistry;
15
16
  permission: typeof permission;
16
17
  };
17
18
 
@@ -1,16 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  const { curry } = require('lodash/fp');
4
- const { traverseEntity, pipeAsync } = require('@strapi/utils');
4
+ const { traverseEntity, async } = require('@strapi/utils');
5
5
 
6
6
  const { removeUserRelationFromRoleEntities } = require('./visitors');
7
7
 
8
8
  const sanitizeUserRelationFromRoleEntities = curry((schema, entity) => {
9
- return traverseEntity(removeUserRelationFromRoleEntities, { schema }, entity);
9
+ return traverseEntity(
10
+ removeUserRelationFromRoleEntities,
11
+ { schema, getModel: strapi.getModel.bind(strapi) },
12
+ entity
13
+ );
10
14
  });
11
15
 
12
16
  const defaultSanitizeOutput = curry((schema, entity) => {
13
- return pipeAsync(sanitizeUserRelationFromRoleEntities(schema))(entity);
17
+ return async.pipe(sanitizeUserRelationFromRoleEntities(schema))(entity);
14
18
  });
15
19
 
16
20
  module.exports = {
@@ -2,8 +2,8 @@
2
2
 
3
3
  module.exports = ({ schema, key, attribute }, { remove }) => {
4
4
  if (
5
- attribute.type === 'relation' &&
6
- attribute.target === 'plugin::users-permissions.user' &&
5
+ attribute?.type === 'relation' &&
6
+ attribute?.target === 'plugin::users-permissions.user' &&
7
7
  schema.uid === 'plugin::users-permissions.role'
8
8
  ) {
9
9
  remove(key);
@@ -1,30 +0,0 @@
1
- import { getFetchClient } from '@strapi/helper-plugin';
2
-
3
- export const fetchData = async (toggleNotification, notifyStatus) => {
4
- try {
5
- const { get } = getFetchClient();
6
- const { data } = await get('/users-permissions/roles');
7
- notifyStatus('The roles have loaded successfully');
8
-
9
- return data;
10
- } catch (err) {
11
- toggleNotification({
12
- type: 'warning',
13
- message: { id: 'notification.error' },
14
- });
15
-
16
- throw new Error(err);
17
- }
18
- };
19
-
20
- export const deleteData = async (id, toggleNotification) => {
21
- try {
22
- const { del } = getFetchClient();
23
- await del(`/users-permissions/roles/${id}`);
24
- } catch (error) {
25
- toggleNotification({
26
- type: 'warning',
27
- message: { id: 'notification.error', defaultMessage: 'An error occured' },
28
- });
29
- }
30
- };
@@ -1,44 +0,0 @@
1
- const ar = {
2
- "BoundRoute.title": "Bound route to",
3
- "EditForm.inputSelect.description.role": "سيتم إرفاق المستخدم المصادق الجديد بالدور المحدد.",
4
- "EditForm.inputSelect.label.role": "الدور الافتراضي للمستخدمين المصادقين",
5
- "EditForm.inputToggle.description.email": "عدم السماح للمستخدم بإنشاء حسابات متعددة باستخدام نفس عنوان البريد الإلكتروني مع موفري مصادقة مختلفين.",
6
- "EditForm.inputToggle.description.sign-up": "عند تعطيل (OFF) ، يتم حظر عملية التسجيل. لا أحد يستطيع الاشتراك بعد الآن بغض النظر عن المزود المستخدم.",
7
- "EditForm.inputToggle.label.email": "حساب واحد لكل بريد الاكتروني",
8
- "EditForm.inputToggle.label.sign-up": "تفعيل التسجيل",
9
- "HeaderNav.link.advancedSettings": "إعدادات متقدمة",
10
- "HeaderNav.link.emailTemplates": "قوالب الإيميل",
11
- "HeaderNav.link.providers": "مزودين",
12
- "Plugin.permissions.plugins.description": "حدد جميع الإجراءات المسموح بها للإضافة {name}.",
13
- "Plugins.header.description": "يتم سرد الإجراءات المحددة المرتبطة بالمسار أدناه.",
14
- "Plugins.header.title": "الصلاحيات",
15
- "Policies.header.hint": "حدد إجراءات التطبيق أو إجراءات الإضافة وانقر على رمز الترس لعرض المسار المرتبط",
16
- "Policies.header.title": "إعدادات متقدمة",
17
- "PopUpForm.Email.email_templates.inputDescription": "إذا كنت غير متأكد من كيفية استخدام المتغيرات ، {link}",
18
- "PopUpForm.Email.options.from.email.label": "البريد الإلكتروني للشاحن",
19
- "PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
20
- "PopUpForm.Email.options.from.name.label": "أسم المورد",
21
- "PopUpForm.Email.options.from.name.placeholder": "Kai Doe",
22
- "PopUpForm.Email.options.message.label": "الرسالة",
23
- "PopUpForm.Email.options.object.label": "موضوع",
24
- "PopUpForm.Email.options.response_email.label": "البريد الإلكتروني للاستجابة",
25
- "PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
26
- "PopUpForm.Providers.enabled.description": "في حالة التعطيل ، لن يتمكن المستخدمون من استخدام هذا الموفر.",
27
- "PopUpForm.Providers.enabled.label": "مفعل",
28
- "PopUpForm.Providers.key.label": "معرف العميل",
29
- "PopUpForm.Providers.key.placeholder": "نص",
30
- "PopUpForm.Providers.redirectURL.front-end.label": "عنوان URL لإعادة التوجيه إلى تطبيق الواجهة الأمامية (front-end)",
31
- "PopUpForm.Providers.secret.label": "سر العميل (Client Secret)",
32
- "PopUpForm.Providers.secret.placeholder": "نص",
33
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
34
- "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
35
- "PopUpForm.header.edit.email-templates": "تحرير قوالب البريد الإلكتروني",
36
- "notification.success.submit": "تم تحديث الإعدادات",
37
- "plugin.description.long": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT. يأتي هذا الملحق أيضًا مع إستراتيجية ACL التي تسمح لك بإدارة الأذونات بين مجموعات المستخدمين.",
38
- "plugin.description.short": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT",
39
- "plugin.name": "الأدوار والصلاحية"
40
- };
41
- export {
42
- ar as default
43
- };
44
- //# sourceMappingURL=ar-MvD8Ghac.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ar-MvD8Ghac.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const ar = {
4
- "BoundRoute.title": "Bound route to",
5
- "EditForm.inputSelect.description.role": "سيتم إرفاق المستخدم المصادق الجديد بالدور المحدد.",
6
- "EditForm.inputSelect.label.role": "الدور الافتراضي للمستخدمين المصادقين",
7
- "EditForm.inputToggle.description.email": "عدم السماح للمستخدم بإنشاء حسابات متعددة باستخدام نفس عنوان البريد الإلكتروني مع موفري مصادقة مختلفين.",
8
- "EditForm.inputToggle.description.sign-up": "عند تعطيل (OFF) ، يتم حظر عملية التسجيل. لا أحد يستطيع الاشتراك بعد الآن بغض النظر عن المزود المستخدم.",
9
- "EditForm.inputToggle.label.email": "حساب واحد لكل بريد الاكتروني",
10
- "EditForm.inputToggle.label.sign-up": "تفعيل التسجيل",
11
- "HeaderNav.link.advancedSettings": "إعدادات متقدمة",
12
- "HeaderNav.link.emailTemplates": "قوالب الإيميل",
13
- "HeaderNav.link.providers": "مزودين",
14
- "Plugin.permissions.plugins.description": "حدد جميع الإجراءات المسموح بها للإضافة {name}.",
15
- "Plugins.header.description": "يتم سرد الإجراءات المحددة المرتبطة بالمسار أدناه.",
16
- "Plugins.header.title": "الصلاحيات",
17
- "Policies.header.hint": "حدد إجراءات التطبيق أو إجراءات الإضافة وانقر على رمز الترس لعرض المسار المرتبط",
18
- "Policies.header.title": "إعدادات متقدمة",
19
- "PopUpForm.Email.email_templates.inputDescription": "إذا كنت غير متأكد من كيفية استخدام المتغيرات ، {link}",
20
- "PopUpForm.Email.options.from.email.label": "البريد الإلكتروني للشاحن",
21
- "PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
22
- "PopUpForm.Email.options.from.name.label": "أسم المورد",
23
- "PopUpForm.Email.options.from.name.placeholder": "Kai Doe",
24
- "PopUpForm.Email.options.message.label": "الرسالة",
25
- "PopUpForm.Email.options.object.label": "موضوع",
26
- "PopUpForm.Email.options.response_email.label": "البريد الإلكتروني للاستجابة",
27
- "PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
28
- "PopUpForm.Providers.enabled.description": "في حالة التعطيل ، لن يتمكن المستخدمون من استخدام هذا الموفر.",
29
- "PopUpForm.Providers.enabled.label": "مفعل",
30
- "PopUpForm.Providers.key.label": "معرف العميل",
31
- "PopUpForm.Providers.key.placeholder": "نص",
32
- "PopUpForm.Providers.redirectURL.front-end.label": "عنوان URL لإعادة التوجيه إلى تطبيق الواجهة الأمامية (front-end)",
33
- "PopUpForm.Providers.secret.label": "سر العميل (Client Secret)",
34
- "PopUpForm.Providers.secret.placeholder": "نص",
35
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
36
- "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
37
- "PopUpForm.header.edit.email-templates": "تحرير قوالب البريد الإلكتروني",
38
- "notification.success.submit": "تم تحديث الإعدادات",
39
- "plugin.description.long": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT. يأتي هذا الملحق أيضًا مع إستراتيجية ACL التي تسمح لك بإدارة الأذونات بين مجموعات المستخدمين.",
40
- "plugin.description.short": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT",
41
- "plugin.name": "الأدوار والصلاحية"
42
- };
43
- exports.default = ar;
44
- //# sourceMappingURL=ar-t5qTFaAD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ar-t5qTFaAD.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,50 +0,0 @@
1
- const cs = {
2
- "BoundRoute.title": "Spojit adresu s",
3
- "EditForm.inputSelect.description.role": "Připojí nově autentifikovaného uživatele ke svolené roli.",
4
- "EditForm.inputSelect.label.role": "Výchozí role pro autentifikovaného uživatele",
5
- "EditForm.inputToggle.description.email": "Zabránit uživateli vytvářet různé účty se stejným e-mailem a jinými poskytovateli autentifikace.",
6
- "EditForm.inputToggle.description.email-confirmation": "Pokud je tato funkce povolena (ON), nově registrovaní uživatelé dostanou potvrzující e-mail.",
7
- "EditForm.inputToggle.description.email-confirmation-redirection": "Po potvrzení e-mailu, zvolte kam budete přesměrováni.",
8
- "EditForm.inputToggle.description.email-reset-password": "Adresa stránky obnovení hesla vaší aplikace",
9
- "EditForm.inputToggle.description.sign-up": "Pokud je tato možnost zakázána (OFF), není možno projít registrací. Nikdo se již nemůže připojit, bez ohledu jakého použije poskytovatele.",
10
- "EditForm.inputToggle.label.email": "Jeden účet na e-mail",
11
- "EditForm.inputToggle.label.email-confirmation": "Povolit potvrzení z e-mailu",
12
- "EditForm.inputToggle.label.email-confirmation-redirection": "Adresa pro přesměrování",
13
- "EditForm.inputToggle.label.email-reset-password": "Stránka pro obnovení hesla",
14
- "EditForm.inputToggle.label.sign-up": "Povolit registrace",
15
- "HeaderNav.link.advancedSettings": "Pokročilá nastavení",
16
- "HeaderNav.link.emailTemplates": "E-mailové šablony",
17
- "HeaderNav.link.providers": "Poskytovatelé",
18
- "Plugin.permissions.plugins.description": "Nastavit všechny akce pro zásuvný modul {name}.",
19
- "Plugins.header.description": "Pouze akce spojené s adresou jsou vypsány níže.",
20
- "Plugins.header.title": "Povolení",
21
- "Policies.header.hint": "Vyberte akce aplikace, nebo akce zásuvného modulu a klikněte na ikonku ozubeného kolečka pro zobrazení adresy s nimi spojenou.",
22
- "Policies.header.title": "Pokročilá nastavení",
23
- "PopUpForm.Email.email_templates.inputDescription": "Pokud si nejste jisti jak používat proměnné, {link}",
24
- "PopUpForm.Email.options.from.email.label": "Odesilatelův e-mail",
25
- "PopUpForm.Email.options.from.email.placeholder": "jannovak@gmail.com",
26
- "PopUpForm.Email.options.from.name.label": "Jméno odesilatele",
27
- "PopUpForm.Email.options.from.name.placeholder": "Jan Novák",
28
- "PopUpForm.Email.options.message.label": "Zpráva",
29
- "PopUpForm.Email.options.object.label": "Předmět",
30
- "PopUpForm.Email.options.response_email.label": "Response e-mail",
31
- "PopUpForm.Email.options.response_email.placeholder": "jannovak@gmail.com",
32
- "PopUpForm.Providers.enabled.description": "If disabled, users won't be able to use this provider.",
33
- "PopUpForm.Providers.enabled.label": "Povolit",
34
- "PopUpForm.Providers.key.label": "Client ID",
35
- "PopUpForm.Providers.key.placeholder": "TEXT",
36
- "PopUpForm.Providers.redirectURL.front-end.label": "Adresa pro přesměrování na vaši front-end aplikaci",
37
- "PopUpForm.Providers.secret.label": "Client Secret",
38
- "PopUpForm.Providers.secret.placeholder": "TEXT",
39
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
40
- "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
41
- "PopUpForm.header.edit.email-templates": "Upravit e-mailové šablony",
42
- "notification.success.submit": "Nastavení bylo aktualizování",
43
- "plugin.description.long": "Chraňte své API pomocí kompletního autentifikačního procesu, založeného na JWT. Tento zásuvný modul obsahuje ACL strategii, která vám umožní spravovat oprávnění mezi skupinami uživatelů.",
44
- "plugin.description.short": "Chraňte své API pomocí kompletního autentifikačního procesu, založeného na JWT",
45
- "plugin.name": "Role a oprávnění"
46
- };
47
- export {
48
- cs as default
49
- };
50
- //# sourceMappingURL=cs-BMuXwxA1.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cs-BMuXwxA1.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}