@strapi/admin 4.3.4 → 4.3.5

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 (507) hide show
  1. package/admin/src/StrapiApp.js +23 -23
  2. package/admin/src/components/AuthenticatedApp/index.js +15 -12
  3. package/admin/src/components/AuthenticatedApp/utils/api.js +1 -1
  4. package/admin/src/components/AutoReloadOverlayBlockerProvider/index.js +8 -6
  5. package/admin/src/components/ConfigurationsProvider/index.js +21 -12
  6. package/admin/src/components/ConfigurationsProvider/reducer.js +1 -1
  7. package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
  8. package/admin/src/components/GuidedTour/Homepage/index.js +2 -2
  9. package/admin/src/components/GuidedTour/Modal/components/Content.js +6 -6
  10. package/admin/src/components/GuidedTour/Modal/components/Modal.js +1 -1
  11. package/admin/src/components/GuidedTour/Modal/index.js +2 -4
  12. package/admin/src/components/GuidedTour/Modal/reducer.js +1 -1
  13. package/admin/src/components/GuidedTour/index.js +4 -4
  14. package/admin/src/components/GuidedTour/init.js +2 -2
  15. package/admin/src/components/GuidedTour/reducer.js +1 -1
  16. package/admin/src/components/GuidedTour/utils/isGuidedTourCompleted.js +1 -1
  17. package/admin/src/components/GuidedTour/utils/persistStateToLocaleStorage.js +4 -4
  18. package/admin/src/components/LanguageProvider/index.js +1 -1
  19. package/admin/src/components/LanguageProvider/init.js +1 -1
  20. package/admin/src/components/LeftMenu/index.js +6 -6
  21. package/admin/src/components/Notifications/Notification/index.js +3 -4
  22. package/admin/src/components/Notifications/index.js +2 -2
  23. package/admin/src/components/Notifications/reducer.js +2 -2
  24. package/admin/src/components/PluginsInitializer/index.js +4 -2
  25. package/admin/src/components/PluginsInitializer/init.js +1 -1
  26. package/admin/src/components/PluginsInitializer/reducer.js +1 -1
  27. package/admin/src/components/PrivateRoute/index.js +1 -1
  28. package/admin/src/components/RBACProvider/actions.js +1 -1
  29. package/admin/src/components/RBACProvider/index.js +1 -1
  30. package/admin/src/components/RBACProvider/reducer.js +2 -2
  31. package/admin/src/components/ThemeToggleProvider/index.js +1 -1
  32. package/admin/src/components/UpgradePlanModal/index.js +1 -1
  33. package/admin/src/content-manager/components/AttributeFilter/Filters.js +1 -1
  34. package/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +1 -1
  35. package/admin/src/content-manager/components/AttributeFilter/index.js +1 -1
  36. package/admin/src/content-manager/components/Block/index.js +1 -1
  37. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +7 -12
  38. package/admin/src/content-manager/components/DragLayer/index.js +1 -1
  39. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +1 -1
  40. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -1
  41. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +4 -4
  42. package/admin/src/content-manager/components/DynamicTable/index.js +25 -4
  43. package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton/index.js +18 -20
  44. package/admin/src/content-manager/components/DynamicZone/components/Component/index.js +1 -1
  45. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
  46. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/index.js +3 -3
  47. package/admin/src/content-manager/components/DynamicZone/index.js +10 -10
  48. package/admin/src/content-manager/components/DynamicZone/utils/connect.js +1 -1
  49. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  50. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +6 -6
  51. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +1 -1
  52. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +4 -4
  53. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +18 -18
  54. package/admin/src/content-manager/components/FieldComponent/utils/connect.js +1 -1
  55. package/admin/src/content-manager/components/FieldComponent/utils/select.js +6 -6
  56. package/admin/src/content-manager/components/FormTitle/index.js +1 -1
  57. package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
  58. package/admin/src/content-manager/components/InputJSON/index.js +5 -6
  59. package/admin/src/content-manager/components/InputJSON/jsonlint.js +13 -13
  60. package/admin/src/content-manager/components/InputUID/index.js +1 -1
  61. package/admin/src/content-manager/components/InputUID/regex.js +1 -1
  62. package/admin/src/content-manager/components/Inputs/index.js +32 -5
  63. package/admin/src/content-manager/components/Inputs/utils/connect.js +1 -1
  64. package/admin/src/content-manager/components/Inputs/utils/generateOptions.js +1 -1
  65. package/admin/src/content-manager/components/Inputs/utils/getStep.js +1 -5
  66. package/admin/src/content-manager/components/LayoutDndProvider/index.js +6 -6
  67. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +4 -4
  68. package/admin/src/content-manager/components/PreviewWysiwyg/utils/mdRenderer.js +1 -1
  69. package/admin/src/content-manager/components/PreviewWysiwyg/utils/satinizeHtml.js +1 -1
  70. package/admin/src/content-manager/components/RepeatableComponent/AccordionGroupCustom/index.js +1 -1
  71. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +9 -15
  72. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/utils/connect.js +1 -1
  73. package/admin/src/content-manager/components/RepeatableComponent/index.js +5 -5
  74. package/admin/src/content-manager/components/RepeatableComponent/utils/connect.js +1 -1
  75. package/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js +2 -2
  76. package/admin/src/content-manager/components/SectionTitle/index.js +1 -1
  77. package/admin/src/content-manager/components/SelectMany/ListItem.js +1 -1
  78. package/admin/src/content-manager/components/SelectMany/index.js +1 -1
  79. package/admin/src/content-manager/components/SelectOne/SingleValue.js +1 -1
  80. package/admin/src/content-manager/components/SelectWrapper/Option.js +1 -1
  81. package/admin/src/content-manager/components/SelectWrapper/index.js +16 -26
  82. package/admin/src/content-manager/components/SelectWrapper/utils/connect.js +1 -1
  83. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +6 -11
  84. package/admin/src/content-manager/components/SingleTypeFormWrapper/utils/getRequestUrl.js +1 -1
  85. package/admin/src/content-manager/components/Wysiwyg/Editor.js +1 -1
  86. package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +1 -1
  87. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +1 -1
  88. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +4 -4
  89. package/admin/src/content-manager/components/Wysiwyg/index.js +5 -5
  90. package/admin/src/content-manager/components/Wysiwyg/utils/utils.js +4 -4
  91. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -1
  92. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +3 -3
  93. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/reducer.js +1 -1
  94. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +7 -7
  95. package/admin/src/content-manager/hooks/useFindRedirectionLink/index.js +1 -1
  96. package/admin/src/content-manager/hooks/useFindRedirectionLink/selectors.js +1 -1
  97. package/admin/src/content-manager/hooks/useSyncRbac/reducer.js +1 -1
  98. package/admin/src/content-manager/hooks/useSyncRbac/selectors.js +2 -2
  99. package/admin/src/content-manager/pages/App/LeftMenu/index.js +8 -8
  100. package/admin/src/content-manager/pages/App/index.js +3 -3
  101. package/admin/src/content-manager/pages/App/reducer.js +1 -1
  102. package/admin/src/content-manager/pages/App/selectors.js +4 -4
  103. package/admin/src/content-manager/pages/App/useModels.js +1 -1
  104. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +2 -2
  105. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -1
  106. package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +2 -2
  107. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
  108. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +5 -5
  109. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +1 -1
  110. package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +1 -1
  111. package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +3 -3
  112. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +36 -5
  113. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFieldButton.js +3 -3
  114. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFields.js +1 -1
  115. package/admin/src/content-manager/pages/EditSettingsView/index.js +21 -21
  116. package/admin/src/content-manager/pages/EditSettingsView/reducer.js +1 -1
  117. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -2
  118. package/admin/src/content-manager/pages/EditSettingsView/utils/getInputProps.js +1 -1
  119. package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +12 -12
  120. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +1 -1
  121. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/connect.js +1 -1
  122. package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/utils/connect.js +1 -1
  123. package/admin/src/content-manager/pages/EditView/Header/index.js +4 -4
  124. package/admin/src/content-manager/pages/EditView/Header/utils/connect.js +1 -1
  125. package/admin/src/content-manager/pages/EditView/Header/utils/getDraftRelations.js +3 -3
  126. package/admin/src/content-manager/pages/EditView/Informations/utils/getUnits.js +1 -1
  127. package/admin/src/content-manager/pages/EditView/index.js +7 -10
  128. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -2
  129. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +1 -1
  130. package/admin/src/content-manager/pages/EditViewLayoutManager/Permissions.js +1 -1
  131. package/admin/src/content-manager/pages/EditViewLayoutManager/reducer.js +1 -1
  132. package/admin/src/content-manager/pages/EditViewLayoutManager/selectors.js +1 -1
  133. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +6 -6
  134. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +4 -3
  135. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +9 -9
  136. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +2 -2
  137. package/admin/src/content-manager/pages/ListSettingsView/index.js +9 -9
  138. package/admin/src/content-manager/pages/ListSettingsView/reducer.js +1 -1
  139. package/admin/src/content-manager/pages/ListSettingsView/utils/ellipsisCardTitle.js +1 -1
  140. package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +8 -7
  141. package/admin/src/content-manager/pages/ListView/FieldPicker/utils/getAllAllowedHeader.js +1 -1
  142. package/admin/src/content-manager/pages/ListView/actions.js +1 -1
  143. package/admin/src/content-manager/pages/ListView/index.js +3 -3
  144. package/admin/src/content-manager/pages/ListView/reducer.js +2 -2
  145. package/admin/src/content-manager/pages/ListView/selectors.js +3 -3
  146. package/admin/src/content-manager/pages/ListView/utils/createPluginsFilter.js +1 -1
  147. package/admin/src/content-manager/pages/ListViewLayoutManager/Permissions.js +2 -2
  148. package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +3 -3
  149. package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +1 -1
  150. package/admin/src/content-manager/sharedReducers/crudReducer/selectors.js +1 -1
  151. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  152. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -2
  153. package/admin/src/content-manager/utils/generatePermissionsObject.js +3 -2
  154. package/admin/src/content-manager/utils/getFieldName.js +2 -2
  155. package/admin/src/content-manager/utils/getMaxTempKey.js +2 -2
  156. package/admin/src/content-manager/utils/getRequestUrl.js +1 -1
  157. package/admin/src/content-manager/utils/getTrad.js +1 -1
  158. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +2 -2
  159. package/admin/src/content-manager/utils/removeKeyInObject.js +1 -1
  160. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +2 -2
  161. package/admin/src/core/apis/Plugin.js +1 -1
  162. package/admin/src/core/store/configureStore.js +1 -1
  163. package/admin/src/core/store/createReducer.js +1 -1
  164. package/admin/src/core/utils/axiosInstance.js +4 -4
  165. package/admin/src/core/utils/createHook.js +2 -2
  166. package/admin/src/hooks/useFetchEnabledPlugins/index.js +3 -3
  167. package/admin/src/hooks/useFetchMarketplacePlugins/index.js +3 -3
  168. package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +1 -1
  169. package/admin/src/hooks/useFetchMarketplaceProviders/index.js +3 -3
  170. package/admin/src/hooks/useFetchPermissionsLayout/index.js +1 -1
  171. package/admin/src/hooks/useFetchPermissionsLayout/reducer.js +1 -1
  172. package/admin/src/hooks/useFetchRole/index.js +4 -4
  173. package/admin/src/hooks/useFetchRole/reducer.js +1 -1
  174. package/admin/src/hooks/useMenu/reducer.js +1 -1
  175. package/admin/src/hooks/useMenu/utils/getGeneralLinks.js +3 -1
  176. package/admin/src/hooks/useModels/index.js +1 -1
  177. package/admin/src/hooks/useModels/reducer.js +3 -3
  178. package/admin/src/hooks/useRolesList/reducer.js +1 -1
  179. package/admin/src/hooks/useSettingsForm/index.js +2 -2
  180. package/admin/src/hooks/useSettingsForm/reducer.js +1 -1
  181. package/admin/src/hooks/useSettingsMenu/index.js +2 -2
  182. package/admin/src/hooks/useSettingsMenu/init.js +1 -1
  183. package/admin/src/hooks/useSettingsMenu/reducer.js +3 -3
  184. package/admin/src/hooks/useSettingsMenu/utils/formatLinks.js +3 -3
  185. package/admin/src/hooks/useSettingsMenu/utils/sortLinks.js +1 -1
  186. package/admin/src/index.js +1 -1
  187. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
  188. package/admin/src/pages/Admin/Onboarding/index.js +2 -2
  189. package/admin/src/pages/Admin/index.js +2 -2
  190. package/admin/src/pages/App/index.js +13 -5
  191. package/admin/src/pages/App/reducer.js +1 -1
  192. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
  193. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +4 -4
  194. package/admin/src/pages/AuthPage/components/Login/index.js +2 -2
  195. package/admin/src/pages/AuthPage/components/Register/index.js +6 -6
  196. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +5 -5
  197. package/admin/src/pages/AuthPage/init.js +1 -1
  198. package/admin/src/pages/AuthPage/reducer.js +1 -1
  199. package/admin/src/pages/AuthPage/utils/forms.js +2 -8
  200. package/admin/src/pages/HomePage/ContentBlocks.js +1 -1
  201. package/admin/src/pages/HomePage/SocialLinks.js +1 -1
  202. package/admin/src/pages/HomePage/index.js +3 -3
  203. package/admin/src/pages/InstalledPluginsPage/Plugins.js +1 -1
  204. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +2 -2
  205. package/admin/src/pages/MarketplacePage/index.js +6 -10
  206. package/admin/src/pages/ProfilePage/index.js +20 -23
  207. package/admin/src/pages/ProfilePage/utils/api.js +1 -1
  208. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +4 -4
  209. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +2 -2
  210. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +8 -6
  211. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +25 -13
  212. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +16 -4
  213. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +1 -1
  214. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +1 -1
  215. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +1 -1
  216. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/reducer.js +1 -1
  217. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +1 -1
  218. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +2 -2
  219. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -1
  220. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +1 -1
  221. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +4 -4
  222. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +1 -1
  223. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +1 -1
  224. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +4 -4
  225. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +1 -1
  226. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +1 -1
  227. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +4 -4
  228. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +2 -2
  229. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +5 -8
  230. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +1 -1
  231. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +3 -3
  232. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +1 -1
  233. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -1
  234. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +8 -12
  235. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/utils/generateHeadersFromActions.js +1 -1
  236. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
  237. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/getAvailableActions.js +1 -1
  238. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapses/index.js +1 -1
  239. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
  240. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -1
  241. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/findDisplayedActions.js +1 -1
  242. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +2 -2
  243. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +9 -8
  244. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +4 -4
  245. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +1 -1
  246. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/findMatchingPermissions.js +1 -1
  247. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  248. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +1 -1
  249. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatPermissionsToAPI.js +1 -1
  250. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatSettingsPermissionsToAPI.js +4 -4
  251. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +2 -2
  252. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +5 -8
  253. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +2 -2
  254. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/getConditionsButtonState.js +2 -2
  255. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
  256. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +67 -69
  257. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +4 -3
  258. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -2
  259. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/getCheckboxState.js +3 -3
  260. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/removeConditionKeyFromData.js +1 -1
  261. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +58 -60
  262. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -10
  263. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +3 -3
  264. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +1 -1
  265. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +4 -4
  266. package/admin/src/pages/SettingsPage/pages/Users/ListPage/Filters/index.js +1 -1
  267. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +8 -8
  268. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js +2 -8
  269. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +17 -11
  270. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/api.js +1 -1
  271. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +46 -14
  272. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -2
  273. package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js +1 -5
  274. package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/roles.js +1 -4
  275. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +5 -5
  276. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +4 -4
  277. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/utils/formatValue.js +1 -1
  278. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +4 -4
  279. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +1 -1
  280. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/fieldsRegex.js +2 -2
  281. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/schema.js +1 -1
  282. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +9 -9
  283. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/reducer.js +2 -2
  284. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +2 -2
  285. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +6 -6
  286. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/reducer.js +4 -4
  287. package/admin/src/pages/SettingsPage/utils/createSectionsRoutes.js +3 -3
  288. package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +12 -12
  289. package/admin/src/pages/SettingsPage/utils/getSectionsToDisplay.js +2 -2
  290. package/admin/src/pages/UseCasePage/index.js +2 -2
  291. package/admin/src/shared/components/InjectionZone/index.js +1 -1
  292. package/admin/src/shared/hooks/useInjectionZone/index.js +1 -1
  293. package/admin/src/translations/ca.json +4 -4
  294. package/admin/src/translations/de.json +4 -4
  295. package/admin/src/translations/dk.json +4 -4
  296. package/admin/src/translations/en.json +16 -15
  297. package/admin/src/translations/es.json +163 -6
  298. package/admin/src/translations/fr.json +4 -4
  299. package/admin/src/translations/gu.json +4 -4
  300. package/admin/src/translations/he.json +3 -3
  301. package/admin/src/translations/hi.json +4 -4
  302. package/admin/src/translations/hu.json +4 -4
  303. package/admin/src/translations/id.json +4 -4
  304. package/admin/src/translations/it.json +4 -4
  305. package/admin/src/translations/ja.json +4 -4
  306. package/admin/src/translations/ko.json +4 -4
  307. package/admin/src/translations/ml.json +4 -4
  308. package/admin/src/translations/nl.json +4 -4
  309. package/admin/src/translations/no.json +3 -3
  310. package/admin/src/translations/pl.json +4 -4
  311. package/admin/src/translations/pt-BR.json +177 -24
  312. package/admin/src/translations/ru.json +4 -4
  313. package/admin/src/translations/sa.json +4 -4
  314. package/admin/src/translations/sk.json +4 -4
  315. package/admin/src/translations/sv.json +665 -11
  316. package/admin/src/translations/th.json +3 -3
  317. package/admin/src/translations/zh-Hans.json +12 -15
  318. package/admin/src/translations/zh.json +4 -4
  319. package/admin/src/utils/getAttributesToDisplay.js +1 -1
  320. package/admin/src/utils/getExistingActions.js +2 -2
  321. package/admin/src/utils/getFullName.js +1 -1
  322. package/admin/src/utils/getRequestUrl.js +1 -1
  323. package/admin/src/utils/makeUniqueRoutes.js +2 -2
  324. package/admin/src/utils/sortLinks.js +1 -1
  325. package/build/{1669.0551026a.chunk.js → 1669.4ce92b2f.chunk.js} +1 -1
  326. package/build/{6925.fb35248e.chunk.js → 6925.f5c8b6fc.chunk.js} +4 -4
  327. package/build/{7866.29d1f169.chunk.js → 7866.22e3c9f8.chunk.js} +1 -1
  328. package/build/8773.4e36117f.chunk.js +325 -0
  329. package/build/Admin-authenticatedApp.a8659dc6.chunk.js +80 -0
  330. package/build/Admin_InternalErrorPage.12e24216.chunk.js +1 -0
  331. package/build/{Admin_marketplace.0b758aac.chunk.js → Admin_marketplace.2d181ad7.chunk.js} +1 -1
  332. package/build/Admin_pluginsPage.4d59785a.chunk.js +1 -0
  333. package/build/Admin_profilePage.8617313a.chunk.js +15 -0
  334. package/build/Admin_settingsPage.e58753c8.chunk.js +178 -0
  335. package/build/admin-app.05edc328.chunk.js +112 -0
  336. package/build/admin-edit-roles-page.554ba3fa.chunk.js +1 -0
  337. package/build/admin-edit-users.5bebf473.chunk.js +10 -0
  338. package/build/admin-users.1d0aa7a0.chunk.js +11 -0
  339. package/build/{api-tokens-create-page.442e3be0.chunk.js → api-tokens-create-page.b4a9987d.chunk.js} +1 -1
  340. package/build/{api-tokens-edit-page.5f34eec7.chunk.js → api-tokens-edit-page.6f5b4e26.chunk.js} +1 -1
  341. package/build/api-tokens-list-page.06938769.chunk.js +15 -0
  342. package/build/ca-json.d16c1d28.chunk.js +1 -0
  343. package/build/content-manager.62390771.chunk.js +1178 -0
  344. package/build/{content-type-builder-list-view.4a704844.chunk.js → content-type-builder-list-view.76a69473.chunk.js} +9 -9
  345. package/build/content-type-builder-translation-pt-BR-json.d6c7fcc1.chunk.js +1 -0
  346. package/build/content-type-builder.42cecba9.chunk.js +142 -0
  347. package/build/de-json.a9b514dc.chunk.js +1 -0
  348. package/build/dk-json.09e8d145.chunk.js +1 -0
  349. package/build/en-json.1bf20384.chunk.js +1 -0
  350. package/build/es-json.bb1fc425.chunk.js +1 -0
  351. package/build/fr-json.a3cf2e0b.chunk.js +1 -0
  352. package/build/gu-json.d8311297.chunk.js +1 -0
  353. package/build/he-json.3b825d80.chunk.js +1 -0
  354. package/build/hi-json.0edb8d29.chunk.js +1 -0
  355. package/build/hu-json.7855529a.chunk.js +1 -0
  356. package/build/i18n-settings-page.bf1304b0.chunk.js +101 -0
  357. package/build/i18n-translation-fr-json.b401aa34.chunk.js +1 -0
  358. package/build/id-json.df9618f2.chunk.js +1 -0
  359. package/build/index.html +1 -1
  360. package/build/it-json.a21bf078.chunk.js +1 -0
  361. package/build/ja-json.7b0d9067.chunk.js +1 -0
  362. package/build/ko-json.983c1f8f.chunk.js +1 -0
  363. package/build/main.f220d4d1.js +9321 -0
  364. package/build/ml-json.8dd021c8.chunk.js +1 -0
  365. package/build/nl-json.29d2eb37.chunk.js +1 -0
  366. package/build/no-json.40386397.chunk.js +1 -0
  367. package/build/pl-json.1f04f00c.chunk.js +1 -0
  368. package/build/pt-BR-json.b4bc8efe.chunk.js +1 -0
  369. package/build/ru-json.7ab40ccf.chunk.js +1 -0
  370. package/build/{runtime~main.3dfda620.js → runtime~main.a3bde347.js} +2 -2
  371. package/build/sa-json.c5a9f4ea.chunk.js +1 -0
  372. package/build/sk-json.e4c24c4e.chunk.js +1 -0
  373. package/build/sv-json.c3f471ae.chunk.js +1 -0
  374. package/build/th-json.a59ffb32.chunk.js +1 -0
  375. package/build/upload-translation-es-json.0f90db48.chunk.js +1 -0
  376. package/build/{upload-translation-th-json.64dd70ce.chunk.js → upload-translation-th-json.9e1fda51.chunk.js} +1 -1
  377. package/build/upload.7084cea6.chunk.js +7 -0
  378. package/build/{users-advanced-settings-page.f38654fc.chunk.js → users-advanced-settings-page.f11c8af4.chunk.js} +1 -1
  379. package/build/{users-email-settings-page.899e7fbd.chunk.js → users-email-settings-page.73c41236.chunk.js} +1 -1
  380. package/build/{users-providers-settings-page.a0b0fe39.chunk.js → users-providers-settings-page.f8e78537.chunk.js} +1 -1
  381. package/build/users-roles-settings-page.cafb4fe5.chunk.js +30 -0
  382. package/build/{webhook-edit-page.3417d93c.chunk.js → webhook-edit-page.9aba79b2.chunk.js} +3 -3
  383. package/build/zh-Hans-json.77a42bc5.chunk.js +1 -0
  384. package/build/zh-json.451a0271.chunk.js +1 -0
  385. package/ee/admin/hooks/useAuthProviders/reducer.js +1 -1
  386. package/ee/admin/pages/AuthPage/components/Login/index.js +2 -2
  387. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +3 -3
  388. package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +3 -3
  389. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +11 -9
  390. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +8 -8
  391. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/reducer.js +1 -1
  392. package/ee/admin/pages/SettingsPage/utils/customRoutes.js +1 -1
  393. package/ee/server/controllers/authentication/middlewares.js +1 -1
  394. package/ee/server/controllers/authentication/utils.js +1 -1
  395. package/ee/server/controllers/role.js +4 -4
  396. package/ee/server/services/passport/provider-registry.js +1 -1
  397. package/ee/server/services/passport/sso.js +1 -1
  398. package/ee/server/services/passport.js +1 -1
  399. package/ee/server/services/role.js +1 -1
  400. package/ee/server/validation/authentication.js +1 -1
  401. package/ee/server/validation/role.js +3 -6
  402. package/ee/server/validation/user.js +1 -1
  403. package/env.js +2 -2
  404. package/index.js +2 -2
  405. package/jest.config.front.js +3 -1
  406. package/package.json +24 -15
  407. package/scripts/build.js +2 -2
  408. package/scripts/create-dev-plugins-file.js +5 -7
  409. package/scripts/create-plugins-file.js +2 -2
  410. package/server/config/admin-conditions.js +3 -3
  411. package/server/controllers/admin.js +1 -1
  412. package/server/controllers/authentication.js +1 -1
  413. package/server/controllers/formatters/format-actions-by-sections.js +8 -5
  414. package/server/controllers/role.js +1 -1
  415. package/server/controllers/user.js +1 -1
  416. package/server/controllers/webhooks.js +6 -16
  417. package/server/domain/action/index.js +3 -3
  418. package/server/domain/action/provider.js +2 -2
  419. package/server/domain/condition/index.js +2 -2
  420. package/server/domain/condition/provider.js +1 -1
  421. package/server/domain/permission/index.js +3 -3
  422. package/server/domain/user.js +2 -2
  423. package/server/policies/hasPermissions.js +5 -5
  424. package/server/policies/isAuthenticatedAdmin.js +1 -1
  425. package/server/routes/serve-admin-panel.js +1 -1
  426. package/server/services/action.js +1 -1
  427. package/server/services/api-token.js +5 -5
  428. package/server/services/auth.js +2 -2
  429. package/server/services/condition.js +1 -1
  430. package/server/services/content-type.js +5 -3
  431. package/server/services/passport/local-strategy.js +2 -2
  432. package/server/services/passport.js +2 -4
  433. package/server/services/permission/engine-hooks.js +1 -1
  434. package/server/services/permission/engine.js +9 -9
  435. package/server/services/permission/permissions-manager/query-builers.js +5 -5
  436. package/server/services/permission/permissions-manager/sanitize.js +6 -10
  437. package/server/services/permission/queries.js +12 -13
  438. package/server/services/permission/sections-builder/handlers.js +21 -19
  439. package/server/services/permission/sections-builder/section.js +2 -2
  440. package/server/services/permission/sections-builder/utils.js +5 -5
  441. package/server/services/project-settings.js +9 -12
  442. package/server/services/role.js +15 -13
  443. package/server/services/token.js +2 -2
  444. package/server/services/user.js +11 -11
  445. package/server/strategies/admin.js +1 -1
  446. package/server/strategies/api-token.js +3 -3
  447. package/server/utils/index.js +1 -1
  448. package/server/validation/action-provider.js +6 -12
  449. package/server/validation/api-tokens.js +4 -16
  450. package/server/validation/authentication/renew-token.js +1 -5
  451. package/server/validation/common-functions/check-fields-are-correctly-nested.js +5 -3
  452. package/server/validation/common-functions/check-fields-dont-have-duplicates.js +3 -2
  453. package/server/validation/common-validators.js +74 -71
  454. package/server/validation/permission.js +13 -13
  455. package/server/validation/policies/hasPermissions.js +2 -6
  456. package/server/validation/user.js +1 -5
  457. package/utils/create-cache-dir.js +3 -3
  458. package/utils/get-custom-app-config-file.js +3 -3
  459. package/utils/get-plugins-path.js +3 -2
  460. package/utils/should-build-admin.js +4 -4
  461. package/webpack.config.js +2 -7
  462. package/build/8773.c190837d.chunk.js +0 -330
  463. package/build/Admin-authenticatedApp.380e5e99.chunk.js +0 -80
  464. package/build/Admin_InternalErrorPage.25c53284.chunk.js +0 -1
  465. package/build/Admin_pluginsPage.0992c2b5.chunk.js +0 -1
  466. package/build/Admin_profilePage.35ce8e94.chunk.js +0 -15
  467. package/build/Admin_settingsPage.76ee4c17.chunk.js +0 -178
  468. package/build/admin-app.93ff2e38.chunk.js +0 -112
  469. package/build/admin-edit-roles-page.358d98c1.chunk.js +0 -1
  470. package/build/admin-edit-users.7d9cf406.chunk.js +0 -10
  471. package/build/admin-users.bb3a8eb6.chunk.js +0 -11
  472. package/build/api-tokens-list-page.5ea3f6ce.chunk.js +0 -15
  473. package/build/ca-json.0097e443.chunk.js +0 -1
  474. package/build/content-manager.55791f82.chunk.js +0 -1178
  475. package/build/content-type-builder-translation-pt-BR-json.5739a2aa.chunk.js +0 -1
  476. package/build/content-type-builder.f48a28f9.chunk.js +0 -142
  477. package/build/de-json.0b92acd2.chunk.js +0 -1
  478. package/build/dk-json.9f1bc016.chunk.js +0 -1
  479. package/build/en-json.6d70e9ff.chunk.js +0 -1
  480. package/build/es-json.2a5a9fc1.chunk.js +0 -1
  481. package/build/fr-json.84064a0b.chunk.js +0 -1
  482. package/build/gu-json.dafa6f0d.chunk.js +0 -1
  483. package/build/he-json.d40da459.chunk.js +0 -1
  484. package/build/hi-json.b4ae16d1.chunk.js +0 -1
  485. package/build/hu-json.c81ce352.chunk.js +0 -1
  486. package/build/i18n-settings-page.9d426e96.chunk.js +0 -101
  487. package/build/i18n-translation-fr-json.0839d68d.chunk.js +0 -1
  488. package/build/id-json.fad45d17.chunk.js +0 -1
  489. package/build/it-json.12df4cdf.chunk.js +0 -1
  490. package/build/ja-json.850237e9.chunk.js +0 -1
  491. package/build/ko-json.2f3d256e.chunk.js +0 -1
  492. package/build/main.66ef8611.js +0 -9317
  493. package/build/ml-json.dc946c7f.chunk.js +0 -1
  494. package/build/nl-json.465b173f.chunk.js +0 -1
  495. package/build/no-json.e8749dd4.chunk.js +0 -1
  496. package/build/pl-json.4d11f53d.chunk.js +0 -1
  497. package/build/pt-BR-json.6301d49b.chunk.js +0 -1
  498. package/build/ru-json.28147733.chunk.js +0 -1
  499. package/build/sa-json.be504091.chunk.js +0 -1
  500. package/build/sk-json.5b33afc2.chunk.js +0 -1
  501. package/build/sv-json.cdcac02d.chunk.js +0 -1
  502. package/build/th-json.3aadaec6.chunk.js +0 -1
  503. package/build/upload-translation-es-json.6b1813b6.chunk.js +0 -1
  504. package/build/upload.0af4feca.chunk.js +0 -7
  505. package/build/users-roles-settings-page.1206751f.chunk.js +0 -30
  506. package/build/zh-Hans-json.eac1d90a.chunk.js +0 -1
  507. package/build/zh-json.96bf6019.chunk.js +0 -1
