@strapi/admin 4.3.2 → 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.
- package/admin/src/StrapiApp.js +23 -23
- package/admin/src/components/AuthenticatedApp/index.js +15 -12
- package/admin/src/components/AuthenticatedApp/utils/api.js +1 -1
- package/admin/src/components/AutoReloadOverlayBlockerProvider/index.js +8 -6
- package/admin/src/components/ConfigurationsProvider/index.js +21 -12
- package/admin/src/components/ConfigurationsProvider/reducer.js +1 -1
- package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
- package/admin/src/components/GuidedTour/Homepage/index.js +2 -2
- package/admin/src/components/GuidedTour/Modal/components/Content.js +6 -6
- package/admin/src/components/GuidedTour/Modal/components/Modal.js +1 -1
- package/admin/src/components/GuidedTour/Modal/index.js +2 -4
- package/admin/src/components/GuidedTour/Modal/reducer.js +1 -1
- package/admin/src/components/GuidedTour/index.js +4 -4
- package/admin/src/components/GuidedTour/init.js +2 -2
- package/admin/src/components/GuidedTour/reducer.js +1 -1
- package/admin/src/components/GuidedTour/utils/isGuidedTourCompleted.js +1 -1
- package/admin/src/components/GuidedTour/utils/persistStateToLocaleStorage.js +4 -4
- package/admin/src/components/LanguageProvider/index.js +1 -1
- package/admin/src/components/LanguageProvider/init.js +1 -1
- package/admin/src/components/LeftMenu/index.js +6 -6
- package/admin/src/components/Notifications/Notification/index.js +3 -4
- package/admin/src/components/Notifications/index.js +2 -2
- package/admin/src/components/Notifications/reducer.js +2 -2
- package/admin/src/components/PluginsInitializer/index.js +4 -2
- package/admin/src/components/PluginsInitializer/init.js +1 -1
- package/admin/src/components/PluginsInitializer/reducer.js +1 -1
- package/admin/src/components/PrivateRoute/index.js +1 -1
- package/admin/src/components/RBACProvider/actions.js +1 -1
- package/admin/src/components/RBACProvider/index.js +1 -1
- package/admin/src/components/RBACProvider/reducer.js +2 -2
- package/admin/src/components/ThemeToggleProvider/index.js +1 -1
- package/admin/src/components/UpgradePlanModal/index.js +1 -1
- package/admin/src/content-manager/components/AttributeFilter/Filters.js +1 -1
- package/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +1 -1
- package/admin/src/content-manager/components/AttributeFilter/index.js +4 -2
- package/admin/src/content-manager/components/Block/index.js +1 -1
- package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +7 -12
- package/admin/src/content-manager/components/DragLayer/index.js +1 -1
- package/admin/src/content-manager/components/DynamicTable/CellContent/CellValue.js +3 -5
- package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +1 -1
- package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -1
- package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +4 -4
- package/admin/src/content-manager/components/DynamicTable/index.js +25 -4
- package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton/index.js +18 -20
- package/admin/src/content-manager/components/DynamicZone/components/Component/index.js +1 -1
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/index.js +3 -3
- package/admin/src/content-manager/components/DynamicZone/index.js +10 -10
- package/admin/src/content-manager/components/DynamicZone/utils/connect.js +1 -1
- package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
- package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +6 -6
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +1 -1
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +4 -4
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +18 -18
- package/admin/src/content-manager/components/FieldComponent/utils/connect.js +1 -1
- package/admin/src/content-manager/components/FieldComponent/utils/select.js +6 -6
- package/admin/src/content-manager/components/FormTitle/index.js +1 -1
- package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
- package/admin/src/content-manager/components/InputJSON/index.js +5 -6
- package/admin/src/content-manager/components/InputJSON/jsonlint.js +13 -13
- package/admin/src/content-manager/components/InputUID/index.js +1 -1
- package/admin/src/content-manager/components/InputUID/regex.js +1 -1
- package/admin/src/content-manager/components/Inputs/index.js +32 -5
- package/admin/src/content-manager/components/Inputs/utils/connect.js +1 -1
- package/admin/src/content-manager/components/Inputs/utils/generateOptions.js +1 -1
- package/admin/src/content-manager/components/Inputs/utils/getStep.js +1 -5
- package/admin/src/content-manager/components/LayoutDndProvider/index.js +6 -6
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +4 -4
- package/admin/src/content-manager/components/PreviewWysiwyg/utils/mdRenderer.js +1 -1
- package/admin/src/content-manager/components/PreviewWysiwyg/utils/satinizeHtml.js +1 -1
- package/admin/src/content-manager/components/RepeatableComponent/AccordionGroupCustom/index.js +1 -1
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +9 -15
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/utils/connect.js +1 -1
- package/admin/src/content-manager/components/RepeatableComponent/index.js +5 -5
- package/admin/src/content-manager/components/RepeatableComponent/utils/connect.js +1 -1
- package/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js +2 -2
- package/admin/src/content-manager/components/SectionTitle/index.js +1 -1
- package/admin/src/content-manager/components/SelectMany/ListItem.js +1 -1
- package/admin/src/content-manager/components/SelectMany/index.js +1 -1
- package/admin/src/content-manager/components/SelectOne/SingleValue.js +1 -1
- package/admin/src/content-manager/components/SelectWrapper/Option.js +1 -1
- package/admin/src/content-manager/components/SelectWrapper/index.js +16 -26
- package/admin/src/content-manager/components/SelectWrapper/utils/connect.js +1 -1
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +6 -11
- package/admin/src/content-manager/components/SingleTypeFormWrapper/utils/getRequestUrl.js +1 -1
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +1 -1
- package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +1 -1
- package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +1 -1
- package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +4 -4
- package/admin/src/content-manager/components/Wysiwyg/index.js +5 -5
- package/admin/src/content-manager/components/Wysiwyg/utils/utils.js +4 -4
- package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -1
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +3 -3
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/reducer.js +1 -1
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +7 -7
- package/admin/src/content-manager/hooks/useFindRedirectionLink/index.js +1 -1
- package/admin/src/content-manager/hooks/useFindRedirectionLink/selectors.js +1 -1
- package/admin/src/content-manager/hooks/useSyncRbac/reducer.js +1 -1
- package/admin/src/content-manager/hooks/useSyncRbac/selectors.js +2 -2
- package/admin/src/content-manager/pages/App/LeftMenu/index.js +8 -8
- package/admin/src/content-manager/pages/App/index.js +3 -3
- package/admin/src/content-manager/pages/App/reducer.js +1 -1
- package/admin/src/content-manager/pages/App/selectors.js +4 -4
- package/admin/src/content-manager/pages/App/useModels.js +1 -1
- package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +2 -2
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -1
- package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +2 -2
- package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +5 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +36 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFieldButton.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFields.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/index.js +21 -21
- package/admin/src/content-manager/pages/EditSettingsView/reducer.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -2
- package/admin/src/content-manager/pages/EditSettingsView/utils/getInputProps.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +12 -12
- package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +1 -1
- package/admin/src/content-manager/pages/EditView/DeleteLink/utils/connect.js +1 -1
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/utils/connect.js +1 -1
- package/admin/src/content-manager/pages/EditView/Header/index.js +4 -4
- package/admin/src/content-manager/pages/EditView/Header/utils/connect.js +1 -1
- package/admin/src/content-manager/pages/EditView/Header/utils/getDraftRelations.js +3 -3
- package/admin/src/content-manager/pages/EditView/Informations/utils/getUnits.js +1 -1
- package/admin/src/content-manager/pages/EditView/index.js +7 -10
- package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -2
- package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +1 -1
- package/admin/src/content-manager/pages/EditViewLayoutManager/Permissions.js +1 -1
- package/admin/src/content-manager/pages/EditViewLayoutManager/reducer.js +1 -1
- package/admin/src/content-manager/pages/EditViewLayoutManager/selectors.js +1 -1
- package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +6 -6
- package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +4 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +9 -9
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +2 -2
- package/admin/src/content-manager/pages/ListSettingsView/index.js +9 -9
- package/admin/src/content-manager/pages/ListSettingsView/reducer.js +1 -1
- package/admin/src/content-manager/pages/ListSettingsView/utils/ellipsisCardTitle.js +1 -1
- package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +8 -7
- package/admin/src/content-manager/pages/ListView/FieldPicker/utils/getAllAllowedHeader.js +1 -1
- package/admin/src/content-manager/pages/ListView/actions.js +1 -1
- package/admin/src/content-manager/pages/ListView/index.js +3 -3
- package/admin/src/content-manager/pages/ListView/reducer.js +2 -2
- package/admin/src/content-manager/pages/ListView/selectors.js +3 -3
- package/admin/src/content-manager/pages/ListView/utils/createPluginsFilter.js +1 -1
- package/admin/src/content-manager/pages/ListViewLayoutManager/Permissions.js +2 -2
- package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +3 -3
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +1 -1
- package/admin/src/content-manager/sharedReducers/crudReducer/selectors.js +1 -1
- package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
- package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -2
- package/admin/src/content-manager/utils/generatePermissionsObject.js +3 -2
- package/admin/src/content-manager/utils/getFieldName.js +2 -2
- package/admin/src/content-manager/utils/getMaxTempKey.js +2 -2
- package/admin/src/content-manager/utils/getRequestUrl.js +1 -1
- package/admin/src/content-manager/utils/getTrad.js +1 -1
- package/admin/src/content-manager/utils/mergeMetasWithSchema.js +2 -2
- package/admin/src/content-manager/utils/removeKeyInObject.js +1 -1
- package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +2 -2
- package/admin/src/core/apis/Plugin.js +1 -1
- package/admin/src/core/store/configureStore.js +1 -1
- package/admin/src/core/store/createReducer.js +1 -1
- package/admin/src/core/utils/axiosInstance.js +4 -4
- package/admin/src/core/utils/createHook.js +2 -2
- package/admin/src/hooks/useFetchEnabledPlugins/index.js +3 -3
- package/admin/src/hooks/useFetchMarketplacePlugins/index.js +3 -3
- package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +1 -1
- package/admin/src/hooks/useFetchMarketplaceProviders/index.js +3 -3
- package/admin/src/hooks/useFetchPermissionsLayout/index.js +1 -1
- package/admin/src/hooks/useFetchPermissionsLayout/reducer.js +1 -1
- package/admin/src/hooks/useFetchRole/index.js +4 -4
- package/admin/src/hooks/useFetchRole/reducer.js +1 -1
- package/admin/src/hooks/useMenu/reducer.js +1 -1
- package/admin/src/hooks/useMenu/utils/getGeneralLinks.js +3 -1
- package/admin/src/hooks/useModels/index.js +1 -1
- package/admin/src/hooks/useModels/reducer.js +3 -3
- package/admin/src/hooks/useRolesList/reducer.js +1 -1
- package/admin/src/hooks/useSettingsForm/index.js +2 -2
- package/admin/src/hooks/useSettingsForm/reducer.js +1 -1
- package/admin/src/hooks/useSettingsMenu/index.js +2 -2
- package/admin/src/hooks/useSettingsMenu/init.js +1 -1
- package/admin/src/hooks/useSettingsMenu/reducer.js +3 -3
- package/admin/src/hooks/useSettingsMenu/utils/formatLinks.js +3 -3
- package/admin/src/hooks/useSettingsMenu/utils/sortLinks.js +1 -1
- package/admin/src/index.js +1 -1
- package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
- package/admin/src/pages/Admin/Onboarding/index.js +2 -2
- package/admin/src/pages/Admin/index.js +2 -2
- package/admin/src/pages/App/index.js +13 -5
- package/admin/src/pages/App/reducer.js +1 -1
- package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
- package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +4 -4
- package/admin/src/pages/AuthPage/components/Login/index.js +2 -2
- package/admin/src/pages/AuthPage/components/Register/index.js +6 -6
- package/admin/src/pages/AuthPage/components/ResetPassword/index.js +5 -5
- package/admin/src/pages/AuthPage/init.js +1 -1
- package/admin/src/pages/AuthPage/reducer.js +1 -1
- package/admin/src/pages/AuthPage/utils/forms.js +2 -8
- package/admin/src/pages/HomePage/ContentBlocks.js +1 -1
- package/admin/src/pages/HomePage/SocialLinks.js +1 -1
- package/admin/src/pages/HomePage/index.js +3 -3
- package/admin/src/pages/InstalledPluginsPage/Plugins.js +1 -1
- package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +2 -2
- package/admin/src/pages/MarketplacePage/index.js +6 -10
- package/admin/src/pages/ProfilePage/index.js +20 -23
- package/admin/src/pages/ProfilePage/utils/api.js +1 -1
- package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +4 -4
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +8 -6
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +25 -13
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +16 -4
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/reducer.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +2 -2
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +4 -4
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +4 -4
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +5 -8
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +8 -12
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/utils/generateHeadersFromActions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/getAvailableActions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapses/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/findDisplayedActions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +9 -8
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/findMatchingPermissions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatPermissionsToAPI.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatSettingsPermissionsToAPI.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +5 -8
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/getConditionsButtonState.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +67 -69
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +4 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/getCheckboxState.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/removeConditionKeyFromData.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +58 -60
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -10
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/Filters/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +8 -8
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js +2 -8
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +17 -11
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/api.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +46 -14
- package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js +1 -5
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/roles.js +1 -4
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +5 -5
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/utils/formatValue.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/fieldsRegex.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/schema.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +9 -9
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/reducer.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +6 -6
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/reducer.js +4 -4
- package/admin/src/pages/SettingsPage/utils/createSectionsRoutes.js +3 -3
- package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +12 -12
- package/admin/src/pages/SettingsPage/utils/getSectionsToDisplay.js +2 -2
- package/admin/src/pages/UseCasePage/index.js +2 -2
- package/admin/src/shared/components/InjectionZone/index.js +1 -1
- package/admin/src/shared/hooks/useInjectionZone/index.js +1 -1
- package/admin/src/translations/ca.json +4 -4
- package/admin/src/translations/de.json +4 -4
- package/admin/src/translations/dk.json +4 -4
- package/admin/src/translations/en.json +16 -15
- package/admin/src/translations/es.json +163 -6
- package/admin/src/translations/fr.json +4 -4
- package/admin/src/translations/gu.json +4 -4
- package/admin/src/translations/he.json +3 -3
- package/admin/src/translations/hi.json +4 -4
- package/admin/src/translations/hu.json +4 -4
- package/admin/src/translations/id.json +4 -4
- package/admin/src/translations/it.json +4 -4
- package/admin/src/translations/ja.json +4 -4
- package/admin/src/translations/ko.json +4 -4
- package/admin/src/translations/ml.json +4 -4
- package/admin/src/translations/nl.json +4 -4
- package/admin/src/translations/no.json +3 -3
- package/admin/src/translations/pl.json +4 -4
- package/admin/src/translations/pt-BR.json +177 -24
- package/admin/src/translations/ru.json +4 -4
- package/admin/src/translations/sa.json +4 -4
- package/admin/src/translations/sk.json +4 -4
- package/admin/src/translations/sv.json +665 -11
- package/admin/src/translations/th.json +3 -3
- package/admin/src/translations/zh-Hans.json +12 -15
- package/admin/src/translations/zh.json +4 -4
- package/admin/src/utils/getAttributesToDisplay.js +1 -1
- package/admin/src/utils/getExistingActions.js +2 -2
- package/admin/src/utils/getFullName.js +1 -1
- package/admin/src/utils/getRequestUrl.js +1 -1
- package/admin/src/utils/makeUniqueRoutes.js +2 -2
- package/admin/src/utils/sortLinks.js +1 -1
- package/build/{1669.341e10d8.chunk.js → 1669.4ce92b2f.chunk.js} +1 -1
- package/build/{1856.6a94980b.chunk.js → 1856.d3da2fcd.chunk.js} +18 -17
- package/build/{2077.5456ccd1.chunk.js → 2077.b25a0b57.chunk.js} +6 -5
- package/build/2912.da8a70aa.chunk.js +258 -0
- package/build/{4715.a6e62860.chunk.js → 4715.3787be19.chunk.js} +20 -19
- package/build/4982.a4e36c9a.chunk.js +314 -0
- package/build/611.aa894d27.chunk.js +158 -0
- package/build/6925.f5c8b6fc.chunk.js +761 -0
- package/build/7841.922b96eb.chunk.js +258 -0
- package/build/7866.22e3c9f8.chunk.js +504 -0
- package/build/8380.ab3939f3.chunk.js +284 -0
- package/build/8469.41c8d25f.chunk.js +1 -0
- package/build/8549.0e30f86d.chunk.js +158 -0
- package/build/8773.4e36117f.chunk.js +325 -0
- package/build/{8655.9073e17e.chunk.js → 9166.280c7521.chunk.js} +62 -60
- package/build/9420.ee1ccff7.chunk.js +504 -0
- package/build/Admin-authenticatedApp.a8659dc6.chunk.js +80 -0
- package/build/Admin_InternalErrorPage.12e24216.chunk.js +1 -0
- package/build/{Admin_marketplace.8efd3fd0.chunk.js → Admin_marketplace.2d181ad7.chunk.js} +1 -1
- package/build/Admin_pluginsPage.4d59785a.chunk.js +1 -0
- package/build/Admin_profilePage.8617313a.chunk.js +15 -0
- package/build/Admin_settingsPage.e58753c8.chunk.js +178 -0
- package/build/admin-app.05edc328.chunk.js +112 -0
- package/build/admin-edit-roles-page.554ba3fa.chunk.js +1 -0
- package/build/admin-edit-users.5bebf473.chunk.js +10 -0
- package/build/admin-users.1d0aa7a0.chunk.js +11 -0
- package/build/{api-tokens-create-page.442e3be0.chunk.js → api-tokens-create-page.b4a9987d.chunk.js} +1 -1
- package/build/{api-tokens-edit-page.5f34eec7.chunk.js → api-tokens-edit-page.6f5b4e26.chunk.js} +1 -1
- package/build/api-tokens-list-page.06938769.chunk.js +15 -0
- package/build/ca-json.d16c1d28.chunk.js +1 -0
- package/build/content-manager.62390771.chunk.js +1178 -0
- package/build/content-type-builder-list-view.76a69473.chunk.js +194 -0
- package/build/content-type-builder-translation-pt-BR-json.d6c7fcc1.chunk.js +1 -0
- package/build/content-type-builder.42cecba9.chunk.js +142 -0
- package/build/de-json.a9b514dc.chunk.js +1 -0
- package/build/dk-json.09e8d145.chunk.js +1 -0
- package/build/en-json.1bf20384.chunk.js +1 -0
- package/build/es-json.bb1fc425.chunk.js +1 -0
- package/build/fr-json.a3cf2e0b.chunk.js +1 -0
- package/build/gu-json.d8311297.chunk.js +1 -0
- package/build/he-json.3b825d80.chunk.js +1 -0
- package/build/hi-json.0edb8d29.chunk.js +1 -0
- package/build/hu-json.7855529a.chunk.js +1 -0
- package/build/i18n-settings-page.bf1304b0.chunk.js +101 -0
- package/build/i18n-translation-fr-json.b401aa34.chunk.js +1 -0
- package/build/id-json.df9618f2.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/it-json.a21bf078.chunk.js +1 -0
- package/build/ja-json.7b0d9067.chunk.js +1 -0
- package/build/ko-json.983c1f8f.chunk.js +1 -0
- package/build/main.f220d4d1.js +9321 -0
- package/build/ml-json.8dd021c8.chunk.js +1 -0
- package/build/nl-json.29d2eb37.chunk.js +1 -0
- package/build/no-json.40386397.chunk.js +1 -0
- package/build/pl-json.1f04f00c.chunk.js +1 -0
- package/build/pt-BR-json.b4bc8efe.chunk.js +1 -0
- package/build/ru-json.7ab40ccf.chunk.js +1 -0
- package/build/{runtime~main.1601a98c.js → runtime~main.a3bde347.js} +2 -2
- package/build/sa-json.c5a9f4ea.chunk.js +1 -0
- package/build/sk-json.e4c24c4e.chunk.js +1 -0
- package/build/sv-json.c3f471ae.chunk.js +1 -0
- package/build/th-json.a59ffb32.chunk.js +1 -0
- package/build/{upload-settings.4bad0bdd.chunk.js → upload-settings.5dfe0fe2.chunk.js} +1 -1
- package/build/upload-translation-ca-json.00dc1f33.chunk.js +1 -0
- package/build/upload-translation-de-json.00cbbc08.chunk.js +1 -0
- package/build/upload-translation-dk-json.c787a6be.chunk.js +1 -0
- package/build/upload-translation-en-json.004a86c1.chunk.js +1 -0
- package/build/upload-translation-es-json.0f90db48.chunk.js +1 -0
- package/build/upload-translation-ko-json.392002fb.chunk.js +1 -0
- package/build/upload-translation-pl-json.136eedb6.chunk.js +1 -0
- package/build/{upload-translation-th-json.64dd70ce.chunk.js → upload-translation-th-json.9e1fda51.chunk.js} +1 -1
- package/build/upload.7084cea6.chunk.js +7 -0
- package/build/{users-advanced-settings-page.f38654fc.chunk.js → users-advanced-settings-page.f11c8af4.chunk.js} +1 -1
- package/build/users-email-settings-page.73c41236.chunk.js +1 -0
- package/build/{users-providers-settings-page.a0b0fe39.chunk.js → users-providers-settings-page.f8e78537.chunk.js} +1 -1
- package/build/users-roles-settings-page.cafb4fe5.chunk.js +30 -0
- package/build/{webhook-edit-page.3417d93c.chunk.js → webhook-edit-page.9aba79b2.chunk.js} +3 -3
- package/build/{webhook-list-page.2ab4bbf0.chunk.js → webhook-list-page.912becb8.chunk.js} +7 -6
- package/build/zh-Hans-json.77a42bc5.chunk.js +1 -0
- package/build/zh-json.451a0271.chunk.js +1 -0
- package/ee/admin/hooks/useAuthProviders/reducer.js +1 -1
- package/ee/admin/pages/AuthPage/components/Login/index.js +2 -2
- package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +3 -3
- package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +3 -3
- package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +11 -9
- package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +8 -8
- package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/reducer.js +1 -1
- package/ee/admin/pages/SettingsPage/utils/customRoutes.js +1 -1
- package/ee/server/controllers/authentication/middlewares.js +1 -1
- package/ee/server/controllers/authentication/utils.js +1 -1
- package/ee/server/controllers/role.js +4 -4
- package/ee/server/services/passport/provider-registry.js +1 -1
- package/ee/server/services/passport/sso.js +1 -1
- package/ee/server/services/passport.js +1 -1
- package/ee/server/services/role.js +1 -1
- package/ee/server/validation/authentication.js +1 -1
- package/ee/server/validation/role.js +3 -6
- package/ee/server/validation/user.js +1 -1
- package/env.js +2 -2
- package/index.js +2 -2
- package/jest.config.front.js +3 -1
- package/package.json +30 -21
- package/scripts/build.js +2 -2
- package/scripts/create-dev-plugins-file.js +5 -7
- package/scripts/create-plugins-file.js +2 -2
- package/server/config/admin-conditions.js +3 -3
- package/server/controllers/admin.js +1 -1
- package/server/controllers/authentication.js +1 -1
- package/server/controllers/formatters/format-actions-by-sections.js +8 -5
- package/server/controllers/role.js +1 -1
- package/server/controllers/user.js +1 -1
- package/server/controllers/webhooks.js +6 -16
- package/server/domain/action/index.js +3 -3
- package/server/domain/action/provider.js +2 -2
- package/server/domain/condition/index.js +2 -2
- package/server/domain/condition/provider.js +1 -1
- package/server/domain/permission/index.js +3 -3
- package/server/domain/user.js +2 -2
- package/server/policies/hasPermissions.js +5 -5
- package/server/policies/isAuthenticatedAdmin.js +1 -1
- package/server/routes/serve-admin-panel.js +1 -1
- package/server/routes/webhooks.js +4 -1
- package/server/services/action.js +1 -1
- package/server/services/api-token.js +5 -5
- package/server/services/auth.js +2 -2
- package/server/services/condition.js +1 -1
- package/server/services/content-type.js +5 -3
- package/server/services/passport/local-strategy.js +2 -2
- package/server/services/passport.js +2 -4
- package/server/services/permission/engine-hooks.js +1 -1
- package/server/services/permission/engine.js +9 -9
- package/server/services/permission/permissions-manager/query-builers.js +5 -5
- package/server/services/permission/permissions-manager/sanitize.js +6 -10
- package/server/services/permission/queries.js +12 -13
- package/server/services/permission/sections-builder/handlers.js +21 -19
- package/server/services/permission/sections-builder/section.js +2 -2
- package/server/services/permission/sections-builder/utils.js +5 -5
- package/server/services/project-settings.js +10 -13
- package/server/services/role.js +15 -13
- package/server/services/token.js +2 -2
- package/server/services/user.js +11 -11
- package/server/strategies/admin.js +1 -1
- package/server/strategies/api-token.js +3 -3
- package/server/utils/index.js +1 -1
- package/server/validation/action-provider.js +6 -12
- package/server/validation/api-tokens.js +4 -16
- package/server/validation/authentication/renew-token.js +1 -5
- package/server/validation/common-functions/check-fields-are-correctly-nested.js +5 -3
- package/server/validation/common-functions/check-fields-dont-have-duplicates.js +3 -2
- package/server/validation/common-validators.js +74 -71
- package/server/validation/permission.js +13 -13
- package/server/validation/policies/hasPermissions.js +2 -6
- package/server/validation/user.js +1 -5
- package/utils/create-cache-dir.js +3 -3
- package/utils/get-custom-app-config-file.js +3 -3
- package/utils/get-plugins-path.js +3 -2
- package/utils/should-build-admin.js +4 -4
- package/webpack.config.js +2 -7
- package/admin/src/content-manager/components/DynamicTable/CellContent/utils/getNumberOfDecimals.js +0 -8
- package/build/109.1464fd6e.chunk.js +0 -2
- package/build/20.9e5a98b6.chunk.js +0 -308
- package/build/3332.1e443103.chunk.js +0 -102
- package/build/413.d5986568.chunk.js +0 -284
- package/build/5520.3c6bf86a.chunk.js +0 -503
- package/build/8469.3af1823d.chunk.js +0 -1
- package/build/8773.83d4a28b.chunk.js +0 -327
- package/build/9420.ba035f29.chunk.js +0 -508
- package/build/9799.ce46400f.chunk.js +0 -760
- package/build/Admin-authenticatedApp.2cb98f7a.chunk.js +0 -80
- package/build/Admin_InternalErrorPage.25c53284.chunk.js +0 -1
- package/build/Admin_pluginsPage.0992c2b5.chunk.js +0 -1
- package/build/Admin_profilePage.35ce8e94.chunk.js +0 -15
- package/build/Admin_settingsPage.5fc517d7.chunk.js +0 -178
- package/build/admin-app.1bd5f67e.chunk.js +0 -112
- package/build/admin-edit-roles-page.358d98c1.chunk.js +0 -1
- package/build/admin-edit-users.714863af.chunk.js +0 -10
- package/build/admin-users.2bd6fb37.chunk.js +0 -11
- package/build/api-tokens-list-page.5ea3f6ce.chunk.js +0 -15
- package/build/ca-json.0097e443.chunk.js +0 -1
- package/build/content-manager.57c1cfe3.chunk.js +0 -1178
- package/build/content-type-builder-list-view.b12687b2.chunk.js +0 -194
- package/build/content-type-builder-translation-pt-BR-json.5739a2aa.chunk.js +0 -1
- package/build/content-type-builder.b2cbf2e9.chunk.js +0 -142
- package/build/de-json.0b92acd2.chunk.js +0 -1
- package/build/dk-json.9f1bc016.chunk.js +0 -1
- package/build/en-json.6d70e9ff.chunk.js +0 -1
- package/build/es-json.2a5a9fc1.chunk.js +0 -1
- package/build/fr-json.84064a0b.chunk.js +0 -1
- package/build/gu-json.dafa6f0d.chunk.js +0 -1
- package/build/he-json.d40da459.chunk.js +0 -1
- package/build/hi-json.b4ae16d1.chunk.js +0 -1
- package/build/hu-json.c81ce352.chunk.js +0 -1
- package/build/i18n-settings-page.9d426e96.chunk.js +0 -101
- package/build/i18n-translation-fr-json.0839d68d.chunk.js +0 -1
- package/build/id-json.fad45d17.chunk.js +0 -1
- package/build/it-json.12df4cdf.chunk.js +0 -1
- package/build/ja-json.850237e9.chunk.js +0 -1
- package/build/ko-json.2f3d256e.chunk.js +0 -1
- package/build/main.407d75cc.js +0 -8675
- package/build/ml-json.dc946c7f.chunk.js +0 -1
- package/build/nl-json.465b173f.chunk.js +0 -1
- package/build/no-json.e8749dd4.chunk.js +0 -1
- package/build/pl-json.4d11f53d.chunk.js +0 -1
- package/build/pt-BR-json.6301d49b.chunk.js +0 -1
- package/build/ru-json.28147733.chunk.js +0 -1
- package/build/sa-json.be504091.chunk.js +0 -1
- package/build/sk-json.5b33afc2.chunk.js +0 -1
- package/build/sv-json.cdcac02d.chunk.js +0 -1
- package/build/th-json.3aadaec6.chunk.js +0 -1
- package/build/upload-translation-ca-json.79159984.chunk.js +0 -1
- package/build/upload-translation-de-json.745613c0.chunk.js +0 -1
- package/build/upload-translation-dk-json.cb25dcf0.chunk.js +0 -1
- package/build/upload-translation-en-json.bc79c867.chunk.js +0 -1
- package/build/upload-translation-es-json.1f344b53.chunk.js +0 -1
- package/build/upload-translation-ko-json.9a2c21cb.chunk.js +0 -1
- package/build/upload-translation-pl-json.c1f86b50.chunk.js +0 -1
- package/build/upload.b2cb62bd.chunk.js +0 -7
- package/build/users-email-settings-page.824a3cdb.chunk.js +0 -101
- package/build/users-roles-settings-page.3db986a4.chunk.js +0 -30
- package/build/zh-Hans-json.eac1d90a.chunk.js +0 -1
- package/build/zh-json.96bf6019.chunk.js +0 -1
|
@@ -49,7 +49,7 @@ const sanitizeConditionAttributes = pick(conditionFields);
|
|
|
49
49
|
* @param condition
|
|
50
50
|
* @return {string}
|
|
51
51
|
*/
|
|
52
|
-
const computeConditionId = condition => {
|
|
52
|
+
const computeConditionId = (condition) => {
|
|
53
53
|
const { name, plugin } = condition;
|
|
54
54
|
|
|
55
55
|
if (!plugin) {
|
|
@@ -68,7 +68,7 @@ const computeConditionId = condition => {
|
|
|
68
68
|
* @param {CreateConditionPayload} attrs - Payload used to create a condition
|
|
69
69
|
* @return {CreateConditionPayload}
|
|
70
70
|
*/
|
|
71
|
-
const assignConditionId = attrs => set('id', computeConditionId(attrs), attrs);
|
|
71
|
+
const assignConditionId = (attrs) => set('id', computeConditionId(attrs), attrs);
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* Transform the given attributes into a domain representation of a Condition
|
|
@@ -98,7 +98,7 @@ const deleteProperty = (property, permission) => omit(`properties.${property}`,
|
|
|
98
98
|
* @param {Permission} attributes
|
|
99
99
|
* @return {Permission}
|
|
100
100
|
*/
|
|
101
|
-
const create = attributes => {
|
|
101
|
+
const create = (attributes) => {
|
|
102
102
|
return pipe(pick(permissionFields), merge(getDefaultPermission()))(attributes);
|
|
103
103
|
};
|
|
104
104
|
|
|
@@ -114,7 +114,7 @@ const sanitizeConditions = curry((provider, permission) => {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
return permission.conditions
|
|
117
|
-
.filter(condition => !provider.has(condition))
|
|
117
|
+
.filter((condition) => !provider.has(condition))
|
|
118
118
|
.reduce((perm, condition) => removeCondition(condition, perm), permission);
|
|
119
119
|
});
|
|
120
120
|
|
|
@@ -123,7 +123,7 @@ const sanitizeConditions = curry((provider, permission) => {
|
|
|
123
123
|
* @param {object | object[]} payload - Can either be a single object of attributes or an array of those objects.
|
|
124
124
|
* @return {Permission | Permission[]}
|
|
125
125
|
*/
|
|
126
|
-
const toPermission = payload => (isArray(payload) ? map(create, payload) : create(payload));
|
|
126
|
+
const toPermission = (payload) => (isArray(payload) ? map(create, payload) : create(payload));
|
|
127
127
|
|
|
128
128
|
module.exports = {
|
|
129
129
|
addCondition,
|
package/server/domain/user.js
CHANGED
|
@@ -15,8 +15,8 @@ function createUser(attributes) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const hasSuperAdminRole = user => {
|
|
19
|
-
return user.roles.filter(role => role.code === SUPER_ADMIN_CODE).length > 0;
|
|
18
|
+
const hasSuperAdminRole = (user) => {
|
|
19
|
+
return user.roles.filter((role) => role.code === SUPER_ADMIN_CODE).length > 0;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
module.exports = {
|
|
@@ -7,16 +7,16 @@ const { validateHasPermissionsInput } = require('../validation/policies/hasPermi
|
|
|
7
7
|
const inputModifiers = [
|
|
8
8
|
{
|
|
9
9
|
check: _.isString,
|
|
10
|
-
transform: action => ({ action }),
|
|
10
|
+
transform: (action) => ({ action }),
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
check: _.isArray,
|
|
14
|
-
transform: arr => ({ action: arr[0], subject: arr[1] }),
|
|
14
|
+
transform: (arr) => ({ action: arr[0], subject: arr[1] }),
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
// Has to be after the isArray check since _.isObject also matches arrays
|
|
18
18
|
check: _.isObject,
|
|
19
|
-
transform: perm => perm,
|
|
19
|
+
transform: (perm) => perm,
|
|
20
20
|
},
|
|
21
21
|
];
|
|
22
22
|
|
|
@@ -27,8 +27,8 @@ module.exports = createPolicy({
|
|
|
27
27
|
const { actions } = config;
|
|
28
28
|
const { userAbility: ability } = ctx.state;
|
|
29
29
|
|
|
30
|
-
const permissions = actions.map(action =>
|
|
31
|
-
inputModifiers.find(modifier => modifier.check(action)).transform(action)
|
|
30
|
+
const permissions = actions.map((action) =>
|
|
31
|
+
inputModifiers.find((modifier) => modifier.check(action)).transform(action)
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
const isAuthorized = permissions.every(({ action, subject }) => ability.can(action, subject));
|
|
@@ -72,7 +72,10 @@ module.exports = [
|
|
|
72
72
|
path: '/webhooks/:id/trigger',
|
|
73
73
|
handler: 'webhooks.triggerWebhook',
|
|
74
74
|
config: {
|
|
75
|
-
policies: [
|
|
75
|
+
policies: [
|
|
76
|
+
'admin::isAuthenticatedAdmin',
|
|
77
|
+
{ name: 'admin::hasPermissions', config: { actions: ['admin::webhooks.update'] } },
|
|
78
|
+
],
|
|
76
79
|
},
|
|
77
80
|
},
|
|
78
81
|
];
|
|
@@ -12,7 +12,7 @@ const { AUTHOR_CODE, PUBLISH_ACTION } = require('./constants');
|
|
|
12
12
|
* @param {string|number} roleId
|
|
13
13
|
* @returns {object[]}
|
|
14
14
|
*/
|
|
15
|
-
const getAllowedActionsForRole = async roleId => {
|
|
15
|
+
const getAllowedActionsForRole = async (roleId) => {
|
|
16
16
|
const { actionProvider } = getService('permission');
|
|
17
17
|
|
|
18
18
|
if (!isNil(roleId)) {
|
|
@@ -39,7 +39,7 @@ const exists = async (whereParams = {}) => {
|
|
|
39
39
|
*
|
|
40
40
|
* @returns {string}
|
|
41
41
|
*/
|
|
42
|
-
const hash = accessKey => {
|
|
42
|
+
const hash = (accessKey) => {
|
|
43
43
|
return crypto
|
|
44
44
|
.createHmac('sha512', strapi.config.get('admin.apiToken.salt'))
|
|
45
45
|
.update(accessKey)
|
|
@@ -54,7 +54,7 @@ const hash = accessKey => {
|
|
|
54
54
|
*
|
|
55
55
|
* @returns {Promise<ApiToken>}
|
|
56
56
|
*/
|
|
57
|
-
const create = async attributes => {
|
|
57
|
+
const create = async (attributes) => {
|
|
58
58
|
const accessKey = crypto.randomBytes(128).toString('hex');
|
|
59
59
|
|
|
60
60
|
const apiToken = await strapi.query('admin::api-token').create({
|
|
@@ -106,7 +106,7 @@ const list = async () => {
|
|
|
106
106
|
*
|
|
107
107
|
* @returns {Promise<Omit<ApiToken, 'accessKey'>>}
|
|
108
108
|
*/
|
|
109
|
-
const revoke = async id => {
|
|
109
|
+
const revoke = async (id) => {
|
|
110
110
|
return strapi.query('admin::api-token').delete({ select: SELECT_FIELDS, where: { id } });
|
|
111
111
|
};
|
|
112
112
|
|
|
@@ -115,7 +115,7 @@ const revoke = async id => {
|
|
|
115
115
|
*
|
|
116
116
|
* @returns {Promise<Omit<ApiToken, 'accessKey'>>}
|
|
117
117
|
*/
|
|
118
|
-
const getById = async id => {
|
|
118
|
+
const getById = async (id) => {
|
|
119
119
|
return getBy({ id });
|
|
120
120
|
};
|
|
121
121
|
|
|
@@ -124,7 +124,7 @@ const getById = async id => {
|
|
|
124
124
|
*
|
|
125
125
|
* @returns {Promise<Omit<ApiToken, 'accessKey'>>}
|
|
126
126
|
*/
|
|
127
|
-
const getByName = async name => {
|
|
127
|
+
const getByName = async (name) => {
|
|
128
128
|
return getBy({ name });
|
|
129
129
|
};
|
|
130
130
|
|
package/server/services/auth.js
CHANGED
|
@@ -11,7 +11,7 @@ const { getService } = require('../utils');
|
|
|
11
11
|
* @param {string} password - password to hash
|
|
12
12
|
* @returns {string} hashed password
|
|
13
13
|
*/
|
|
14
|
-
const hashPassword = password => bcrypt.hash(password, 10);
|
|
14
|
+
const hashPassword = (password) => bcrypt.hash(password, 10);
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Validate a password
|
|
@@ -81,7 +81,7 @@ const forgotPassword = async ({ email } = {}) => {
|
|
|
81
81
|
user: _.pick(user, ['email', 'firstname', 'lastname', 'username']),
|
|
82
82
|
}
|
|
83
83
|
)
|
|
84
|
-
.catch(err => {
|
|
84
|
+
.catch((err) => {
|
|
85
85
|
// log error server side but do not disclose it to the user to avoid leaking informations
|
|
86
86
|
strapi.log.error(err);
|
|
87
87
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const { isString } = require('lodash/fp');
|
|
4
4
|
const { getService } = require('../utils');
|
|
5
5
|
|
|
6
|
-
const isValidCondition = condition => {
|
|
6
|
+
const isValidCondition = (condition) => {
|
|
7
7
|
const { conditionProvider } = getService('permission');
|
|
8
8
|
|
|
9
9
|
return isString(condition) && conditionProvider.has(condition);
|
|
@@ -124,7 +124,9 @@ const getPermissionsWithNestedFields = (
|
|
|
124
124
|
{ nestingLevel, restrictedSubjects = [] } = {}
|
|
125
125
|
) => {
|
|
126
126
|
return actions.reduce((permissions, action) => {
|
|
127
|
-
const validSubjects = action.subjects.filter(
|
|
127
|
+
const validSubjects = action.subjects.filter(
|
|
128
|
+
(subject) => !restrictedSubjects.includes(subject)
|
|
129
|
+
);
|
|
128
130
|
|
|
129
131
|
// Create a Permission for each subject (content-type uid) within the action
|
|
130
132
|
for (const subject of validSubjects) {
|
|
@@ -158,7 +160,7 @@ const getPermissionsWithNestedFields = (
|
|
|
158
160
|
const cleanPermissionFields = (permissions, { nestingLevel } = {}) => {
|
|
159
161
|
const { actionProvider } = getService('permission');
|
|
160
162
|
|
|
161
|
-
return permissions.map(permission => {
|
|
163
|
+
return permissions.map((permission) => {
|
|
162
164
|
const {
|
|
163
165
|
action: actionId,
|
|
164
166
|
subject,
|
|
@@ -191,7 +193,7 @@ const cleanPermissionFields = (permissions, { nestingLevel } = {}) => {
|
|
|
191
193
|
const badNestedFields = uniq([...intersection(fields, possibleFields), ...requiredFields]);
|
|
192
194
|
|
|
193
195
|
const newFields = badNestedFields.filter(
|
|
194
|
-
field => !badNestedFields.some(startsWith(`${field}.`))
|
|
196
|
+
(field) => !badNestedFields.some(startsWith(`${field}.`))
|
|
195
197
|
);
|
|
196
198
|
|
|
197
199
|
return permissionDomain.setProperty('fields', newFields, permission);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const { toLower } = require('lodash/fp');
|
|
4
4
|
const { Strategy: LocalStrategy } = require('passport-local');
|
|
5
5
|
|
|
6
|
-
const createLocalStrategy = strapi => {
|
|
6
|
+
const createLocalStrategy = (strapi) => {
|
|
7
7
|
return new LocalStrategy(
|
|
8
8
|
{
|
|
9
9
|
usernameField: 'email',
|
|
@@ -14,7 +14,7 @@ const createLocalStrategy = strapi => {
|
|
|
14
14
|
return strapi.admin.services.auth
|
|
15
15
|
.checkCredentials({ email: toLower(email), password })
|
|
16
16
|
.then(([error, user, message]) => done(error, user, message))
|
|
17
|
-
.catch(error => done(error));
|
|
17
|
+
.catch((error) => done(error));
|
|
18
18
|
}
|
|
19
19
|
);
|
|
20
20
|
};
|
|
@@ -21,9 +21,7 @@ const registerAuthEvents = () => {
|
|
|
21
21
|
const { events = {} } = strapi.config.get('admin.auth', {});
|
|
22
22
|
const { authEventsMapper } = strapi.admin.services.passport;
|
|
23
23
|
|
|
24
|
-
const eventList = Object.entries(events)
|
|
25
|
-
.filter(keyIsValidEventName)
|
|
26
|
-
.filter(valueIsFunctionType);
|
|
24
|
+
const eventList = Object.entries(events).filter(keyIsValidEventName).filter(valueIsFunctionType);
|
|
27
25
|
|
|
28
26
|
for (const [eventName, handler] of eventList) {
|
|
29
27
|
strapi.eventHub.on(authEventsMapper[eventName], handler);
|
|
@@ -33,7 +31,7 @@ const registerAuthEvents = () => {
|
|
|
33
31
|
const init = () => {
|
|
34
32
|
strapi.admin.services.passport
|
|
35
33
|
.getPassportStrategies()
|
|
36
|
-
.forEach(strategy => passport.use(strategy));
|
|
34
|
+
.forEach((strategy) => passport.use(strategy));
|
|
37
35
|
|
|
38
36
|
registerAuthEvents();
|
|
39
37
|
|
|
@@ -18,7 +18,7 @@ const createEngineHooks = () => ({
|
|
|
18
18
|
* @param {Permission} permission
|
|
19
19
|
* @return {{readonly permission: Permission, addCondition(string): this}}
|
|
20
20
|
*/
|
|
21
|
-
const createWillEvaluateContext = permission => ({
|
|
21
|
+
const createWillEvaluateContext = (permission) => ({
|
|
22
22
|
get permission() {
|
|
23
23
|
return cloneDeep(permission);
|
|
24
24
|
},
|
|
@@ -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
|
-
|
|
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 =
|
|
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 =
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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,
|