@strapi/admin 4.14.3 → 4.14.4

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 (544) hide show
  1. package/.eslintrc.js +4 -1
  2. package/admin/.eslintrc.js +16 -0
  3. package/admin/custom.d.ts +8 -0
  4. package/admin/src/components/AuthenticatedApp/index.js +3 -7
  5. package/admin/src/components/AuthenticatedApp/utils/api.js +1 -39
  6. package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.ts +13 -0
  7. package/admin/src/{hooks/useReleaseNotification/utils/api.js → components/AuthenticatedApp/utils/fetchStrapiLatestRelease.ts} +2 -3
  8. package/admin/src/components/{DragLayer/DragLayer.js → DragLayer.tsx} +18 -10
  9. package/admin/src/components/PrivateRoute.tsx +42 -0
  10. package/admin/src/components/Providers/index.js +2 -2
  11. package/admin/src/components/Theme.tsx +39 -0
  12. package/admin/src/components/ThemeToggleProvider.tsx +50 -0
  13. package/admin/src/components/{UnauthenticatedLogo/index.js → UnauthenticatedLogo.tsx} +2 -4
  14. package/admin/src/content-manager/components/BlocksEditor/BlocksInput/index.js +22 -3
  15. package/admin/src/content-manager/components/BlocksEditor/Toolbar/index.js +263 -134
  16. package/admin/src/content-manager/components/BlocksEditor/hooks/useBlocksStore.js +362 -95
  17. package/admin/src/content-manager/components/BlocksEditor/hooks/useModifiersStore.js +15 -0
  18. package/admin/src/content-manager/components/BlocksEditor/index.js +99 -9
  19. package/admin/src/content-manager/components/BlocksEditor/plugins/index.js +4 -0
  20. package/admin/src/content-manager/components/BlocksEditor/plugins/withLinks.js +61 -0
  21. package/admin/src/content-manager/components/BlocksEditor/plugins/withStrapiSchema.js +33 -0
  22. package/admin/src/content-manager/components/BlocksEditor/utils/links.js +90 -0
  23. package/admin/src/content-manager/components/InputUID/index.js +1 -1
  24. package/admin/src/content-manager/hooks/useAllowedAttributes.js +9 -1
  25. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -0
  26. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +1 -0
  27. package/admin/src/content-manager/pages/ListSettingsView/constants.js +1 -0
  28. package/admin/src/content-manager/pages/ListView/index.js +2 -1
  29. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  30. package/admin/src/content-manager/utils/schema.js +2 -2
  31. package/admin/src/contexts/configuration.ts +15 -0
  32. package/admin/src/contexts/index.js +1 -2
  33. package/admin/src/contexts/themeToggle.ts +16 -0
  34. package/admin/src/hooks/{useConfigurations/__mocks__/index.js → __mocks__/useConfigurations.ts} +4 -2
  35. package/admin/src/hooks/index.js +1 -5
  36. package/admin/src/hooks/useConfigurations.ts +5 -0
  37. package/admin/src/hooks/useDebounce.ts +17 -0
  38. package/admin/src/hooks/useLicenseLimitNotification.ts +3 -0
  39. package/admin/src/hooks/useThemeToggle.ts +9 -0
  40. package/admin/src/pages/App/index.js +1 -1
  41. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
  42. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -1
  43. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -1
  44. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -1
  45. package/admin/src/pages/AuthPage/components/Register/index.js +1 -1
  46. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +1 -1
  47. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +0 -2
  48. package/admin/src/pages/MarketplacePage/hooks/__mocks__/useNavigatorOnline.ts +1 -0
  49. package/admin/src/{hooks/useNavigatorOnLine/index.js → pages/MarketplacePage/hooks/useNavigatorOnline.ts} +4 -6
  50. package/admin/src/pages/MarketplacePage/index.js +3 -3
  51. package/admin/src/pages/ProfilePage/index.js +1 -1
  52. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +1 -1
  53. package/admin/src/{hooks/useRegenerate/index.js → pages/SettingsPage/hooks/useRegenerate.ts} +13 -7
  54. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +1 -1
  55. package/admin/src/pages/UseCasePage/index.js +1 -1
  56. package/admin/src/translations/en.json +8 -0
  57. package/admin/tsconfig.json +5 -0
  58. package/build/1049.f7aed23d.chunk.js +1 -0
  59. package/build/{1227.969e24e6.chunk.js → 1227.f9c74718.chunk.js} +1 -1
  60. package/build/{1386.db9a2795.chunk.js → 1386.6b8819c6.chunk.js} +2 -2
  61. package/build/2224.8af54440.chunk.js +138 -0
  62. package/build/2225.d1bcf7e3.chunk.js +79 -0
  63. package/build/2379.f0baf826.chunk.js +1 -0
  64. package/build/{2395.f6ac2863.chunk.js → 2395.aca6ce66.chunk.js} +1 -1
  65. package/build/2421.a478ba24.chunk.js +105 -0
  66. package/build/2801.c49f88a1.chunk.js +1 -0
  67. package/build/{3483.f6b2439f.chunk.js → 3483.5df8e010.chunk.js} +1 -1
  68. package/build/3911.d4fada48.chunk.js +95 -0
  69. package/build/412.72afdf0c.chunk.js +689 -0
  70. package/build/{4174.3e13fb26.chunk.js → 4174.df9aa09a.chunk.js} +1 -1
  71. package/build/502.8666bbef.chunk.js +25 -0
  72. package/build/570.2f3b4c56.chunk.js +1 -0
  73. package/build/5702.5b433d50.chunk.js +1 -0
  74. package/build/6186.c33ce082.chunk.js +116 -0
  75. package/build/7464.43a4527c.chunk.js +1 -0
  76. package/build/7818.d2196a53.chunk.js +29 -0
  77. package/build/7897.5c03247b.chunk.js +25 -0
  78. package/build/{8276.951e198e.chunk.js → 8276.d4426fd8.chunk.js} +3 -3
  79. package/build/8690.33243bba.chunk.js +38 -0
  80. package/build/{9832.65ed5a44.chunk.js → 8743.31c921b1.chunk.js} +139 -123
  81. package/build/9218.8bc01ab9.chunk.js +1 -0
  82. package/build/Admin-authenticatedApp.27545a1b.chunk.js +112 -0
  83. package/build/{Admin_InternalErrorPage.b3163562.chunk.js → Admin_InternalErrorPage.b66ee9c1.chunk.js} +1 -1
  84. package/build/Admin_homePage.a6281dd6.chunk.js +124 -0
  85. package/build/Admin_marketplace.31b962b8.chunk.js +44 -0
  86. package/build/{Admin_pluginsPage.b9fa2947.chunk.js → Admin_pluginsPage.9217101d.chunk.js} +1 -1
  87. package/build/{Admin_profilePage.a4d41380.chunk.js → Admin_profilePage.680123d9.chunk.js} +2 -2
  88. package/build/{Admin_settingsPage.6dc2af9f.chunk.js → Admin_settingsPage.33378310.chunk.js} +1 -1
  89. package/build/{Upload_ConfigureTheView.cc7ca628.chunk.js → Upload_ConfigureTheView.b40eea4d.chunk.js} +1 -1
  90. package/build/admin-app.e8c52c37.chunk.js +36 -0
  91. package/build/admin-edit-roles-page.fcf056bf.chunk.js +275 -0
  92. package/build/{admin-edit-users.9b42cc9e.chunk.js → admin-edit-users.89efe3c4.chunk.js} +2 -2
  93. package/build/{admin-roles-list.cf964578.chunk.js → admin-roles-list.8b77704a.chunk.js} +3 -3
  94. package/build/admin-users.e3f1be14.chunk.js +19 -0
  95. package/build/{api-tokens-create-page.2f25ddf6.chunk.js → api-tokens-create-page.0dd63e91.chunk.js} +1 -1
  96. package/build/{api-tokens-edit-page.45faac16.chunk.js → api-tokens-edit-page.78d877f8.chunk.js} +1 -1
  97. package/build/{api-tokens-list-page.5baabf1a.chunk.js → api-tokens-list-page.ae13346c.chunk.js} +2 -2
  98. package/build/audit-logs-settings-page.e9c92a75.chunk.js +9 -0
  99. package/build/content-manager.5849dbe3.chunk.js +1226 -0
  100. package/build/{content-type-builder-list-view.aa8a5d1a.chunk.js → content-type-builder-list-view.3fffae65.chunk.js} +1 -1
  101. package/build/{content-type-builder-translation-en-json.b9e5cacd.chunk.js → content-type-builder-translation-en-json.43f9d7bc.chunk.js} +1 -1
  102. package/build/{content-type-builder.885f2cad.chunk.js → content-type-builder.98c71164.chunk.js} +14 -14
  103. package/build/{email-settings-page.6bd7b280.chunk.js → email-settings-page.ecfec9b3.chunk.js} +1 -1
  104. package/build/{en-json.a3973ff5.chunk.js → en-json.bd611a8e.chunk.js} +1 -1
  105. package/build/{i18n-settings-page.6c0157e7.chunk.js → i18n-settings-page.a9708926.chunk.js} +1 -1
  106. package/build/index.html +1 -1
  107. package/build/main.3abb6f34.js +3278 -0
  108. package/build/{review-workflows-settings-create-view.ae369a88.chunk.js → review-workflows-settings-create-view.b7b0c6c5.chunk.js} +1 -1
  109. package/build/{review-workflows-settings-edit-view.9a61c69f.chunk.js → review-workflows-settings-edit-view.c331b3fe.chunk.js} +1 -1
  110. package/build/review-workflows-settings-list-view.70218dc1.chunk.js +75 -0
  111. package/build/{runtime~main.377a22d0.js → runtime~main.450561b1.js} +1 -1
  112. package/build/{sso-settings-page.a29e6c38.chunk.js → sso-settings-page.1a9e7f8f.chunk.js} +1 -1
  113. package/build/{transfer-tokens-create-page.6e1b8cee.chunk.js → transfer-tokens-create-page.e7f541d3.chunk.js} +1 -1
  114. package/build/{transfer-tokens-edit-page.10bb22e2.chunk.js → transfer-tokens-edit-page.bd1276c2.chunk.js} +1 -1
  115. package/build/{transfer-tokens-list-page.0306652c.chunk.js → transfer-tokens-list-page.5de6bb9f.chunk.js} +2 -2
  116. package/build/upload-settings.97ef4c92.chunk.js +14 -0
  117. package/build/{upload.19e14c8e.chunk.js → upload.f08715a1.chunk.js} +1 -1
  118. package/build/{users-advanced-settings-page.ed69812f.chunk.js → users-advanced-settings-page.36a3c363.chunk.js} +1 -1
  119. package/build/users-email-settings-page.47b47962.chunk.js +149 -0
  120. package/build/users-providers-settings-page.1e0c8376.chunk.js +154 -0
  121. package/build/{users-roles-settings-page.afab5a0d.chunk.js → users-roles-settings-page.d5a8e8a1.chunk.js} +4 -4
  122. package/build/{webhook-edit-page.4c037da4.chunk.js → webhook-edit-page.87456194.chunk.js} +3 -3
  123. package/build/{webhook-list-page.56c82f4a.chunk.js → webhook-list-page.c88a382b.chunk.js} +3 -3
  124. package/ee/admin/hooks/{useLicenseLimitNotification.js → useLicenseLimitNotification.ts} +4 -4
  125. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  126. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/index.js +1 -3
  127. package/package.json +12 -11
  128. package/scripts/build.js +6 -2
  129. package/webpack.config.js +1 -0
  130. package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.js +0 -11
  131. package/admin/src/components/DragLayer/index.js +0 -1
  132. package/admin/src/components/GlobalStyle/index.js +0 -9
  133. package/admin/src/components/PrivateRoute/index.js +0 -46
  134. package/admin/src/components/Theme/index.js +0 -26
  135. package/admin/src/components/ThemeToggleProvider/index.js +0 -79
  136. package/admin/src/contexts/Configurations/index.js +0 -5
  137. package/admin/src/contexts/ThemeToggle/index.js +0 -5
  138. package/admin/src/hooks/useConfigurations/index.js +0 -11
  139. package/admin/src/hooks/useDebounce/index.js +0 -19
  140. package/admin/src/hooks/useLicenseLimitNotification/index.js +0 -5
  141. package/admin/src/hooks/useReleaseNotification/index.js +0 -31
  142. package/admin/src/hooks/useReleaseNotification/utils/checkLatestStrapiVersion.js +0 -11
  143. package/admin/src/hooks/useThemeToggle/index.js +0 -11
  144. package/admin/src/tsconfig.json +0 -10
  145. package/build/1049.acb0e730.chunk.js +0 -1
  146. package/build/2225.78fb9b89.chunk.js +0 -79
  147. package/build/2379.906334f0.chunk.js +0 -1
  148. package/build/2614.3e088d3e.chunk.js +0 -35
  149. package/build/2659.cb94f1e7.chunk.js +0 -105
  150. package/build/2801.2afb4757.chunk.js +0 -1
  151. package/build/2950.216f2e89.chunk.js +0 -1
  152. package/build/3021.33ad47fb.chunk.js +0 -103
  153. package/build/3911.488fbde3.chunk.js +0 -95
  154. package/build/4546.1203ac95.chunk.js +0 -1
  155. package/build/502.9918bff7.chunk.js +0 -1
  156. package/build/5158.c85f841a.chunk.js +0 -1
  157. package/build/6266.e8990811.chunk.js +0 -146
  158. package/build/7464.0280cf59.chunk.js +0 -1
  159. package/build/7897.4a39de37.chunk.js +0 -6
  160. package/build/Admin-authenticatedApp.a16cdc37.chunk.js +0 -112
  161. package/build/Admin_homePage.6cb51f18.chunk.js +0 -81
  162. package/build/Admin_marketplace.3eb5e132.chunk.js +0 -55
  163. package/build/admin-app.98cdf43a.chunk.js +0 -36
  164. package/build/admin-edit-roles-page.418bb1c5.chunk.js +0 -267
  165. package/build/admin-users.8385dd73.chunk.js +0 -11
  166. package/build/audit-logs-settings-page.91489670.chunk.js +0 -1
  167. package/build/content-manager.e1e49cc9.chunk.js +0 -1199
  168. package/build/main.105dcf23.js +0 -2665
  169. package/build/review-workflows-settings-list-view.067e0c35.chunk.js +0 -56
  170. package/build/upload-settings.0af6edc5.chunk.js +0 -14
  171. package/build/users-email-settings-page.131a00fb.chunk.js +0 -9
  172. package/build/users-providers-settings-page.b3dca41d.chunk.js +0 -14
  173. package/dist/server/admin/server/src/bootstrap.d.ts +0 -2
  174. package/dist/server/admin/server/src/controllers/admin.d.ts +0 -42
  175. package/dist/server/admin/server/src/controllers/api-token.d.ts +0 -10
  176. package/dist/server/admin/server/src/controllers/authenticated-user.d.ts +0 -6
  177. package/dist/server/admin/server/src/controllers/authentication.d.ts +0 -12
  178. package/dist/server/admin/server/src/controllers/permission.d.ts +0 -13
  179. package/dist/server/admin/server/src/controllers/role.d.ts +0 -43
  180. package/dist/server/admin/server/src/controllers/transfer/token.d.ts +0 -9
  181. package/dist/server/admin/server/src/controllers/user.d.ts +0 -13
  182. package/dist/server/admin/server/src/destroy.d.ts +0 -2
  183. package/dist/server/admin/server/src/domain/condition/index.d.ts +0 -56
  184. package/dist/server/admin/server/src/domain/condition/index.js +0 -53
  185. package/dist/server/admin/server/src/domain/condition/index.js.map +0 -1
  186. package/dist/server/admin/server/src/domain/condition/provider.d.ts +0 -30
  187. package/dist/server/admin/server/src/domain/condition/provider.js +0 -37
  188. package/dist/server/admin/server/src/domain/condition/provider.js.map +0 -1
  189. package/dist/server/admin/server/src/index.d.ts +0 -10
  190. package/dist/server/admin/server/src/middlewares/data-transfer.d.ts +0 -2
  191. package/dist/server/admin/server/src/services/action.d.ts +0 -9
  192. package/dist/server/admin/server/src/services/auth.d.ts +0 -42
  193. package/dist/server/admin/server/src/services/condition.d.ts +0 -2
  194. package/dist/server/admin/server/src/services/content-type.d.ts +0 -51
  195. package/dist/server/admin/server/src/services/index.d.ts +0 -61
  196. package/dist/server/admin/server/src/services/metrics.d.ts +0 -7
  197. package/dist/server/admin/server/src/services/permission/engine.d.ts +0 -15
  198. package/dist/server/admin/server/src/services/permission/queries.d.ts +0 -44
  199. package/dist/server/admin/server/src/services/permission.d.ts +0 -67
  200. package/dist/server/admin/server/src/services/role.d.ts +0 -116
  201. package/dist/server/admin/server/src/services/transfer/token.d.ts +0 -103
  202. package/dist/server/admin/server/src/services/transfer/utils.d.ts +0 -19
  203. package/dist/server/admin/server/src/services/user.d.ts +0 -96
  204. package/dist/server/admin/server/src/strategies/admin.d.ts +0 -25
  205. package/dist/server/admin/server/src/strategies/api-token.d.ts +0 -60
  206. package/dist/server/admin/server/src/strategies/data-transfer.d.ts +0 -50
  207. package/dist/server/admin/server/src/validation/common-validators.d.ts +0 -59
  208. package/dist/server/admin/server/src/validation/permission.d.ts +0 -9
  209. package/dist/server/bootstrap.d.ts +0 -2
  210. package/dist/server/bootstrap.js +0 -84
  211. package/dist/server/bootstrap.js.map +0 -1
  212. package/dist/server/config/admin-actions.d.ts +0 -33
  213. package/dist/server/config/admin-actions.js +0 -219
  214. package/dist/server/config/admin-actions.js.map +0 -1
  215. package/dist/server/config/admin-conditions.d.ts +0 -46
  216. package/dist/server/config/admin-conditions.js +0 -29
  217. package/dist/server/config/admin-conditions.js.map +0 -1
  218. package/dist/server/config/email-templates/forgot-password.d.ts +0 -6
  219. package/dist/server/config/email-templates/forgot-password.js +0 -19
  220. package/dist/server/config/email-templates/forgot-password.js.map +0 -1
  221. package/dist/server/config/index.d.ts +0 -17
  222. package/dist/server/config/index.js +0 -14
  223. package/dist/server/config/index.js.map +0 -1
  224. package/dist/server/config/settings.d.ts +0 -7
  225. package/dist/server/config/settings.js +0 -11
  226. package/dist/server/config/settings.js.map +0 -1
  227. package/dist/server/content-types/Permission.d.ts +0 -62
  228. package/dist/server/content-types/Permission.js +0 -64
  229. package/dist/server/content-types/Permission.js.map +0 -1
  230. package/dist/server/content-types/Role.d.ts +0 -57
  231. package/dist/server/content-types/Role.js +0 -59
  232. package/dist/server/content-types/Role.js.map +0 -1
  233. package/dist/server/content-types/User.d.ts +0 -106
  234. package/dist/server/content-types/User.js +0 -109
  235. package/dist/server/content-types/User.js.map +0 -1
  236. package/dist/server/content-types/api-token-permission.d.ts +0 -35
  237. package/dist/server/content-types/api-token-permission.js +0 -37
  238. package/dist/server/content-types/api-token-permission.js.map +0 -1
  239. package/dist/server/content-types/api-token.d.ts +0 -73
  240. package/dist/server/content-types/api-token.js +0 -79
  241. package/dist/server/content-types/api-token.js.map +0 -1
  242. package/dist/server/content-types/index.d.ts +0 -437
  243. package/dist/server/content-types/index.js +0 -22
  244. package/dist/server/content-types/index.js.map +0 -1
  245. package/dist/server/content-types/transfer-token-permission.d.ts +0 -35
  246. package/dist/server/content-types/transfer-token-permission.js +0 -37
  247. package/dist/server/content-types/transfer-token-permission.js.map +0 -1
  248. package/dist/server/content-types/transfer-token.d.ts +0 -65
  249. package/dist/server/content-types/transfer-token.js +0 -67
  250. package/dist/server/content-types/transfer-token.js.map +0 -1
  251. package/dist/server/controllers/admin.d.ts +0 -42
  252. package/dist/server/controllers/admin.js +0 -131
  253. package/dist/server/controllers/admin.js.map +0 -1
  254. package/dist/server/controllers/api-token.d.ts +0 -10
  255. package/dist/server/controllers/api-token.js +0 -106
  256. package/dist/server/controllers/api-token.js.map +0 -1
  257. package/dist/server/controllers/authenticated-user.d.ts +0 -6
  258. package/dist/server/controllers/authenticated-user.js +0 -41
  259. package/dist/server/controllers/authenticated-user.js.map +0 -1
  260. package/dist/server/controllers/authentication.d.ts +0 -12
  261. package/dist/server/controllers/authentication.js +0 -130
  262. package/dist/server/controllers/authentication.js.map +0 -1
  263. package/dist/server/controllers/content-api.d.ts +0 -5
  264. package/dist/server/controllers/content-api.js +0 -13
  265. package/dist/server/controllers/content-api.js.map +0 -1
  266. package/dist/server/controllers/formatters/conditions.d.ts +0 -3
  267. package/dist/server/controllers/formatters/conditions.js +0 -9
  268. package/dist/server/controllers/formatters/conditions.js.map +0 -1
  269. package/dist/server/controllers/formatters/format-actions-by-sections.d.ts +0 -7
  270. package/dist/server/controllers/formatters/format-actions-by-sections.js +0 -36
  271. package/dist/server/controllers/formatters/format-actions-by-sections.js.map +0 -1
  272. package/dist/server/controllers/formatters/index.d.ts +0 -2
  273. package/dist/server/controllers/formatters/index.js +0 -11
  274. package/dist/server/controllers/formatters/index.js.map +0 -1
  275. package/dist/server/controllers/index.d.ts +0 -68
  276. package/dist/server/controllers/index.js +0 -51
  277. package/dist/server/controllers/index.js.map +0 -1
  278. package/dist/server/controllers/permission.d.ts +0 -13
  279. package/dist/server/controllers/permission.js +0 -38
  280. package/dist/server/controllers/permission.js.map +0 -1
  281. package/dist/server/controllers/role.d.ts +0 -43
  282. package/dist/server/controllers/role.js +0 -148
  283. package/dist/server/controllers/role.js.map +0 -1
  284. package/dist/server/controllers/transfer/index.d.ts +0 -4
  285. package/dist/server/controllers/transfer/index.js +0 -14
  286. package/dist/server/controllers/transfer/index.js.map +0 -1
  287. package/dist/server/controllers/transfer/runner.d.ts +0 -6
  288. package/dist/server/controllers/transfer/runner.js +0 -25
  289. package/dist/server/controllers/transfer/runner.js.map +0 -1
  290. package/dist/server/controllers/transfer/token.d.ts +0 -9
  291. package/dist/server/controllers/transfer/token.js +0 -100
  292. package/dist/server/controllers/transfer/token.js.map +0 -1
  293. package/dist/server/controllers/user.d.ts +0 -13
  294. package/dist/server/controllers/user.js +0 -105
  295. package/dist/server/controllers/user.js.map +0 -1
  296. package/dist/server/controllers/webhooks.d.ts +0 -10
  297. package/dist/server/controllers/webhooks.js +0 -100
  298. package/dist/server/controllers/webhooks.js.map +0 -1
  299. package/dist/server/destroy.d.ts +0 -2
  300. package/dist/server/destroy.js +0 -9
  301. package/dist/server/destroy.js.map +0 -1
  302. package/dist/server/domain/action/index.d.ts +0 -33
  303. package/dist/server/domain/action/index.js +0 -98
  304. package/dist/server/domain/action/index.js.map +0 -1
  305. package/dist/server/domain/action/provider.d.ts +0 -38
  306. package/dist/server/domain/action/provider.js +0 -66
  307. package/dist/server/domain/action/provider.js.map +0 -1
  308. package/dist/server/domain/condition/index.d.ts +0 -53
  309. package/dist/server/domain/condition/index.js +0 -56
  310. package/dist/server/domain/condition/index.js.map +0 -1
  311. package/dist/server/domain/condition/provider.d.ts +0 -30
  312. package/dist/server/domain/condition/provider.js +0 -37
  313. package/dist/server/domain/condition/provider.js.map +0 -1
  314. package/dist/server/domain/permission/index.d.ts +0 -77
  315. package/dist/server/domain/permission/index.js +0 -119
  316. package/dist/server/domain/permission/index.js.map +0 -1
  317. package/dist/server/domain/user.d.ts +0 -32
  318. package/dist/server/domain/user.js +0 -28
  319. package/dist/server/domain/user.js.map +0 -1
  320. package/dist/server/index.d.ts +0 -10
  321. package/dist/server/index.js +0 -27
  322. package/dist/server/index.js.map +0 -1
  323. package/dist/server/middlewares/data-transfer.d.ts +0 -2
  324. package/dist/server/middlewares/data-transfer.js +0 -21
  325. package/dist/server/middlewares/data-transfer.js.map +0 -1
  326. package/dist/server/middlewares/index.d.ts +0 -9
  327. package/dist/server/middlewares/index.js +0 -17
  328. package/dist/server/middlewares/index.js.map +0 -1
  329. package/dist/server/middlewares/rateLimit.d.ts +0 -5
  330. package/dist/server/middlewares/rateLimit.js +0 -42
  331. package/dist/server/middlewares/rateLimit.js.map +0 -1
  332. package/dist/server/policies/hasPermissions.d.ts +0 -6
  333. package/dist/server/policies/hasPermissions.js +0 -38
  334. package/dist/server/policies/hasPermissions.js.map +0 -1
  335. package/dist/server/policies/index.d.ts +0 -14
  336. package/dist/server/policies/index.js +0 -10
  337. package/dist/server/policies/index.js.map +0 -1
  338. package/dist/server/policies/isAuthenticatedAdmin.d.ts +0 -2
  339. package/dist/server/policies/isAuthenticatedAdmin.js +0 -6
  340. package/dist/server/policies/isAuthenticatedAdmin.js.map +0 -1
  341. package/dist/server/policies/isTelemetryEnabled.d.ts +0 -10
  342. package/dist/server/policies/isTelemetryEnabled.js +0 -18
  343. package/dist/server/policies/isTelemetryEnabled.js.map +0 -1
  344. package/dist/server/register.d.ts +0 -2
  345. package/dist/server/register.js +0 -18
  346. package/dist/server/register.js.map +0 -1
  347. package/dist/server/routes/admin.d.ts +0 -23
  348. package/dist/server/routes/admin.js +0 -72
  349. package/dist/server/routes/admin.js.map +0 -1
  350. package/dist/server/routes/api-tokens.d.ts +0 -14
  351. package/dist/server/routes/api-tokens.js +0 -71
  352. package/dist/server/routes/api-tokens.js.map +0 -1
  353. package/dist/server/routes/authentication.d.ts +0 -29
  354. package/dist/server/routes/authentication.js +0 -58
  355. package/dist/server/routes/authentication.js.map +0 -1
  356. package/dist/server/routes/content-api.d.ts +0 -9
  357. package/dist/server/routes/content-api.js +0 -21
  358. package/dist/server/routes/content-api.js.map +0 -1
  359. package/dist/server/routes/index.d.ts +0 -66
  360. package/dist/server/routes/index.js +0 -32
  361. package/dist/server/routes/index.js.map +0 -1
  362. package/dist/server/routes/permissions.d.ts +0 -9
  363. package/dist/server/routes/permissions.js +0 -21
  364. package/dist/server/routes/permissions.js.map +0 -1
  365. package/dist/server/routes/roles.d.ts +0 -14
  366. package/dist/server/routes/roles.js +0 -108
  367. package/dist/server/routes/roles.js.map +0 -1
  368. package/dist/server/routes/serve-admin-panel.d.ts +0 -5
  369. package/dist/server/routes/serve-admin-panel.js +0 -65
  370. package/dist/server/routes/serve-admin-panel.js.map +0 -1
  371. package/dist/server/routes/transfer.d.ts +0 -55
  372. package/dist/server/routes/transfer.js +0 -105
  373. package/dist/server/routes/transfer.js.map +0 -1
  374. package/dist/server/routes/users.d.ts +0 -14
  375. package/dist/server/routes/users.js +0 -89
  376. package/dist/server/routes/users.js.map +0 -1
  377. package/dist/server/routes/webhooks.d.ts +0 -14
  378. package/dist/server/routes/webhooks.js +0 -82
  379. package/dist/server/routes/webhooks.js.map +0 -1
  380. package/dist/server/services/action.d.ts +0 -9
  381. package/dist/server/services/action.js +0 -29
  382. package/dist/server/services/action.js.map +0 -1
  383. package/dist/server/services/api-token.d.ts +0 -102
  384. package/dist/server/services/api-token.js +0 -378
  385. package/dist/server/services/api-token.js.map +0 -1
  386. package/dist/server/services/auth.d.ts +0 -42
  387. package/dist/server/services/auth.js +0 -98
  388. package/dist/server/services/auth.js.map +0 -1
  389. package/dist/server/services/condition.d.ts +0 -2
  390. package/dist/server/services/condition.js +0 -11
  391. package/dist/server/services/condition.js.map +0 -1
  392. package/dist/server/services/constants.d.ts +0 -33
  393. package/dist/server/services/constants.js +0 -37
  394. package/dist/server/services/constants.js.map +0 -1
  395. package/dist/server/services/content-type.d.ts +0 -51
  396. package/dist/server/services/content-type.js +0 -158
  397. package/dist/server/services/content-type.js.map +0 -1
  398. package/dist/server/services/index.d.ts +0 -61
  399. package/dist/server/services/index.js +0 -57
  400. package/dist/server/services/index.js.map +0 -1
  401. package/dist/server/services/metrics.d.ts +0 -7
  402. package/dist/server/services/metrics.js +0 -37
  403. package/dist/server/services/metrics.js.map +0 -1
  404. package/dist/server/services/passport/local-strategy.d.ts +0 -3
  405. package/dist/server/services/passport/local-strategy.js +0 -28
  406. package/dist/server/services/passport/local-strategy.js.map +0 -1
  407. package/dist/server/services/passport.d.ts +0 -7
  408. package/dist/server/services/passport.js +0 -40
  409. package/dist/server/services/passport.js.map +0 -1
  410. package/dist/server/services/permission/engine.d.ts +0 -15
  411. package/dist/server/services/permission/engine.js +0 -67
  412. package/dist/server/services/permission/engine.js.map +0 -1
  413. package/dist/server/services/permission/permissions-manager/index.d.ts +0 -16
  414. package/dist/server/services/permission/permissions-manager/index.js +0 -48
  415. package/dist/server/services/permission/permissions-manager/index.js.map +0 -1
  416. package/dist/server/services/permission/permissions-manager/query-builders.d.ts +0 -3
  417. package/dist/server/services/permission/permissions-manager/query-builders.js +0 -66
  418. package/dist/server/services/permission/permissions-manager/query-builders.js.map +0 -1
  419. package/dist/server/services/permission/permissions-manager/sanitize.d.ts +0 -6
  420. package/dist/server/services/permission/permissions-manager/sanitize.js +0 -184
  421. package/dist/server/services/permission/permissions-manager/sanitize.js.map +0 -1
  422. package/dist/server/services/permission/permissions-manager/validate.d.ts +0 -5
  423. package/dist/server/services/permission/permissions-manager/validate.js +0 -134
  424. package/dist/server/services/permission/permissions-manager/validate.js.map +0 -1
  425. package/dist/server/services/permission/queries.d.ts +0 -44
  426. package/dist/server/services/permission/queries.js +0 -159
  427. package/dist/server/services/permission/queries.js.map +0 -1
  428. package/dist/server/services/permission/sections-builder/builder.d.ts +0 -39
  429. package/dist/server/services/permission/sections-builder/builder.js +0 -75
  430. package/dist/server/services/permission/sections-builder/builder.js.map +0 -1
  431. package/dist/server/services/permission/sections-builder/handlers.d.ts +0 -44
  432. package/dist/server/services/permission/sections-builder/handlers.js +0 -124
  433. package/dist/server/services/permission/sections-builder/handlers.js.map +0 -1
  434. package/dist/server/services/permission/sections-builder/index.d.ts +0 -8
  435. package/dist/server/services/permission/sections-builder/index.js +0 -39
  436. package/dist/server/services/permission/sections-builder/index.js.map +0 -1
  437. package/dist/server/services/permission/sections-builder/section.d.ts +0 -38
  438. package/dist/server/services/permission/sections-builder/section.js +0 -56
  439. package/dist/server/services/permission/sections-builder/section.js.map +0 -1
  440. package/dist/server/services/permission/sections-builder/utils.d.ts +0 -12
  441. package/dist/server/services/permission/sections-builder/utils.js +0 -23
  442. package/dist/server/services/permission/sections-builder/utils.js.map +0 -1
  443. package/dist/server/services/permission.d.ts +0 -67
  444. package/dist/server/services/permission.js +0 -33
  445. package/dist/server/services/permission.js.map +0 -1
  446. package/dist/server/services/project-settings.d.ts +0 -5
  447. package/dist/server/services/project-settings.js +0 -139
  448. package/dist/server/services/project-settings.js.map +0 -1
  449. package/dist/server/services/role.d.ts +0 -116
  450. package/dist/server/services/role.js +0 -382
  451. package/dist/server/services/role.js.map +0 -1
  452. package/dist/server/services/token.d.ts +0 -35
  453. package/dist/server/services/token.js +0 -58
  454. package/dist/server/services/token.js.map +0 -1
  455. package/dist/server/services/transfer/index.d.ts +0 -4
  456. package/dist/server/services/transfer/index.js +0 -33
  457. package/dist/server/services/transfer/index.js.map +0 -1
  458. package/dist/server/services/transfer/permission.d.ts +0 -6
  459. package/dist/server/services/transfer/permission.js +0 -20
  460. package/dist/server/services/transfer/permission.js.map +0 -1
  461. package/dist/server/services/transfer/token.d.ts +0 -84
  462. package/dist/server/services/transfer/token.js +0 -273
  463. package/dist/server/services/transfer/token.js.map +0 -1
  464. package/dist/server/services/transfer/utils.d.ts +0 -13
  465. package/dist/server/services/transfer/utils.js +0 -29
  466. package/dist/server/services/transfer/utils.js.map +0 -1
  467. package/dist/server/services/user.d.ts +0 -96
  468. package/dist/server/services/user.js +0 -311
  469. package/dist/server/services/user.js.map +0 -1
  470. package/dist/server/strategies/admin.d.ts +0 -25
  471. package/dist/server/strategies/admin.js +0 -44
  472. package/dist/server/strategies/admin.js.map +0 -1
  473. package/dist/server/strategies/api-token.d.ts +0 -60
  474. package/dist/server/strategies/api-token.js +0 -121
  475. package/dist/server/strategies/api-token.js.map +0 -1
  476. package/dist/server/strategies/data-transfer.d.ts +0 -66
  477. package/dist/server/strategies/data-transfer.js +0 -94
  478. package/dist/server/strategies/data-transfer.js.map +0 -1
  479. package/dist/server/strategies/index.d.ts +0 -17
  480. package/dist/server/strategies/index.js +0 -27
  481. package/dist/server/strategies/index.js.map +0 -1
  482. package/dist/server/types/src/types/utils/object.d.ts +0 -58
  483. package/dist/server/types/src/types/utils/object.js +0 -3
  484. package/dist/server/types/src/types/utils/object.js.map +0 -1
  485. package/dist/server/utils/index.d.ts +0 -1
  486. package/dist/server/utils/index.js +0 -9
  487. package/dist/server/utils/index.js.map +0 -1
  488. package/dist/server/utils/types.d.ts +0 -14
  489. package/dist/server/utils/types.js +0 -3
  490. package/dist/server/utils/types.js.map +0 -1
  491. package/dist/server/validation/action-provider.d.ts +0 -5
  492. package/dist/server/validation/action-provider.js +0 -58
  493. package/dist/server/validation/action-provider.js.map +0 -1
  494. package/dist/server/validation/api-tokens.d.ts +0 -7
  495. package/dist/server/validation/api-tokens.js +0 -36
  496. package/dist/server/validation/api-tokens.js.map +0 -1
  497. package/dist/server/validation/authentication/forgot-password.d.ts +0 -2
  498. package/dist/server/validation/authentication/forgot-password.js +0 -16
  499. package/dist/server/validation/authentication/forgot-password.js.map +0 -1
  500. package/dist/server/validation/authentication/index.d.ts +0 -5
  501. package/dist/server/validation/authentication/index.js +0 -17
  502. package/dist/server/validation/authentication/index.js.map +0 -1
  503. package/dist/server/validation/authentication/register.d.ts +0 -9
  504. package/dist/server/validation/authentication/register.js +0 -49
  505. package/dist/server/validation/authentication/register.js.map +0 -1
  506. package/dist/server/validation/authentication/renew-token.d.ts +0 -2
  507. package/dist/server/validation/authentication/renew-token.js +0 -6
  508. package/dist/server/validation/authentication/renew-token.js.map +0 -1
  509. package/dist/server/validation/authentication/reset-password.d.ts +0 -2
  510. package/dist/server/validation/authentication/reset-password.js +0 -17
  511. package/dist/server/validation/authentication/reset-password.js.map +0 -1
  512. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.d.ts +0 -2
  513. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js +0 -26
  514. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js.map +0 -1
  515. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.d.ts +0 -2
  516. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js +0 -18
  517. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js.map +0 -1
  518. package/dist/server/validation/common-functions/index.d.ts +0 -3
  519. package/dist/server/validation/common-functions/index.js +0 -11
  520. package/dist/server/validation/common-functions/index.js.map +0 -1
  521. package/dist/server/validation/common-validators.d.ts +0 -59
  522. package/dist/server/validation/common-validators.js +0 -162
  523. package/dist/server/validation/common-validators.js.map +0 -1
  524. package/dist/server/validation/permission.d.ts +0 -9
  525. package/dist/server/validation/permission.js +0 -46
  526. package/dist/server/validation/permission.js.map +0 -1
  527. package/dist/server/validation/policies/hasPermissions.d.ts +0 -5
  528. package/dist/server/validation/policies/hasPermissions.js +0 -29
  529. package/dist/server/validation/policies/hasPermissions.js.map +0 -1
  530. package/dist/server/validation/project-settings.d.ts +0 -9
  531. package/dist/server/validation/project-settings.js +0 -44
  532. package/dist/server/validation/project-settings.js.map +0 -1
  533. package/dist/server/validation/role.d.ts +0 -11
  534. package/dist/server/validation/role.js +0 -62
  535. package/dist/server/validation/role.js.map +0 -1
  536. package/dist/server/validation/transfer/index.d.ts +0 -1
  537. package/dist/server/validation/transfer/index.js +0 -9
  538. package/dist/server/validation/transfer/index.js.map +0 -1
  539. package/dist/server/validation/transfer/token.d.ts +0 -7
  540. package/dist/server/validation/transfer/token.js +0 -46
  541. package/dist/server/validation/transfer/token.js.map +0 -1
  542. package/dist/server/validation/user.d.ts +0 -117
  543. package/dist/server/validation/user.js +0 -69
  544. package/dist/server/validation/user.js.map +0 -1