@@ -43,11 +43,11 @@ const allowedOperations = [
43
43
  ];
44
44
  const operations = pick(allowedOperations, sift);
45
45
 
46
- const conditionsMatcher = conditions => {
46
+ const conditionsMatcher = (conditions) => {
47
47
  return sift.createQueryTester(conditions, { operations });
48
48
  };
49
49
 
50
- module.exports = conditionProvider => {
50
+ module.exports = (conditionProvider) => {
51
51
  const state = {
52
52
  hooks: createEngineHooks(),
53
53
  };
@@ -112,7 +112,7 @@ module.exports = conditionProvider => {
112
112
  );
113
113
 
114
114
  const permissionWithSanitizedProperties = invalidProperties.reduce(
115
- property => permissionDomain.deleteProperty(property, permission),
115
+ (property) => permissionDomain.deleteProperty(property, permission),
116
116
  permission
117
117
  );
118
118
 
@@ -174,13 +174,13 @@ module.exports = conditionProvider => {
174
174
  const resolveConditions = map(conditionProvider.get);
175
175
 
176
176
  // 2. Filter conditions, only keep those whose handler is a function
177
- const filterValidConditions = filter(condition => isFunction(condition.handler));
177
+ const filterValidConditions = filter((condition) => isFunction(condition.handler));
178
178
 
179
179
  // 3. Evaluate the conditions handler and returns an object
180
180
  // containing both the original condition and its result
181
- const evaluateConditions = conditions => {
181
+ const evaluateConditions = (conditions) => {
182
182
  return Promise.all(
183
- conditions.map(async condition => ({
183
+ conditions.map(async (condition) => ({
184
184
  condition,
185
185
  result: await condition.handler(
186
186
  user,
@@ -237,7 +237,7 @@ module.exports = conditionProvider => {
237
237
  * @returns {function}
238
238
  */
239
239
  createRegisterFunction(can, permission, user) {
240
- const registerToCasl = caslPermission => {
240
+ const registerToCasl = (caslPermission) => {
241
241
  const { action, subject, fields, condition } = caslPermission;
242
242
 
243
243
  can(
@@ -248,7 +248,7 @@ module.exports = conditionProvider => {
248
248
  );
249
249
  };
250
250
 
251
- const runWillRegisterHook = async caslPermission => {
251
+ const runWillRegisterHook = async (caslPermission) => {
252
252
  const hookContext = createWillRegisterContext(caslPermission, {
253
253
  permission,
254
254
  user,
@@ -259,7 +259,7 @@ module.exports = conditionProvider => {
259
259
  return caslPermission;
260
260
  };
261
261
 
262
- return async caslPermission => {
262
+ return async (caslPermission) => {
263
263
  await runWillRegisterHook(caslPermission);
264
264
  registerToCasl(caslPermission);
265
265
  };
@@ -19,7 +19,7 @@ const operatorsMap = {
19
19
  $not: '$not',
20
20
  };
21
21
 
22
- const mapKey = key => {
22
+ const mapKey = (key) => {
23
23
  if (_.isString(key) && key.startsWith('$') && key in operatorsMap) {
24
24
  return operatorsMap[key];
25
25
  }
@@ -27,19 +27,19 @@ const mapKey = key => {
27
27
  };
28
28
 
29
29
  const buildCaslQuery = (ability, action, model) => {
30
- return rulesToQuery(ability, action, model, o => o.conditions);
30
+ return rulesToQuery(ability, action, model, (o) => o.conditions);
31
31
  };
32
32
 
33
- const buildStrapiQuery = caslQuery => {
33
+ const buildStrapiQuery = (caslQuery) => {
34
34
  return unwrapDeep(caslQuery);
35
35
  };
36
36
 
37
- const unwrapDeep = obj => {
37
+ const unwrapDeep = (obj) => {
38
38
  if (!_.isPlainObject(obj) && !_.isArray(obj)) {
39
39
  return obj;
40
40
  }
41
41
  if (_.isArray(obj)) {
42
- return obj.map(v => unwrapDeep(v));
42
+ return obj.map((v) => unwrapDeep(v));
43
43
  }
44
44
 
45
45
  return _.reduce(
@@ -19,12 +19,8 @@ const {
19
19
 
20
20
  const { contentTypes, traverseEntity, sanitize, pipeAsync } = require('@strapi/utils');
21
21
 
22
- const {
23
- constants,
24
- getNonVisibleAttributes,
25
- getNonWritableAttributes,
26
- getWritableAttributes,
27
- } = contentTypes;
22
+ const { constants, getNonVisibleAttributes, getNonWritableAttributes, getWritableAttributes } =
23
+ contentTypes;
28
24
  const {
29
25
  ID_ATTRIBUTE,
30
26
  CREATED_AT_ATTRIBUTE,
@@ -73,20 +69,20 @@ module.exports = ({ action, ability, model }) => {
73
69
  );
74
70
  };
75
71
 
76
- const wrapSanitize = createSanitizeFunction => {
72
+ const wrapSanitize = (createSanitizeFunction) => {
77
73
  const wrappedSanitize = async (data, options = {}) => {
78
74
  if (isArray(data)) {
79
- return Promise.all(data.map(entity => wrappedSanitize(entity, options)));
75
+ return Promise.all(data.map((entity) => wrappedSanitize(entity, options)));
80
76
  }
81
77
 
82
78
  const { subject, action: actionOverride } = getDefaultOptions(data, options);
83
79
 
84
80
  const permittedFields = permittedFieldsOf(ability, actionOverride, subject, {
85
- fieldsFrom: rule => rule.fields || [],
81
+ fieldsFrom: (rule) => rule.fields || [],
86
82
  });
87
83
 
88
84
  const hasAtLeastOneRegistered = some(
89
- fields => !isNil(fields),
85
+ (fields) => !isNil(fields),
90
86
  flatMap(prop('fields'), ability.rulesFor(actionOverride, detectSubjectType(subject)))
91
87
  );
92
88
  const shouldIncludeAllFields = isEmpty(permittedFields) && !hasAtLeastOneRegistered;
@@ -25,7 +25,7 @@ const permissionDomain = require('../../domain/permission/index');
25
25
  * @param rolesIds ids of roles
26
26
  * @returns {Promise<array>}
27
27
  */
28
- const deleteByRolesIds = async rolesIds => {
28
+ const deleteByRolesIds = async (rolesIds) => {
29
29
  const permissionsToDelete = await strapi.query('admin::permission').findMany({
30
30
  select: ['id'],
31
31
  where: {
@@ -43,7 +43,7 @@ const deleteByRolesIds = async rolesIds => {
43
43
  * @param ids ids of permissions
44
44
  * @returns {Promise<array>}
45
45
  */
46
- const deleteByIds = async ids => {
46
+ const deleteByIds = async (ids) => {
47
47
  for (const id of ids) {
48
48
  await strapi.query('admin::permission').delete({ where: { id } });
49
49
  }
@@ -54,7 +54,7 @@ const deleteByIds = async ids => {
54
54
  * @param permissions
55
55
  * @returns {Promise<*[]|*>}
56
56
  */
57
- const createMany = async permissions => {
57
+ const createMany = async (permissions) => {
58
58
  const createdPermissions = [];
59
59
  for (const permission of permissions) {
60
60
  const newPerm = await strapi.query('admin::permission').create({ data: permission });
@@ -94,11 +94,11 @@ const findMany = async (params = {}) => {
94
94
  * @param user - user
95
95
  * @returns {Promise<Permission[]>}
96
96
  */
97
- const findUserPermissions = async user => {
97
+ const findUserPermissions = async (user) => {
98
98
  return findMany({ where: { role: { users: { id: user.id } } } });
99
99
  };
100
100
 
101
- const filterPermissionsToRemove = async permissions => {
101
+ const filterPermissionsToRemove = async (permissions) => {
102
102
  const { actionProvider } = getService('permission');
103
103
 
104
104
  const permissionsToRemove = [];
@@ -108,7 +108,7 @@ const filterPermissionsToRemove = async permissions => {
108
108
  const { applyToProperties } = options;
109
109
 
110
110
  const invalidProperties = await Promise.all(
111
- (applyToProperties || []).map(async property => {
111
+ (applyToProperties || []).map(async (property) => {
112
112
  const applies = await actionProvider.appliesToProperty(
113
113
  property,
114
114
  permission.action,
@@ -156,12 +156,11 @@ const cleanPermissionsInDatabase = async () => {
156
156
 
157
157
  // 2. Clean permissions' fields (add required ones, remove the non-existing ones)
158
158
  const remainingPermissions = permissions.filter(
159
- permission => !permissionsIdToRemove.includes(permission.id)
159
+ (permission) => !permissionsIdToRemove.includes(permission.id)
160
160
  );
161
161
 
162
- const permissionsWithCleanFields = contentTypeService.cleanPermissionFields(
163
- remainingPermissions
164
- );
162
+ const permissionsWithCleanFields =
163
+ contentTypeService.cleanPermissionFields(remainingPermissions);
165
164
 
166
165
  // Update only the ones that need to be updated
167
166
  const permissionsNeedingToBeUpdated = differenceWith(
@@ -172,7 +171,7 @@ const cleanPermissionsInDatabase = async () => {
172
171
  remainingPermissions
173
172
  );
174
173
 
175
- const updatePromiseProvider = permission => {
174
+ const updatePromiseProvider = (permission) => {
176
175
  return update({ id: permission.id }, permission);
177
176
  };
178
177
 
@@ -228,11 +227,11 @@ const ensureBoundPermissionsInDatabase = async () => {
228
227
  if (missingActions.length > 0) {
229
228
  const permissions = pipe(
230
229
  // Create a permission skeleton from the action id
231
- map(action => ({ action, subject: contentType.uid, role: editorRole.id })),
230
+ map((action) => ({ action, subject: contentType.uid, role: editorRole.id })),
232
231
  // Use the permission domain to create a clean permission from the given object
233
232
  map(permissionDomain.create),
234
233
  // Adds the fields property if the permission action is eligible
235
- map(permission =>
234
+ map((permission) =>
236
235
  BOUND_ACTIONS_FOR_FIELDS.includes(permission.action)
237
236
  ? permissionDomain.setProperty('fields', fields, permission)
238
237
  : permission
@@ -78,21 +78,23 @@ const contentTypesBase = ({ action, section }) => {
78
78
  /**
79
79
  * Initialize the subjects array of a section based on the action's subjects
80
80
  */
81
- const subjectsHandlerFor = kind => ({ action, section: contentTypesSection }) => {
82
- const { subjects } = action;
83
-
84
- const newSubjects = subjects
85
- // Ignore already added subjects
86
- .filter(isNotInSubjects(contentTypesSection.subjects))
87
- // Transform UIDs into content-types
88
- .map(resolveContentType)
89
- // Only keep specific kind of content-types
90
- .filter(isOfKind(kind))
91
- // Transform the content-types into section's subjects
92
- .map(toSubjectTemplate);
93
-
94
- contentTypesSection.subjects.push(...newSubjects);
95
- };
81
+ const subjectsHandlerFor =
82
+ (kind) =>
83
+ ({ action, section: contentTypesSection }) => {
84
+ const { subjects } = action;
85
+
86
+ const newSubjects = subjects
87
+ // Ignore already added subjects
88
+ .filter(isNotInSubjects(contentTypesSection.subjects))
89
+ // Transform UIDs into content-types
90
+ .map(resolveContentType)
91
+ // Only keep specific kind of content-types
92
+ .filter(isOfKind(kind))
93
+ // Transform the content-types into section's subjects
94
+ .map(toSubjectTemplate);
95
+
96
+ contentTypesSection.subjects.push(...newSubjects);
97
+ };
96
98
 
97
99
  const buildNode = (model, attributeName, attribute) => {
98
100
  if (!isVisibleAttribute(model, attributeName)) {
@@ -113,10 +115,10 @@ const buildNode = (model, attributeName, attribute) => {
113
115
  return node;
114
116
  };
115
117
 
116
- const buildDeepAttributesCollection = model => {
118
+ const buildDeepAttributesCollection = (model) => {
117
119
  return Object.entries(model.attributes)
118
120
  .map(([attributeName, attribute]) => buildNode(model, attributeName, attribute))
119
- .filter(node => node !== null);
121
+ .filter((node) => node !== null);
120
122
  };
121
123
 
122
124
  /**
@@ -129,8 +131,8 @@ const fieldsProperty = ({ action, section }) => {
129
131
  const { subjects } = action;
130
132
 
131
133
  section.subjects
132
- .filter(subject => subjects.includes(subject.uid))
133
- .forEach(subject => {
134
+ .filter((subject) => subjects.includes(subject.uid))
135
+ .forEach((subject) => {
134
136
  const { uid } = subject;
135
137
  const contentType = resolveContentType(uid);
136
138
 
@@ -29,8 +29,8 @@ const createSection = ({
29
29
  };
30
30
 
31
31
  // Register initial hooks
32
- handlers.forEach(handler => state.hooks.handlers.register(handler));
33
- matchers.forEach(matcher => state.hooks.matchers.register(matcher));
32
+ handlers.forEach((handler) => state.hooks.handlers.register(handler));
33
+ matchers.forEach((matcher) => state.hooks.matchers.register(matcher));
34
34
 
35
35
  return {
36
36
  hooks: state.hooks,
@@ -2,19 +2,19 @@
2
2
 
3
3
  const { curry, matchesProperty, pick } = require('lodash/fp');
4
4
 
5
- const isOfKind = kind => matchesProperty('kind', kind);
5
+ const isOfKind = (kind) => matchesProperty('kind', kind);
6
6
 
7
- const resolveContentType = uid => strapi.contentTypes[uid];
7
+ const resolveContentType = (uid) => strapi.contentTypes[uid];
8
8
 
9
- const isNotInSubjects = subjects => uid => !subjects.find(subject => subject.uid === uid);
9
+ const isNotInSubjects = (subjects) => (uid) => !subjects.find((subject) => subject.uid === uid);
10
10
 
11
11
  const hasProperty = curry((property, subject) => {
12
- return !!subject.properties.find(prop => prop.value === property);
12
+ return !!subject.properties.find((prop) => prop.value === property);
13
13
  });
14
14
 
15
15
  const getValidOptions = pick(['applyToProperties']);
16
16
 
17
- const toSubjectTemplate = ct => ({ uid: ct.uid, label: ct.info.singularName, properties: [] });
17
+ const toSubjectTemplate = (ct) => ({ uid: ct.uid, label: ct.info.singularName, properties: [] });
18
18
 
19
19
  module.exports = {
20
20
  isOfKind,
@@ -8,11 +8,11 @@ const DEFAULT_PROJECT_SETTINGS = {
8
8
  menuLogo: null,
9
9
  };
10
10
 
11
- const parseFilesData = async files => {
11
+ const parseFilesData = async (files) => {
12
12
  const formatedFilesData = {};
13
13
 
14
14
  await Promise.all(
15
- PROJECT_SETTINGS_FILE_INPUTS.map(async inputName => {
15
+ PROJECT_SETTINGS_FILE_INPUTS.map(async (inputName) => {
16
16
  const file = files[inputName];
17
17
 
18
18
  // Skip empty file inputs
@@ -35,10 +35,7 @@ const parseFilesData = async files => {
35
35
  // Add image dimensions
36
36
  Object.assign(
37
37
  formatedFilesData[inputName],
38
- await strapi
39
- .plugin('upload')
40
- .service('image-manipulation')
41
- .getDimensions({ getStream })
38
+ await strapi.plugin('upload').service('image-manipulation').getDimensions({ getStream })
42
39
  );
43
40
 
44
41
  // Add file path, and stream
@@ -61,7 +58,7 @@ const getProjectSettings = async () => {
61
58
  };
62
59
 
63
60
  // Filter file input fields
64
- PROJECT_SETTINGS_FILE_INPUTS.forEach(inputName => {
61
+ PROJECT_SETTINGS_FILE_INPUTS.forEach((inputName) => {
65
62
  if (!projectSettings[inputName]) {
66
63
  return;
67
64
  }
@@ -83,14 +80,14 @@ const uploadFiles = async (files = {}) => {
83
80
  // Call the provider upload function for each file
84
81
  return Promise.all(
85
82
  Object.values(files)
86
- .filter(file => file.stream instanceof fs.ReadStream)
87
- .map(file => strapi.plugin('upload').provider.uploadStream(file))
83
+ .filter((file) => file.stream instanceof fs.ReadStream)
84
+ .map((file) => strapi.plugin('upload').provider.uploadStream(file))
88
85
  );
89
86
  };
90
87
 
91
88
  const deleteOldFiles = async ({ previousSettings, newSettings }) => {
92
89
  return Promise.all(
93
- PROJECT_SETTINGS_FILE_INPUTS.map(async inputName => {
90
+ PROJECT_SETTINGS_FILE_INPUTS.map(async (inputName) => {
94
91
  // Skip if the store doesn't contain project settings
95
92
  if (!previousSettings) {
96
93
  return;
@@ -121,14 +118,14 @@ const deleteOldFiles = async ({ previousSettings, newSettings }) => {
121
118
  );
122
119
  };
123
120
 
124
- const updateProjectSettings = async newSettings => {
121
+ const updateProjectSettings = async (newSettings) => {
125
122
  const store = strapi.store({ type: 'core', name: 'admin' });
126
123
  const previousSettings = await store.get({ key: 'project-settings' });
127
124
  const files = pick(newSettings, PROJECT_SETTINGS_FILE_INPUTS);
128
125
 
129
126
  await uploadFiles(files);
130
127
 
131
- PROJECT_SETTINGS_FILE_INPUTS.forEach(inputName => {
128
+ PROJECT_SETTINGS_FILE_INPUTS.forEach((inputName) => {
132
129
  // If the user input exists but is not a formdata "file" remove it
133
130
  if (newSettings[inputName] !== undefined && !(typeof newSettings[inputName] === 'object')) {
134
131
  newSettings[inputName] = null;
@@ -27,7 +27,7 @@ const sanitizeRole = omit(['users', 'permissions']);
27
27
  const COMPARABLE_FIELDS = ['conditions', 'properties', 'subject', 'action'];
28
28
  const pickComparableFields = pick(COMPARABLE_FIELDS);
29
29
 
30
- const jsonClean = data => JSON.parse(JSON.stringify(data));
30
+ const jsonClean = (data) => JSON.parse(JSON.stringify(data));
31
31
 
32
32
  /**
33
33
  * Compare two permissions
@@ -48,7 +48,7 @@ const arePermissionsEqual = (p1, p2) => {
48
48
  * @param attributes A partial role object
49
49
  * @returns {Promise<role>}
50
50
  */
51
- const create = async attributes => {
51
+ const create = async (attributes) => {
52
52
  const alreadyExists = await exists({ name: attributes.name });
53
53
 
54
54
  if (alreadyExists) {
@@ -107,9 +107,9 @@ const find = (params = {}, populate) => {
107
107
  * Find all roles in database
108
108
  * @returns {Promise<array>}
109
109
  */
110
- const findAllWithUsersCount = async populate => {
110
+ const findAllWithUsersCount = async (populate) => {
111
111
  const roles = await strapi.query('admin::role').findMany({ populate });
112
- for (let role of roles) {
112
+ for (const role of roles) {
113
113
  role.usersCount = await getUsersCount(role.id);
114
114
  }
115
115
 
@@ -171,7 +171,7 @@ const checkRolesIdForDeletion = async (ids = []) => {
171
171
  throw new ApplicationError('You cannot delete the super admin role');
172
172
  }
173
173
 
174
- for (let roleId of ids) {
174
+ for (const roleId of ids) {
175
175
  const usersCount = await getUsersCount(roleId);
176
176
  if (usersCount !== 0) {
177
177
  throw new ApplicationError('Some roles are still assigned to some users');
@@ -205,7 +205,7 @@ const deleteByIds = async (ids = []) => {
205
205
  * @returns {Promise<number>}
206
206
  * @param roleId
207
207
  */
208
- const getUsersCount = async roleId => {
208
+ const getUsersCount = async (roleId) => {
209
209
  return strapi.query('admin::user').count({ where: { roles: { id: roleId } } });
210
210
  };
211
211
 
@@ -231,7 +231,7 @@ const createRolesIfNoneExist = async () => {
231
231
  const { actionProvider } = getService('permission');
232
232
 
233
233
  const allActions = actionProvider.values();
234
- const contentTypesActions = allActions.filter(a => a.section === 'contentTypes');
234
+ const contentTypesActions = allActions.filter((a) => a.section === 'contentTypes');
235
235
 
236
236
  // create 3 roles
237
237
  const superAdminRole = await create({
@@ -264,7 +264,7 @@ const createRolesIfNoneExist = async () => {
264
264
 
265
265
  const authorPermissions = editorPermissions
266
266
  .filter(({ action }) => action !== ACTIONS.publish)
267
- .map(permission =>
267
+ .map((permission) =>
268
268
  permissionDomain.create({ ...permission, conditions: ['admin::is-creator'] })
269
269
  );
270
270
 
@@ -368,7 +368,7 @@ const addPermissions = async (roleId, permissions) => {
368
368
  return createMany(permissionsWithRole);
369
369
  };
370
370
 
371
- const isContentTypeAction = action => action.section === CONTENT_TYPE_SECTION;
371
+ const isContentTypeAction = (action) => action.section === CONTENT_TYPE_SECTION;
372
372
 
373
373
  /**
374
374
  * Reset super admin permissions (giving it all permissions)
@@ -385,8 +385,8 @@ const resetSuperAdminPermissions = async () => {
385
385
 
386
386
  const allActions = permissionService.actionProvider.values();
387
387
 
388
- const contentTypesActions = allActions.filter(action => isContentTypeAction(action));
389
- const otherActions = allActions.filter(action => !isContentTypeAction(action));
388
+ const contentTypesActions = allActions.filter((action) => isContentTypeAction(action));
389
+ const otherActions = allActions.filter((action) => !isContentTypeAction(action));
390
390
 
391
391
  // First, get the content-types permissions
392
392
  const permissions = contentTypeService.getPermissionsWithNestedFields(contentTypesActions);
@@ -396,7 +396,9 @@ const resetSuperAdminPermissions = async () => {
396
396
  const { actionId, subjects } = action;
397
397
 
398
398
  if (isArray(subjects)) {
399
- acc.push(...subjects.map(subject => permissionDomain.create({ action: actionId, subject })));
399
+ acc.push(
400
+ ...subjects.map((subject) => permissionDomain.create({ action: actionId, subject }))
401
+ );
400
402
  } else {
401
403
  acc.push(permissionDomain.create({ action: actionId }));
402
404
  }
@@ -416,7 +418,7 @@ const resetSuperAdminPermissions = async () => {
416
418
  * @param {object} user
417
419
  * @return {boolean}
418
420
  */
419
- const hasSuperAdminRole = user => {
421
+ const hasSuperAdminRole = (user) => {
420
422
  const roles = _.get(user, 'roles', []);
421
423
 
422
424
  return roles.map(prop('code')).includes(SUPER_ADMIN_CODE);
@@ -27,7 +27,7 @@ const createToken = () => {
27
27
  * Creates a JWT token for an administration user
28
28
  * @param {object} user - admin user
29
29
  */
30
- const createJwtToken = user => {
30
+ const createJwtToken = (user) => {
31
31
  const { options, secret } = getTokenOptions();
32
32
 
33
33
  return jwt.sign({ id: user.id }, secret, options);
@@ -38,7 +38,7 @@ const createJwtToken = user => {
38
38
  * @param {string} token - a token to decode
39
39
  * @return {Object} decodeInfo - the decoded info
40
40
  */
41
- const decodeJwtToken = token => {
41
+ const decodeJwtToken = (token) => {
42
42
  const { secret } = getTokenOptions();
43
43
 
44
44
  try {
@@ -9,13 +9,13 @@ const { password: passwordValidator } = require('../validation/common-validators
9
9
  const { getService } = require('../utils');
10
10
  const { SUPER_ADMIN_CODE } = require('./constants');
11
11
 
12
- const sanitizeUserRoles = role => _.pick(role, ['id', 'name', 'description', 'code']);
12
+ const sanitizeUserRoles = (role) => _.pick(role, ['id', 'name', 'description', 'code']);
13
13
 
14
14
  /**
15
15
  * Remove private user fields
16
16
  * @param {Object} user - user to sanitize
17
17
  */
18
- const sanitizeUser = user => {
18
+ const sanitizeUser = (user) => {
19
19
  return {
20
20
  ..._.omit(user, ['password', 'resetPasswordToken', 'registrationToken', 'roles']),
21
21
  roles: user.roles && user.roles.map(sanitizeUserRoles),
@@ -27,7 +27,7 @@ const sanitizeUser = user => {
27
27
  * @param attributes A partial user object
28
28
  * @returns {Promise<user>}
29
29
  */
30
- const create = async attributes => {
30
+ const create = async (attributes) => {
31
31
  const userInfo = {
32
32
  registrationToken: getService('token').createToken(),
33
33
  ...attributes,
@@ -120,7 +120,7 @@ const resetPasswordByEmail = async (email, password) => {
120
120
  * Check if a user is the last super admin
121
121
  * @param {int|string} userId user's id to look for
122
122
  */
123
- const isLastSuperAdminUser = async userId => {
123
+ const isLastSuperAdminUser = async (userId) => {
124
124
  const user = await findOne(userId);
125
125
  const superAdminRole = await getService('role').getSuperAdminWithUsersCount();
126
126
 
@@ -141,7 +141,7 @@ const exists = async (attributes = {}) => {
141
141
  * @param {string} registrationToken - a user registration token
142
142
  * @returns {Promise<registrationInfo>} - Returns user email, firstname and lastname
143
143
  */
144
- const findRegistrationInfo = async registrationToken => {
144
+ const findRegistrationInfo = async (registrationToken) => {
145
145
  const user = await strapi.query('admin::user').findOne({ where: { registrationToken } });
146
146
 
147
147
  if (!user) {
@@ -206,7 +206,7 @@ const findPage = async (query = {}) => {
206
206
  * @param id id of the user to delete
207
207
  * @returns {Promise<user>}
208
208
  */
209
- const deleteById = async id => {
209
+ const deleteById = async (id) => {
210
210
  // Check at least one super admin remains
211
211
  const userToDelete = await strapi.query('admin::user').findOne({
212
212
  where: { id },
@@ -218,7 +218,7 @@ const deleteById = async id => {
218
218
  }
219
219
 
220
220
  if (userToDelete) {
221
- if (userToDelete.roles.some(r => r.code === SUPER_ADMIN_CODE)) {
221
+ if (userToDelete.roles.some((r) => r.code === SUPER_ADMIN_CODE)) {
222
222
  const superAdminRole = await getService('role').getSuperAdminWithUsersCount();
223
223
  if (superAdminRole.usersCount === 1) {
224
224
  throw new ValidationError('You must have at least one user with super admin role.');
@@ -233,7 +233,7 @@ const deleteById = async id => {
233
233
  * @param ids ids of the users to delete
234
234
  * @returns {Promise<user>}
235
235
  */
236
- const deleteByIds = async ids => {
236
+ const deleteByIds = async (ids) => {
237
237
  // Check at least one super admin remains
238
238
  const superAdminRole = await getService('role').getSuperAdminWithUsersCount();
239
239
  const nbOfSuperAdminToDelete = await strapi.query('admin::user').count({
@@ -285,7 +285,7 @@ const count = async (where = {}) => {
285
285
  /** Assign some roles to several users
286
286
  * @returns {undefined}
287
287
  */
288
- const assignARoleToAll = async roleId => {
288
+ const assignARoleToAll = async (roleId) => {
289
289
  const users = await strapi.query('admin::user').findMany({
290
290
  select: ['id'],
291
291
  where: {
@@ -294,7 +294,7 @@ const assignARoleToAll = async roleId => {
294
294
  });
295
295
 
296
296
  await Promise.all(
297
- users.map(user => {
297
+ users.map((user) => {
298
298
  return strapi.query('admin::user').update({
299
299
  where: { id: user.id },
300
300
  data: { roles: [roleId] },
@@ -320,7 +320,7 @@ const displayWarningIfUsersDontHaveRole = async () => {
320
320
  const getLanguagesInUse = async () => {
321
321
  const users = await strapi.query('admin::user').findMany({ select: ['preferedLanguage'] });
322
322
 
323
- return users.map(user => user.preferedLanguage || 'en');
323
+ return users.map((user) => user.preferedLanguage || 'en');
324
324
  };
325
325
 
326
326
  module.exports = {
@@ -3,7 +3,7 @@
3
3
  const { getService } = require('../utils');
4
4
 
5
5
  /** @type {import('.').AuthenticateFunction} */
6
- const authenticate = async ctx => {
6
+ const authenticate = async (ctx) => {
7
7
  const { authorization } = ctx.request.header;
8
8
 
9
9
  if (!authorization) {
@@ -4,9 +4,9 @@ const { UnauthorizedError, ForbiddenError } = require('@strapi/utils').errors;
4
4
  const constants = require('../services/constants');
5
5
  const { getService } = require('../utils');
6
6
 
7
- const isReadScope = scope => scope.endsWith('find') || scope.endsWith('findOne');
7
+ const isReadScope = (scope) => scope.endsWith('find') || scope.endsWith('findOne');
8
8
 
9
- const extractToken = ctx => {
9
+ const extractToken = (ctx) => {
10
10
  if (ctx.request && ctx.request.header && ctx.request.header.authorization) {
11
11
  const parts = ctx.request.header.authorization.split(/\s+/);
12
12
 
@@ -21,7 +21,7 @@ const extractToken = ctx => {
21
21
  };
22
22
 
23
23
  /** @type {import('.').AuthenticateFunction} */
24
- const authenticate = async ctx => {
24
+ const authenticate = async (ctx) => {
25
25
  const apiTokenService = getService('api-token');
26
26
  const token = extractToken(ctx);
27
27
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const getService = name => {
3
+ const getService = (name) => {
4
4
  return strapi.service(`admin::${name}`);
5
5
  };
6
6