@@ -1,139 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.updateProjectSettings = exports.getProjectSettings = exports.parseFilesData = exports.deleteOldFiles = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const lodash_1 = require("lodash");
9
- const PROJECT_SETTINGS_FILE_INPUTS = ['menuLogo', 'authLogo'];
10
- const parseFilesData = async (files) => {
11
- const formatedFilesData = {};
12
- await Promise.all(PROJECT_SETTINGS_FILE_INPUTS.map(async (inputName) => {
13
- const file = files[inputName];
14
- // Skip empty file inputs
15
- if (!file) {
16
- return;
17
- }
18
- const getStream = () => fs_1.default.createReadStream(file.path);
19
- // Add formated data for the upload provider
20
- formatedFilesData[inputName] = await strapi
21
- .plugin('upload')
22
- .service('upload')
23
- .formatFileInfo({
24
- filename: file.name,
25
- type: file.type,
26
- size: file.size,
27
- });
28
- // Add image dimensions
29
- Object.assign(formatedFilesData[inputName], await strapi.plugin('upload').service('image-manipulation').getDimensions({ getStream }));
30
- // Add file path, and stream
31
- Object.assign(formatedFilesData[inputName], {
32
- stream: getStream(),
33
- tmpPath: file.path,
34
- // @ts-expect-error
35
- provider: strapi.config.get('plugin.upload').provider,
36
- });
37
- }));
38
- return formatedFilesData;
39
- };
40
- exports.parseFilesData = parseFilesData;
41
- const getProjectSettings = async () => {
42
- const store = strapi.store({ type: 'core', name: 'admin' });
43
- // Returns an object with file inputs names as key and null as value
44
- const defaultProjectSettings = PROJECT_SETTINGS_FILE_INPUTS.reduce((prev, cur) => {
45
- prev[cur] = null;
46
- return prev;
47
- }, {});
48
- const projectSettings = {
49
- ...defaultProjectSettings,
50
- // @ts-expect-error
51
- ...(await store.get({ key: 'project-settings' })),
52
- };
53
- // Filter file input fields
54
- PROJECT_SETTINGS_FILE_INPUTS.forEach((inputName) => {
55
- if (!projectSettings[inputName]) {
56
- return;
57
- }
58
- projectSettings[inputName] = (0, lodash_1.pick)(projectSettings[inputName], [
59
- 'name',
60
- 'url',
61
- 'width',
62
- 'height',
63
- 'ext',
64
- 'size',
65
- ]);
66
- });
67
- return projectSettings;
68
- };
69
- exports.getProjectSettings = getProjectSettings;
70
- const uploadFiles = async (files = {}) => {
71
- // Call the provider upload function for each file
72
- return Promise.all(Object.values(files)
73
- .filter((file) => file.stream instanceof fs_1.default.ReadStream)
74
- .map((file) => strapi.plugin('upload').provider.uploadStream(file)));
75
- };
76
- const deleteOldFiles = async ({ previousSettings, newSettings }) => {
77
- return Promise.all(PROJECT_SETTINGS_FILE_INPUTS.map(async (inputName) => {
78
- // Skip if the store doesn't contain project settings
79
- if (!previousSettings) {
80
- return;
81
- }
82
- // Skip if there was no previous file
83
- if (!previousSettings[inputName]) {
84
- return;
85
- }
86
- // Skip if the file was not changed
87
- if (newSettings[inputName] &&
88
- previousSettings[inputName].hash === newSettings[inputName].hash) {
89
- return;
90
- }
91
- // Skip if the file was not uploaded with the current provider
92
- // @ts-expect-error
93
- if (strapi.config.get('plugin.upload').provider !== previousSettings[inputName].provider) {
94
- return;
95
- }
96
- // There was a previous file and an new file was uploaded
97
- // Remove the previous file
98
- strapi.plugin('upload').provider.delete(previousSettings[inputName]);
99
- }));
100
- };
101
- exports.deleteOldFiles = deleteOldFiles;
102
- const updateProjectSettings = async (newSettings) => {
103
- const store = strapi.store({ type: 'core', name: 'admin' });
104
- const previousSettings = (await store.get({ key: 'project-settings' }));
105
- const files = (0, lodash_1.pick)(newSettings, PROJECT_SETTINGS_FILE_INPUTS);
106
- await uploadFiles(files);
107
- PROJECT_SETTINGS_FILE_INPUTS.forEach((inputName) => {
108
- // If the user input exists but is not a formdata "file" remove it
109
- if (newSettings[inputName] !== undefined && !(typeof newSettings[inputName] === 'object')) {
110
- newSettings[inputName] = null;
111
- return;
112
- }
113
- // If the user input is undefined reuse previous setting (do not update field)
114
- if (!newSettings[inputName] && previousSettings) {
115
- newSettings[inputName] = previousSettings[inputName];
116
- return;
117
- }
118
- // Update the file
119
- newSettings[inputName] = (0, lodash_1.pick)(newSettings[inputName], [
120
- 'name',
121
- 'hash',
122
- 'url',
123
- 'width',
124
- 'height',
125
- 'ext',
126
- 'size',
127
- 'provider',
128
- ]);
129
- });
130
- // No await to proceed asynchronously
131
- deleteOldFiles({ previousSettings, newSettings });
132
- await store.set({
133
- key: 'project-settings',
134
- value: { ...previousSettings, ...newSettings },
135
- });
136
- return getProjectSettings();
137
- };
138
- exports.updateProjectSettings = updateProjectSettings;
139
- //# sourceMappingURL=project-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-settings.js","sourceRoot":"","sources":["../../../server/src/services/project-settings.ts"],"names":[],"mappings":"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"}
@@ -1,116 +0,0 @@
1
- declare const hooks: {
2
- willResetSuperAdminPermissions: {
3
- call(param: unknown): Promise<unknown>;
4
- getHandlers(): import("@strapi/utils/dist/hooks").Handler[];
5
- register(handler: import("@strapi/utils/dist/hooks").Handler): import("@strapi/utils/dist/hooks").Hook<import("@strapi/utils/dist/hooks").Handler>;
6
- delete(handler: import("@strapi/utils/dist/hooks").Handler): import("@strapi/utils/dist/hooks").Hook<import("@strapi/utils/dist/hooks").Handler>;
7
- };
8
- };
9
- declare const sanitizeRole: import("lodash/fp").LodashOmit2x1;
10
- /**
11
- * Create and save a role in database
12
- * @param attributes A partial role object
13
- * @returns {Promise<role>}
14
- */
15
- declare const create: (attributes: any) => Promise<any>;
16
- /**
17
- * Find a role in database
18
- * @param params query params to find the role
19
- * @param populate
20
- * @returns {Promise<role>}
21
- */
22
- declare const findOne: (params?: any, populate?: any) => Promise<any>;
23
- /**
24
- * Find a role in database with usersCounts
25
- * @param params query params to find the role
26
- * @param populate
27
- * @returns {Promise<role>}
28
- */
29
- declare const findOneWithUsersCount: (params?: {}, populate?: any) => Promise<any>;
30
- /**
31
- * Find roles in database
32
- * @param params query params to find the roles
33
- * @param populate
34
- * @returns {Promise<array>}
35
- */
36
- declare const find: (params: {} | undefined, populate: any) => Promise<any[]>;
37
- /**
38
- * Find all roles in database
39
- * @returns {Promise<array>}
40
- */
41
- declare const findAllWithUsersCount: (params: any) => Promise<any>;
42
- /**
43
- * Update a role in database
44
- * @param params query params to find the role to update
45
- * @param attributes A partial role object
46
- * @returns {Promise<role>}
47
- */
48
- declare const update: (params: any, attributes: any) => Promise<any>;
49
- /**
50
- * Check if a role exists in database
51
- * @param params query params to find the role
52
- * @returns {Promise<boolean>}
53
- */
54
- declare const exists: (params?: {}) => Promise<boolean>;
55
- /**
56
- * Count the number of roles based on search params
57
- * @param params params used for the query
58
- * @returns {Promise<number>}
59
- */
60
- declare const count: (params?: {}) => Promise<number>;
61
- /**
62
- * Check if the given roles id can be deleted safely, throw otherwise
63
- * @param ids
64
- * @returns {Promise<void>}
65
- */
66
- declare const checkRolesIdForDeletion: (ids?: any[]) => Promise<void>;
67
- /**
68
- * Delete roles in database if they have no user assigned
69
- * @param ids query params to find the roles
70
- * @returns {Promise<array>}
71
- */
72
- declare const deleteByIds: (ids?: any[]) => Promise<any[]>;
73
- /** Count the number of users for some roles
74
- * @returns {Promise<number>}
75
- * @param roleId
76
- */
77
- declare const getUsersCount: (roleId: string) => Promise<number>;
78
- /** Returns admin role
79
- * @returns {Promise<role>}
80
- */
81
- declare const getSuperAdmin: () => Promise<any>;
82
- /** Returns admin role with userCount
83
- * @returns {Promise<role>}
84
- */
85
- declare const getSuperAdminWithUsersCount: () => Promise<any>;
86
- /** Create superAdmin, Author and Editor role is no role already exist
87
- * @returns {Promise<>}
88
- */
89
- declare const createRolesIfNoneExist: () => Promise<void>;
90
- /** Display a warning if the role superAdmin doesn't exist
91
- * or if the role is not assigned to at least one user
92
- * @returns {Promise<>}
93
- */
94
- declare const displayWarningIfNoSuperAdmin: () => Promise<void>;
95
- /**
96
- * Assign permissions to a role
97
- * @param {string|int} roleId - role ID
98
- * @param {Array<Permission{action,subject,fields,conditions}>} permissions - permissions to assign to the role
99
- */
100
- declare const assignPermissions: (roleId: string, permissions?: never[]) => Promise<any>;
101
- declare const addPermissions: (roleId: string, permissions: any) => Promise<import("../domain/permission").Permission>;
102
- /**
103
- * Reset super admin permissions (giving it all permissions)
104
- * @returns {Promise<>}
105
- */
106
- declare const resetSuperAdminPermissions: () => Promise<void>;
107
- /**
108
- * Check if a user object includes the super admin role
109
- * @param {object} user
110
- * @return {boolean}
111
- */
112
- declare const hasSuperAdminRole: (user: any) => any;
113
- declare const constants: {
114
- superAdminCode: string;
115
- };
116
- export { hooks, sanitizeRole, create, findOne, findOneWithUsersCount, find, findAllWithUsersCount, update, exists, count, deleteByIds, getUsersCount, getSuperAdmin, getSuperAdminWithUsersCount, createRolesIfNoneExist, displayWarningIfNoSuperAdmin, addPermissions, hasSuperAdminRole, assignPermissions, resetSuperAdminPermissions, checkRolesIdForDeletion, constants, };
@@ -1,382 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.constants = exports.checkRolesIdForDeletion = exports.resetSuperAdminPermissions = exports.assignPermissions = exports.hasSuperAdminRole = exports.addPermissions = exports.displayWarningIfNoSuperAdmin = exports.createRolesIfNoneExist = exports.getSuperAdminWithUsersCount = exports.getSuperAdmin = exports.getUsersCount = exports.deleteByIds = exports.count = exports.exists = exports.update = exports.findAllWithUsersCount = exports.find = exports.findOneWithUsersCount = exports.findOne = exports.create = exports.sanitizeRole = exports.hooks = void 0;
7
- /* eslint-disable @typescript-eslint/default-param-last */
8
- const lodash_1 = __importDefault(require("lodash"));
9
- const fp_1 = require("lodash/fp");
10
- const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
11
- const utils_1 = require("@strapi/utils");
12
- const permission_1 = __importDefault(require("../domain/permission"));
13
- const permission_2 = require("../validation/permission");
14
- const utils_2 = require("../utils");
15
- const constants_1 = require("./constants");
16
- const { createAsyncSeriesWaterfallHook } = utils_1.hooks;
17
- const { ApplicationError } = utils_1.errors;
18
- const hooks = {
19
- willResetSuperAdminPermissions: createAsyncSeriesWaterfallHook(),
20
- };
21
- exports.hooks = hooks;
22
- const ACTIONS = {
23
- publish: 'plugin::content-manager.explorer.publish',
24
- };
25
- const sanitizeRole = (0, fp_1.omit)(['users', 'permissions']);
26
- exports.sanitizeRole = sanitizeRole;
27
- const COMPARABLE_FIELDS = ['conditions', 'properties', 'subject', 'action', 'actionParameters'];
28
- const pickComparableFields = (0, fp_1.pick)(COMPARABLE_FIELDS);
29
- const jsonClean = (data) => JSON.parse(JSON.stringify(data));
30
- /**
31
- * Compare two permissions
32
- * @param {Permission} p1
33
- * @param {Permission} p2
34
- * @returns {boolean}
35
- */
36
- const arePermissionsEqual = (p1, p2) => {
37
- if (p1.action === p2.action) {
38
- return (0, fast_deep_equal_1.default)(jsonClean(pickComparableFields(p1)), jsonClean(pickComparableFields(p2)));
39
- }
40
- return false;
41
- };
42
- /**
43
- * Create and save a role in database
44
- * @param attributes A partial role object
45
- * @returns {Promise<role>}
46
- */
47
- const create = async (attributes) => {
48
- const alreadyExists = await exists({ name: attributes.name });
49
- if (alreadyExists) {
50
- throw new ApplicationError(`The name must be unique and a role with name \`${attributes.name}\` already exists.`);
51
- }
52
- // @ts-expect-error
53
- const autoGeneratedCode = `${lodash_1.default.kebabCase(attributes.name)}-${(0, utils_1.generateTimestampCode)()}`;
54
- const rolesWithCode = {
55
- ...attributes,
56
- code: attributes.code || autoGeneratedCode,
57
- };
58
- const result = await strapi.query('admin::role').create({ data: rolesWithCode });
59
- strapi.eventHub.emit('role.create', { role: sanitizeRole(result) });
60
- return result;
61
- };
62
- exports.create = create;
63
- /**
64
- * Find a role in database
65
- * @param params query params to find the role
66
- * @param populate
67
- * @returns {Promise<role>}
68
- */
69
- const findOne = (params = {}, populate) => {
70
- return strapi.query('admin::role').findOne({ where: params, populate });
71
- };
72
- exports.findOne = findOne;
73
- /**
74
- * Find a role in database with usersCounts
75
- * @param params query params to find the role
76
- * @param populate
77
- * @returns {Promise<role>}
78
- */
79
- const findOneWithUsersCount = async (params = {}, populate) => {
80
- const role = await strapi.query('admin::role').findOne({ where: params, populate });
81
- if (role) {
82
- role.usersCount = await getUsersCount(role.id);
83
- }
84
- return role;
85
- };
86
- exports.findOneWithUsersCount = findOneWithUsersCount;
87
- /**
88
- * Find roles in database
89
- * @param params query params to find the roles
90
- * @param populate
91
- * @returns {Promise<array>}
92
- */
93
- const find = (params = {}, populate) => {
94
- return strapi.query('admin::role').findMany({ where: params, populate });
95
- };
96
- exports.find = find;
97
- /**
98
- * Find all roles in database
99
- * @returns {Promise<array>}
100
- */
101
- const findAllWithUsersCount = async (params) => {
102
- const roles = (await strapi.entityService.findMany('admin::role', params));
103
- for (const role of roles) {
104
- role.usersCount = await getUsersCount(role.id);
105
- }
106
- return roles;
107
- };
108
- exports.findAllWithUsersCount = findAllWithUsersCount;
109
- /**
110
- * Update a role in database
111
- * @param params query params to find the role to update
112
- * @param attributes A partial role object
113
- * @returns {Promise<role>}
114
- */
115
- const update = async (params, attributes) => {
116
- const sanitizedAttributes = lodash_1.default.omit(attributes, ['code']);
117
- if (lodash_1.default.has(params, 'id') && lodash_1.default.has(sanitizedAttributes, 'name')) {
118
- const alreadyExists = await exists({
119
- name: sanitizedAttributes.name,
120
- id: { $ne: params.id },
121
- });
122
- if (alreadyExists) {
123
- throw new ApplicationError(`The name must be unique and a role with name \`${sanitizedAttributes.name}\` already exists.`);
124
- }
125
- }
126
- const result = await strapi
127
- .query('admin::role')
128
- .update({ where: params, data: sanitizedAttributes });
129
- strapi.eventHub.emit('role.update', { role: sanitizeRole(result) });
130
- return result;
131
- };
132
- exports.update = update;
133
- /**
134
- * Check if a role exists in database
135
- * @param params query params to find the role
136
- * @returns {Promise<boolean>}
137
- */
138
- const exists = async (params = {}) => {
139
- const count = await strapi.query('admin::role').count({ where: params });
140
- return count > 0;
141
- };
142
- exports.exists = exists;
143
- /**
144
- * Count the number of roles based on search params
145
- * @param params params used for the query
146
- * @returns {Promise<number>}
147
- */
148
- const count = async (params = {}) => {
149
- return strapi.query('admin::role').count(params);
150
- };
151
- exports.count = count;
152
- /**
153
- * Check if the given roles id can be deleted safely, throw otherwise
154
- * @param ids
155
- * @returns {Promise<void>}
156
- */
157
- const checkRolesIdForDeletion = async (ids = []) => {
158
- const superAdminRole = await getSuperAdmin();
159
- if (superAdminRole && (0, utils_1.stringIncludes)(ids, superAdminRole.id)) {
160
- throw new ApplicationError('You cannot delete the super admin role');
161
- }
162
- for (const roleId of ids) {
163
- const usersCount = await getUsersCount(roleId);
164
- if (usersCount !== 0) {
165
- throw new ApplicationError('Some roles are still assigned to some users');
166
- }
167
- }
168
- };
169
- exports.checkRolesIdForDeletion = checkRolesIdForDeletion;
170
- /**
171
- * Delete roles in database if they have no user assigned
172
- * @param ids query params to find the roles
173
- * @returns {Promise<array>}
174
- */
175
- const deleteByIds = async (ids = []) => {
176
- await checkRolesIdForDeletion(ids);
177
- await (0, utils_2.getService)('permission').deleteByRolesIds(ids);
178
- const deletedRoles = [];
179
- for (const id of ids) {
180
- const deletedRole = await strapi.query('admin::role').delete({ where: { id } });
181
- if (deletedRole) {
182
- strapi.eventHub.emit('role.delete', { role: deletedRole });
183
- deletedRoles.push(deletedRole);
184
- }
185
- }
186
- return deletedRoles;
187
- };
188
- exports.deleteByIds = deleteByIds;
189
- /** Count the number of users for some roles
190
- * @returns {Promise<number>}
191
- * @param roleId
192
- */
193
- const getUsersCount = async (roleId) => {
194
- return strapi.query('admin::user').count({ where: { roles: { id: roleId } } });
195
- };
196
- exports.getUsersCount = getUsersCount;
197
- /** Returns admin role
198
- * @returns {Promise<role>}
199
- */
200
- const getSuperAdmin = () => findOne({ code: constants_1.SUPER_ADMIN_CODE });
201
- exports.getSuperAdmin = getSuperAdmin;
202
- /** Returns admin role with userCount
203
- * @returns {Promise<role>}
204
- */
205
- const getSuperAdminWithUsersCount = () => findOneWithUsersCount({ code: constants_1.SUPER_ADMIN_CODE });
206
- exports.getSuperAdminWithUsersCount = getSuperAdminWithUsersCount;
207
- /** Create superAdmin, Author and Editor role is no role already exist
208
- * @returns {Promise<>}
209
- */
210
- const createRolesIfNoneExist = async () => {
211
- const someRolesExist = await exists();
212
- if (someRolesExist) {
213
- return;
214
- }
215
- const { actionProvider } = (0, utils_2.getService)('permission');
216
- const allActions = actionProvider.values();
217
- const contentTypesActions = allActions.filter((a) => a.section === 'contentTypes');
218
- // create 3 roles
219
- const superAdminRole = await create({
220
- name: 'Super Admin',
221
- code: 'strapi-super-admin',
222
- description: 'Super Admins can access and manage all features and settings.',
223
- });
224
- await (0, utils_2.getService)('user').assignARoleToAll(superAdminRole.id);
225
- const editorRole = await create({
226
- name: 'Editor',
227
- code: 'strapi-editor',
228
- description: 'Editors can manage and publish contents including those of other users.',
229
- });
230
- const authorRole = await create({
231
- name: 'Author',
232
- code: 'strapi-author',
233
- description: 'Authors can manage the content they have created.',
234
- });
235
- // create content-type permissions for each role
236
- const editorPermissions = (0, utils_2.getService)('content-type').getPermissionsWithNestedFields(contentTypesActions, {
237
- restrictedSubjects: ['plugin::users-permissions.user'],
238
- });
239
- const authorPermissions = editorPermissions
240
- .filter(({ action }) => action !== ACTIONS.publish)
241
- .map((permission) => permission_1.default.create({ ...permission, conditions: ['admin::is-creator'] }));
242
- editorPermissions.push(...getDefaultPluginPermissions());
243
- authorPermissions.push(...getDefaultPluginPermissions({ isAuthor: true }));
244
- // assign permissions to roles
245
- await addPermissions(editorRole.id, editorPermissions);
246
- await addPermissions(authorRole.id, authorPermissions);
247
- };
248
- exports.createRolesIfNoneExist = createRolesIfNoneExist;
249
- const getDefaultPluginPermissions = ({ isAuthor = false } = {}) => {
250
- const conditions = isAuthor ? ['admin::is-creator'] : [];
251
- // add plugin permissions for each role
252
- return [
253
- { action: 'plugin::upload.read', conditions },
254
- { action: 'plugin::upload.configure-view' },
255
- { action: 'plugin::upload.assets.create' },
256
- { action: 'plugin::upload.assets.update', conditions },
257
- { action: 'plugin::upload.assets.download' },
258
- { action: 'plugin::upload.assets.copy-link' },
259
- ].map(permission_1.default.create);
260
- };
261
- /** Display a warning if the role superAdmin doesn't exist
262
- * or if the role is not assigned to at least one user
263
- * @returns {Promise<>}
264
- */
265
- const displayWarningIfNoSuperAdmin = async () => {
266
- const superAdminRole = await getSuperAdminWithUsersCount();
267
- const someUsersExists = await (0, utils_2.getService)('user').exists();
268
- if (!superAdminRole) {
269
- strapi.log.warn("Your application doesn't have a super admin role.");
270
- }
271
- else if (someUsersExists && superAdminRole.usersCount === 0) {
272
- strapi.log.warn("Your application doesn't have a super admin user.");
273
- }
274
- };
275
- exports.displayWarningIfNoSuperAdmin = displayWarningIfNoSuperAdmin;
276
- /**
277
- * Assign permissions to a role
278
- * @param {string|int} roleId - role ID
279
- * @param {Array<Permission{action,subject,fields,conditions}>} permissions - permissions to assign to the role
280
- */
281
- const assignPermissions = async (roleId, permissions = []) => {
282
- await (0, permission_2.validatePermissionsExist)(permissions);
283
- // Internal actions are not handled by the role service, so any permission
284
- // with an internal action is filtered out
285
- const internalActions = (0, utils_2.getService)('permission')
286
- .actionProvider.values()
287
- .filter((action) => action.section === 'internal')
288
- .map((action) => action.actionId);
289
- const superAdmin = (await (0, utils_2.getService)('role').getSuperAdmin());
290
- const isSuperAdmin = superAdmin && superAdmin.id === roleId;
291
- const assignRole = (0, fp_1.set)('role', roleId);
292
- const permissionsWithRole = permissions
293
- // Add the role attribute to every permission
294
- .map(assignRole)
295
- // Transform each permission into a Permission instance
296
- // @ts-expect-error
297
- .map(permission_1.default.create);
298
- const existingPermissions = (await (0, utils_2.getService)('permission').findMany({
299
- where: { role: { id: roleId } },
300
- populate: ['role'],
301
- }));
302
- const permissionsToAdd = (0, fp_1.differenceWith)(arePermissionsEqual, permissionsWithRole, existingPermissions).filter((permission) => !internalActions.includes(permission.action));
303
- const permissionsToDelete = (0, fp_1.differenceWith)(arePermissionsEqual, existingPermissions, permissionsWithRole
304
- // @ts-expect-error
305
- ).filter((permission) => !internalActions.includes(permission.action));
306
- const permissionsToReturn = (0, fp_1.differenceBy)('id', permissionsToDelete, existingPermissions);
307
- if (permissionsToDelete.length > 0) {
308
- await (0, utils_2.getService)('permission').deleteByIds(permissionsToDelete.map((0, fp_1.prop)('id')));
309
- }
310
- if (permissionsToAdd.length > 0) {
311
- const newPermissions = (await addPermissions(roleId, permissionsToAdd));
312
- permissionsToReturn.push(...newPermissions);
313
- }
314
- if (!isSuperAdmin && (permissionsToAdd.length || permissionsToDelete.length)) {
315
- await (0, utils_2.getService)('metrics').sendDidUpdateRolePermissions();
316
- }
317
- return permissionsToReturn;
318
- };
319
- exports.assignPermissions = assignPermissions;
320
- const addPermissions = async (roleId, permissions) => {
321
- const { conditionProvider, createMany } = (0, utils_2.getService)('permission');
322
- const { sanitizeConditions } = permission_1.default;
323
- const permissionsWithRole = permissions
324
- .map((0, fp_1.set)('role', roleId))
325
- // @ts-expect-error
326
- .map(sanitizeConditions(conditionProvider))
327
- .map(permission_1.default.create);
328
- return createMany(permissionsWithRole);
329
- };
330
- exports.addPermissions = addPermissions;
331
- const isContentTypeAction = (action) => action.section === constants_1.CONTENT_TYPE_SECTION;
332
- /**
333
- * Reset super admin permissions (giving it all permissions)
334
- * @returns {Promise<>}
335
- */
336
- const resetSuperAdminPermissions = async () => {
337
- // @ts-ignore
338
- const superAdminRole = await (0, utils_2.getService)('role').getSuperAdmin();
339
- if (!superAdminRole) {
340
- return;
341
- }
342
- const permissionService = (0, utils_2.getService)('permission');
343
- const contentTypeService = (0, utils_2.getService)('content-type');
344
- const allActions = permissionService.actionProvider.values();
345
- const contentTypesActions = allActions.filter((action) => isContentTypeAction(action));
346
- const otherActions = allActions.filter((action) => !isContentTypeAction(action));
347
- // First, get the content-types permissions
348
- const permissions = contentTypeService.getPermissionsWithNestedFields(contentTypesActions);
349
- // Then add every other permission
350
- const otherPermissions = otherActions.reduce((acc, action) => {
351
- const { actionId, subjects } = action;
352
- if ((0, fp_1.isArray)(subjects)) {
353
- acc.push(
354
- // @ts-expect-error
355
- ...subjects.map((subject) => permission_1.default.create({ action: actionId, subject })));
356
- }
357
- else {
358
- // @ts-expect-error
359
- acc.push(permission_1.default.create({ action: actionId }));
360
- }
361
- return acc;
362
- }, []);
363
- permissions.push(...otherPermissions);
364
- const transformedPermissions = (await hooks.willResetSuperAdminPermissions.call(permissions));
365
- await assignPermissions(superAdminRole.id, transformedPermissions);
366
- };
367
- exports.resetSuperAdminPermissions = resetSuperAdminPermissions;
368
- /**
369
- * Check if a user object includes the super admin role
370
- * @param {object} user
371
- * @return {boolean}
372
- */
373
- const hasSuperAdminRole = (user) => {
374
- const roles = lodash_1.default.get(user, 'roles', []);
375
- return roles.map((0, fp_1.prop)('code')).includes(constants_1.SUPER_ADMIN_CODE);
376
- };
377
- exports.hasSuperAdminRole = hasSuperAdminRole;
378
- const constants = {
379
- superAdminCode: constants_1.SUPER_ADMIN_CODE,
380
- };
381
- exports.constants = constants;
382
- //# sourceMappingURL=role.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.js","sourceRoot":"","sources":["../../../server/src/services/role.ts"],"names":[],"mappings":"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"}