@webiny/api-aco 0.0.0-unstable.e6f0dc8ca7 → 0.0.0-unstable.e9333b3f0b
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/AcoFeature.d.ts +5 -0
- package/AcoFeature.js +132 -0
- package/AcoFeature.js.map +1 -0
- package/AcoFolderSchemaFactory.d.ts +32 -0
- package/AcoFolderSchemaFactory.js +82 -0
- package/AcoFolderSchemaFactory.js.map +1 -0
- package/constants.js +2 -1
- package/constants.js.map +1 -1
- package/createAcoGraphQL.d.ts +8 -4
- package/createAcoGraphQL.js +56 -97
- package/createAcoGraphQL.js.map +1 -1
- package/domain/folder/abstractions.d.ts +12 -5
- package/domain/folder/abstractions.js +2 -5
- package/domain/folder/abstractions.js.map +1 -1
- package/domain/folder/errors.js +42 -47
- package/domain/folder/errors.js.map +1 -1
- package/domain/folder/folder.model.js +53 -36
- package/domain/folder/folder.model.js.map +1 -1
- package/exports/api/aco/flp.d.ts +1 -0
- package/exports/api/aco/flp.js +1 -2
- package/exports/api/aco/folder.d.ts +2 -1
- package/exports/api/aco/folder.js +5 -7
- package/features/ai/CreateFolderTool.d.ts +51 -0
- package/features/ai/CreateFolderTool.js +65 -0
- package/features/ai/CreateFolderTool.js.map +1 -0
- package/features/ai/CreateTeamTool.d.ts +48 -0
- package/features/ai/CreateTeamTool.js +56 -0
- package/features/ai/CreateTeamTool.js.map +1 -0
- package/features/ai/DeleteFolderTool.d.ts +50 -0
- package/features/ai/DeleteFolderTool.js +62 -0
- package/features/ai/DeleteFolderTool.js.map +1 -0
- package/features/ai/GrantFolderAccessTool.d.ts +79 -0
- package/features/ai/GrantFolderAccessTool.js +87 -0
- package/features/ai/GrantFolderAccessTool.js.map +1 -0
- package/features/ai/ListFoldersTool.d.ts +47 -0
- package/features/ai/ListFoldersTool.js +57 -0
- package/features/ai/ListFoldersTool.js.map +1 -0
- package/features/ai/ListRolesTool.d.ts +39 -0
- package/features/ai/ListRolesTool.js +48 -0
- package/features/ai/ListRolesTool.js.map +1 -0
- package/features/ai/ListTeamsTool.d.ts +39 -0
- package/features/ai/ListTeamsTool.js +48 -0
- package/features/ai/ListTeamsTool.js.map +1 -0
- package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.d.ts +11 -0
- package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.js +37 -0
- package/features/ai/NotifyFolderChange/NotifyFolderChangeUseCase.js.map +1 -0
- package/features/ai/NotifyFolderChange/abstractions.d.ts +20 -0
- package/features/ai/NotifyFolderChange/abstractions.js +8 -0
- package/features/ai/NotifyFolderChange/abstractions.js.map +1 -0
- package/features/ai/NotifyFolderChange/index.d.ts +1 -0
- package/features/ai/NotifyFolderChange/index.js +1 -0
- package/features/ai/RevokeFolderAccessTool.d.ts +65 -0
- package/features/ai/RevokeFolderAccessTool.js +76 -0
- package/features/ai/RevokeFolderAccessTool.js.map +1 -0
- package/features/ai/assertTargetIsUsable.d.ts +10 -0
- package/features/ai/assertTargetIsUsable.js +14 -0
- package/features/ai/assertTargetIsUsable.js.map +1 -0
- package/features/ai/feature.d.ts +12 -0
- package/features/ai/feature.js +27 -0
- package/features/ai/feature.js.map +1 -0
- package/features/ai/index.d.ts +9 -0
- package/features/ai/index.js +9 -0
- package/features/ai/loadFolderPermissions.d.ts +16 -0
- package/features/ai/loadFolderPermissions.js +14 -0
- package/features/ai/loadFolderPermissions.js.map +1 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +27 -31
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js +22 -25
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +27 -31
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +29 -33
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +25 -30
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetEntryWithFlpDecorator.js +25 -30
- package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +31 -35
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +31 -34
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +28 -28
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js +28 -27
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +28 -28
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +28 -28
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +1 -1
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js +37 -51
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +1 -2
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +27 -31
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -1
- package/features/cms/feature.js +19 -25
- package/features/cms/feature.js.map +1 -1
- package/features/cms/index.js +0 -2
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +3 -3
- package/features/flp/CreateFlp/CreateFlpUseCase.js +26 -33
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -1
- package/features/flp/CreateFlp/abstractions.js +2 -5
- package/features/flp/CreateFlp/abstractions.js.map +1 -1
- package/features/flp/CreateFlp/feature.d.ts +1 -6
- package/features/flp/CreateFlp/feature.js +8 -8
- package/features/flp/CreateFlp/feature.js.map +1 -1
- package/features/flp/CreateFlp/index.js +0 -2
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +27 -27
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -1
- package/features/flp/CreateFlpOnFolderCreated/feature.js +6 -5
- package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -1
- package/features/flp/CreateFlpOnFolderCreated/index.js +0 -2
- package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +3 -3
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +17 -18
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -1
- package/features/flp/DeleteFlp/abstractions.js +2 -5
- package/features/flp/DeleteFlp/abstractions.js.map +1 -1
- package/features/flp/DeleteFlp/feature.d.ts +1 -6
- package/features/flp/DeleteFlp/feature.js +8 -8
- package/features/flp/DeleteFlp/feature.js.map +1 -1
- package/features/flp/DeleteFlp/index.js +0 -2
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +27 -27
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -1
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js +6 -5
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -1
- package/features/flp/DeleteFlpOnFolderDeleted/index.js +0 -2
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +3 -3
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +88 -109
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.d.ts +25 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js +48 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/abstractions.js +2 -2
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/feature.js +6 -5
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -1
- package/features/flp/FolderLevelPermissions/index.d.ts +1 -0
- package/features/flp/FolderLevelPermissions/index.js +1 -2
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +14 -36
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +12 -29
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +5 -4
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +5 -4
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +43 -66
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +10 -9
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +22 -33
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +0 -3
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +0 -2
- package/features/flp/FolderLevelPermissions/useCases/index.js +0 -2
- package/features/flp/GetFlp/GetFlpUseCase.js +8 -7
- package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -1
- package/features/flp/GetFlp/abstractions.js +2 -2
- package/features/flp/GetFlp/abstractions.js.map +1 -1
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.d.ts +13 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js +26 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +1 -1
- package/features/flp/GetFlp/feature.js +8 -8
- package/features/flp/GetFlp/feature.js.map +1 -1
- package/features/flp/GetFlp/index.js +0 -2
- package/features/flp/ListFlps/ListFlpsUseCase.js +8 -7
- package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -1
- package/features/flp/ListFlps/abstractions.js +2 -2
- package/features/flp/ListFlps/abstractions.js.map +1 -1
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.d.ts +13 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js +27 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +1 -1
- package/features/flp/ListFlps/feature.js +8 -8
- package/features/flp/ListFlps/feature.js.map +1 -1
- package/features/flp/ListFlps/index.js +0 -2
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +15 -8
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +130 -186
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -1
- package/features/flp/UpdateFlp/abstractions.d.ts +6 -2
- package/features/flp/UpdateFlp/abstractions.js +2 -5
- package/features/flp/UpdateFlp/abstractions.js.map +1 -1
- package/features/flp/UpdateFlp/feature.d.ts +1 -6
- package/features/flp/UpdateFlp/feature.js +12 -8
- package/features/flp/UpdateFlp/feature.js.map +1 -1
- package/features/flp/UpdateFlp/index.js +0 -2
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +29 -29
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -1
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js +6 -5
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -1
- package/features/flp/UpdateFlpOnFolderUpdated/index.js +0 -2
- package/features/flp/shared/CodeFlpMerger.d.ts +26 -0
- package/features/flp/shared/CodeFlpMerger.js +20 -0
- package/features/flp/shared/CodeFlpMerger.js.map +1 -0
- package/features/flp/shared/CodeFlpPath.d.ts +15 -0
- package/features/flp/shared/CodeFlpPath.js +29 -0
- package/features/flp/shared/CodeFlpPath.js.map +1 -0
- package/features/flp/shared/CodeFlpTarget.d.ts +10 -0
- package/features/flp/shared/CodeFlpTarget.js +26 -0
- package/features/flp/shared/CodeFlpTarget.js.map +1 -0
- package/features/flp/shared/CodeFlpsProvider.d.ts +14 -0
- package/features/flp/shared/CodeFlpsProvider.js +33 -0
- package/features/flp/shared/CodeFlpsProvider.js.map +1 -0
- package/features/flp/shared/abstractions.d.ts +77 -0
- package/features/flp/shared/abstractions.js +19 -0
- package/features/flp/shared/abstractions.js.map +1 -0
- package/features/flp/shared/feature.d.ts +5 -0
- package/features/flp/shared/feature.js +17 -0
- package/features/flp/shared/feature.js.map +1 -0
- package/features/flp/shared/index.d.ts +4 -0
- package/features/flp/shared/index.js +4 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +3 -3
- package/features/folder/CreateFolder/CreateFolderRepository.js +71 -91
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -1
- package/features/folder/CreateFolder/CreateFolderUseCase.js +27 -30
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -1
- package/features/folder/CreateFolder/abstractions.js +5 -22
- package/features/folder/CreateFolder/abstractions.js.map +1 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +9 -1
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +45 -33
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/CreateFolder/events.js +16 -14
- package/features/folder/CreateFolder/events.js.map +1 -1
- package/features/folder/CreateFolder/feature.js +8 -7
- package/features/folder/CreateFolder/feature.js.map +1 -1
- package/features/folder/CreateFolder/index.js +1 -3
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +3 -3
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +24 -21
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -1
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js +35 -43
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -1
- package/features/folder/DeleteFolder/abstractions.js +5 -22
- package/features/folder/DeleteFolder/abstractions.js.map +1 -1
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +1 -1
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +21 -20
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/DeleteFolder/events.js +16 -14
- package/features/folder/DeleteFolder/events.js.map +1 -1
- package/features/folder/DeleteFolder/feature.js +8 -7
- package/features/folder/DeleteFolder/feature.js.map +1 -1
- package/features/folder/DeleteFolder/index.js +1 -3
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +47 -44
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +2 -2
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/feature.js +6 -5
- package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -1
- package/features/folder/EnsureFolderIsEmpty/index.js +0 -2
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +16 -20
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +6 -12
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +0 -2
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +40 -44
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +6 -5
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +0 -2
- package/features/folder/FolderModelProvider.d.ts +26 -0
- package/features/folder/FolderModelProvider.js +22 -0
- package/features/folder/FolderModelProvider.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +3 -3
- package/features/folder/GetAncestors/GetAncestorsRepository.js +47 -76
- package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -1
- package/features/folder/GetAncestors/GetAncestorsUseCase.js +14 -11
- package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -1
- package/features/folder/GetAncestors/abstractions.js +3 -14
- package/features/folder/GetAncestors/abstractions.js.map +1 -1
- package/features/folder/GetAncestors/feature.js +7 -6
- package/features/folder/GetAncestors/feature.js.map +1 -1
- package/features/folder/GetAncestors/index.js +0 -2
- package/features/folder/GetFolder/GetFolderRepository.d.ts +3 -3
- package/features/folder/GetFolder/GetFolderRepository.js +23 -20
- package/features/folder/GetFolder/GetFolderRepository.js.map +1 -1
- package/features/folder/GetFolder/GetFolderUseCase.js +14 -11
- package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -1
- package/features/folder/GetFolder/abstractions.js +5 -21
- package/features/folder/GetFolder/abstractions.js.map +1 -1
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +8 -8
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +23 -26
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/GetFolder/feature.js +8 -7
- package/features/folder/GetFolder/feature.js.map +1 -1
- package/features/folder/GetFolder/index.js +0 -2
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +3 -3
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +70 -87
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +14 -11
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
- package/features/folder/GetFolderHierarchy/abstractions.js +3 -14
- package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -1
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +55 -56
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/GetFolderHierarchy/feature.js +8 -7
- package/features/folder/GetFolderHierarchy/feature.js.map +1 -1
- package/features/folder/GetFolderHierarchy/index.js +0 -2
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +65 -58
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +2 -5
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js +6 -5
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -1
- package/features/folder/ListFolderLevelPermissionsTargets/index.js +0 -2
- package/features/folder/ListFolders/ListFoldersRepository.d.ts +3 -3
- package/features/folder/ListFolders/ListFoldersRepository.js +41 -42
- package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -1
- package/features/folder/ListFolders/ListFoldersUseCase.js +14 -11
- package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -1
- package/features/folder/ListFolders/abstractions.js +3 -14
- package/features/folder/ListFolders/abstractions.js.map +1 -1
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +55 -67
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/ListFolders/feature.js +8 -7
- package/features/folder/ListFolders/feature.js.map +1 -1
- package/features/folder/ListFolders/index.js +0 -2
- package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +3 -3
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +70 -93
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -1
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js +38 -45
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -1
- package/features/folder/UpdateFolder/abstractions.js +5 -22
- package/features/folder/UpdateFolder/abstractions.js.map +1 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +14 -1
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +91 -62
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
- package/features/folder/UpdateFolder/events.js +16 -14
- package/features/folder/UpdateFolder/events.js.map +1 -1
- package/features/folder/UpdateFolder/feature.js +8 -7
- package/features/folder/UpdateFolder/feature.js.map +1 -1
- package/features/folder/UpdateFolder/index.js +0 -2
- package/features/folder/shared/EntryToFolderMapper.js +20 -19
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -1
- package/features/folder/shared/abstractions.d.ts +14 -0
- package/features/folder/shared/abstractions.js +5 -2
- package/features/folder/shared/abstractions.js.map +1 -1
- package/filter/filter.crud.js +28 -31
- package/filter/filter.crud.js.map +1 -1
- package/filter/filter.gql.d.ts +2 -3
- package/filter/filter.gql.js +72 -54
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js +45 -35
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.d.ts +8 -2
- package/filter/filter.so.js +85 -93
- package/filter/filter.so.js.map +1 -1
- package/filter/filter.types.js +5 -4
- package/filter/filter.types.js.map +1 -1
- package/flp/flp.crud.js +69 -86
- package/flp/flp.crud.js.map +1 -1
- package/flp/flp.types.d.ts +2 -1
- package/flp/flp.types.js +0 -3
- package/flp/index.d.ts +0 -1
- package/flp/index.js +0 -3
- package/flp/tasks/createFlp.task.d.ts +14 -8
- package/flp/tasks/createFlp.task.js +37 -28
- package/flp/tasks/createFlp.task.js.map +1 -1
- package/flp/tasks/deleteFlp.task.d.ts +14 -8
- package/flp/tasks/deleteFlp.task.js +37 -28
- package/flp/tasks/deleteFlp.task.js.map +1 -1
- package/flp/tasks/index.d.ts +0 -1
- package/flp/tasks/index.js +5 -17
- package/flp/tasks/index.js.map +1 -1
- package/flp/tasks/syncFlp.task.d.ts +14 -8
- package/flp/tasks/syncFlp.task.js +107 -114
- package/flp/tasks/syncFlp.task.js.map +1 -1
- package/flp/tasks/updateFlp.task.d.ts +14 -8
- package/flp/tasks/updateFlp.task.js +48 -33
- package/flp/tasks/updateFlp.task.js.map +1 -1
- package/folder/createFolderModelModifier.js +50 -50
- package/folder/createFolderModelModifier.js.map +1 -1
- package/folder/createFolderTypeDefs.js +43 -51
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/folder.gql.d.ts +1 -1
- package/folder/folder.gql.js +109 -136
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.js +0 -3
- package/index.d.ts +1 -6
- package/index.js +2 -9
- package/package.json +30 -29
- package/types.d.ts +1 -1
- package/types.js +5 -4
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.js +20 -19
- package/utils/FoldersCacheFactory.js.map +1 -1
- package/utils/ListCache.js +20 -19
- package/utils/ListCache.js.map +1 -1
- package/utils/Path.js +5 -6
- package/utils/Path.js.map +1 -1
- package/utils/compress.js +8 -7
- package/utils/compress.js.map +1 -1
- package/utils/createListSort.js +4 -7
- package/utils/createListSort.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +5 -2
- package/utils/createOperationsWrapper.js +12 -19
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.js +169 -196
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/decorators/FilterEntriesByFolderFactory.js +18 -19
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
- package/utils/decorators/ListEntriesFactory.js +65 -98
- package/utils/decorators/ListEntriesFactory.js.map +1 -1
- package/utils/decorators/hasRootFolderId.js +6 -12
- package/utils/decorators/hasRootFolderId.js.map +1 -1
- package/utils/decorators/isPageModel.js +5 -10
- package/utils/decorators/isPageModel.js.map +1 -1
- package/utils/ensureAuthentication.js +6 -7
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/pickEntryFieldValues.js +24 -18
- package/utils/pickEntryFieldValues.js.map +1 -1
- package/utils/resolve.d.ts +2 -2
- package/utils/resolve.js +8 -7
- package/utils/resolve.js.map +1 -1
- package/createAcoContext.d.ts +0 -9
- package/createAcoContext.js +0 -137
- package/createAcoContext.js.map +0 -1
- package/createAcoStorageOperations.d.ts +0 -12
- package/createAcoStorageOperations.js +0 -10
- package/createAcoStorageOperations.js.map +0 -1
- package/createAcoTasks.d.ts +0 -1
- package/createAcoTasks.js +0 -15
- package/createAcoTasks.js.map +0 -1
- package/exports/api/aco/flp.js.map +0 -1
- package/exports/api/aco/folder.js.map +0 -1
- package/features/cms/index.js.map +0 -1
- package/features/flp/CreateFlp/index.js.map +0 -1
- package/features/flp/CreateFlpOnFolderCreated/index.js.map +0 -1
- package/features/flp/DeleteFlp/index.js.map +0 -1
- package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +0 -1
- package/features/flp/FolderLevelPermissions/useCases/index.js.map +0 -1
- package/features/flp/GetFlp/index.js.map +0 -1
- package/features/flp/ListFlps/index.js.map +0 -1
- package/features/flp/UpdateFlp/index.js.map +0 -1
- package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +0 -1
- package/features/folder/CreateFolder/index.js.map +0 -1
- package/features/folder/DeleteFolder/index.js.map +0 -1
- package/features/folder/EnsureFolderIsEmpty/index.js.map +0 -1
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +0 -1
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +0 -1
- package/features/folder/GetAncestors/index.js.map +0 -1
- package/features/folder/GetFolder/index.js.map +0 -1
- package/features/folder/GetFolderHierarchy/index.js.map +0 -1
- package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +0 -1
- package/features/folder/ListFolders/index.js.map +0 -1
- package/features/folder/UpdateFolder/index.js.map +0 -1
- package/flp/flp.so.d.ts +0 -20
- package/flp/flp.so.js +0 -220
- package/flp/flp.so.js.map +0 -1
- package/flp/flp.types.js.map +0 -1
- package/flp/index.js.map +0 -1
- package/folder/folder.types.js.map +0 -1
- package/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { DeleteEntryRevisionUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntryRevision/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass DeleteEntryRevisionWithFlpDecoratorImpl implements DeleteEntryRevisionUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: DeleteEntryRevisionUseCase.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n revisionId: string\n ): ReturnType<DeleteEntryRevisionUseCase.Interface[\"execute\"]> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, revisionId);\n }\n\n const entryResult = await this.getRevisionById.execute(model, revisionId);\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, revisionId);\n }\n\n const entry = entryResult.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, revisionId);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, revisionId);\n }\n}\n\nexport const DeleteEntryRevisionWithFlpDecorator = createDecorator({\n abstraction: DeleteEntryRevisionUseCase,\n decorator: DeleteEntryRevisionWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"names":["DeleteEntryRevisionWithFlpDecoratorImpl","folderLevelPermissions","getRevisionById","decoratee","model","revisionId","entryResult","entry","folderId","ROOT_FOLDER","permissions","canAccessFolder","Result","EntryNotAuthorizedError","DeleteEntryRevisionWithFlpDecorator","createDecorator","DeleteEntryRevisionUseCase","FolderLevelPermissions","GetRevisionByIdUseCase"],"mappings":";;;;;;AAQA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,eAAiD,EACjDC,SAA+C,CACzD;aAHUF,sBAAsB,GAAtBA;aACAC,eAAe,GAAfA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,UAAkB,EACyC;QAC3D,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACD,OAAOC;QAGzC,MAAMC,cAAc,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAACF,OAAOC;QAC9D,IAAIC,YAAY,MAAM,IAClB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF,OAAOC;QAGzC,MAAME,QAAQD,YAAY,KAAK;QAC/B,MAAME,WAAWD,OAAO,UAAU;QAElC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACL,OAAOC;QAGzC,MAAMK,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;QAChF,MAAMG,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;YAC7ED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACT,OAAOC;IACzC;AACJ;AAEO,MAAMS,sCAAsCC,gBAAgB;IAC/D,aAAaC;IACb,WAAWhB;IACX,cAAc;QAACiB;QAAwBC;KAAuB;AAClE"}
|
|
@@ -1,45 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js";
|
|
3
3
|
import { GetLatestRevisionByEntryIdBaseUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js";
|
|
4
4
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
5
|
import { ROOT_FOLDER } from "../../../constants.js";
|
|
6
6
|
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
7
7
|
class DeleteEntryWithFlpDecoratorImpl {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
async execute(model, id, options) {
|
|
14
|
-
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
15
|
-
return this.decoratee.execute(model, id, options);
|
|
8
|
+
constructor(folderLevelPermissions, getLatestRevisionByEntryId, decoratee){
|
|
9
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
10
|
+
this.getLatestRevisionByEntryId = getLatestRevisionByEntryId;
|
|
11
|
+
this.decoratee = decoratee;
|
|
16
12
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
async execute(model, id, options) {
|
|
14
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return this.decoratee.execute(model, id, options);
|
|
15
|
+
const entryResult = await this.getLatestRevisionByEntryId.execute(model, {
|
|
16
|
+
id
|
|
17
|
+
});
|
|
18
|
+
if (entryResult.isFail()) return this.decoratee.execute(model, id, options);
|
|
19
|
+
const entry = entryResult.value;
|
|
20
|
+
const folderId = entry?.location?.folderId;
|
|
21
|
+
if (!folderId || folderId === ROOT_FOLDER) return this.decoratee.execute(model, id, options);
|
|
22
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
23
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
24
|
+
permissions,
|
|
25
|
+
rwd: "d"
|
|
26
|
+
});
|
|
27
|
+
if (!canAccessFolder) return Result.fail(new EntryNotAuthorizedError());
|
|
28
|
+
return this.decoratee.execute(model, id, options);
|
|
22
29
|
}
|
|
23
|
-
const entry = entryResult.value;
|
|
24
|
-
const folderId = entry?.location?.folderId;
|
|
25
|
-
if (!folderId || folderId === ROOT_FOLDER) {
|
|
26
|
-
return this.decoratee.execute(model, id, options);
|
|
27
|
-
}
|
|
28
|
-
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
29
|
-
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
30
|
-
permissions,
|
|
31
|
-
rwd: "d"
|
|
32
|
-
});
|
|
33
|
-
if (!canAccessFolder) {
|
|
34
|
-
return Result.fail(new EntryNotAuthorizedError());
|
|
35
|
-
}
|
|
36
|
-
return this.decoratee.execute(model, id, options);
|
|
37
|
-
}
|
|
38
30
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
const DeleteEntryWithFlpDecorator = createDecorator({
|
|
32
|
+
abstraction: DeleteEntryUseCase,
|
|
33
|
+
decorator: DeleteEntryWithFlpDecoratorImpl,
|
|
34
|
+
dependencies: [
|
|
35
|
+
FolderLevelPermissions,
|
|
36
|
+
GetLatestRevisionByEntryIdBaseUseCase
|
|
37
|
+
]
|
|
43
38
|
});
|
|
39
|
+
export { DeleteEntryWithFlpDecorator };
|
|
44
40
|
|
|
45
41
|
//# sourceMappingURL=DeleteEntryWithFlpDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/cms/decorators/DeleteEntryWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/DeleteEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js\";\nimport { GetLatestRevisionByEntryIdBaseUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js\";\nimport type { CmsModel, CmsDeleteEntryOptions } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass DeleteEntryWithFlpDecoratorImpl implements DeleteEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getLatestRevisionByEntryId: GetLatestRevisionByEntryIdBaseUseCase.Interface,\n private decoratee: DeleteEntryUseCase.Interface\n ) {}\n\n async execute(\n model: CmsModel,\n id: string,\n options?: CmsDeleteEntryOptions\n ): ReturnType<DeleteEntryUseCase.Interface[\"execute\"]> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, id, options);\n }\n\n const entryResult = await this.getLatestRevisionByEntryId.execute(model, { id });\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, id, options);\n }\n\n const entry = entryResult.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, id, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"d\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, id, options);\n }\n}\n\nexport const DeleteEntryWithFlpDecorator = createDecorator({\n abstraction: DeleteEntryUseCase,\n decorator: DeleteEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetLatestRevisionByEntryIdBaseUseCase]\n});\n"],"names":["DeleteEntryWithFlpDecoratorImpl","folderLevelPermissions","getLatestRevisionByEntryId","decoratee","model","id","options","entryResult","entry","folderId","ROOT_FOLDER","permissions","canAccessFolder","Result","EntryNotAuthorizedError","DeleteEntryWithFlpDecorator","createDecorator","DeleteEntryUseCase","FolderLevelPermissions","GetLatestRevisionByEntryIdBaseUseCase"],"mappings":";;;;;;AAQA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,0BAA2E,EAC3EC,SAAuC,CACjD;aAHUF,sBAAsB,GAAtBA;aACAC,0BAA0B,GAA1BA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,EAAU,EACVC,OAA+B,EACoB;QACnD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF,OAAOC,IAAIC;QAG7C,MAAMC,cAAc,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAACH,OAAO;YAAEC;QAAG;QAC9E,IAAIE,YAAY,MAAM,IAClB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACH,OAAOC,IAAIC;QAG7C,MAAME,QAAQD,YAAY,KAAK;QAC/B,MAAME,WAAWD,OAAO,UAAU;QAElC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACN,OAAOC,IAAIC;QAG7C,MAAMK,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;QAChF,MAAMG,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;YAC7ED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACV,OAAOC,IAAIC;IAC7C;AACJ;AAEO,MAAMS,8BAA8BC,gBAAgB;IACvD,aAAaC;IACb,WAAWjB;IACX,cAAc;QAACkB;QAAwBC;KAAsC;AACjF"}
|
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
2
2
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
|
|
3
3
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
4
4
|
import { ROOT_FOLDER } from "../../../constants.js";
|
|
5
5
|
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
6
6
|
class GetEntryByIdWithFlpDecoratorImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
async execute(model, id) {
|
|
12
|
-
const result = await this.decoratee.execute(model, id);
|
|
13
|
-
if (result.isFail()) {
|
|
14
|
-
return result;
|
|
7
|
+
constructor(folderLevelPermissions, decoratee){
|
|
8
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
9
|
+
this.decoratee = decoratee;
|
|
15
10
|
}
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
async execute(model, id) {
|
|
12
|
+
const result = await this.decoratee.execute(model, id);
|
|
13
|
+
if (result.isFail()) return result;
|
|
14
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return result;
|
|
15
|
+
const entry = result.value;
|
|
16
|
+
const folderId = entry?.location?.folderId;
|
|
17
|
+
if (!folderId || folderId === ROOT_FOLDER) return result;
|
|
18
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
19
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
20
|
+
permissions,
|
|
21
|
+
rwd: "r"
|
|
22
|
+
});
|
|
23
|
+
if (!canAccessFolder) return Result.fail(new EntryNotAuthorizedError());
|
|
24
|
+
return result;
|
|
18
25
|
}
|
|
19
|
-
const entry = result.value;
|
|
20
|
-
const folderId = entry?.location?.folderId;
|
|
21
|
-
if (!folderId || folderId === ROOT_FOLDER) {
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
25
|
-
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
26
|
-
permissions,
|
|
27
|
-
rwd: "r"
|
|
28
|
-
});
|
|
29
|
-
if (!canAccessFolder) {
|
|
30
|
-
return Result.fail(new EntryNotAuthorizedError());
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
26
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
const GetEntryByIdWithFlpDecorator = createDecorator({
|
|
28
|
+
abstraction: GetEntryByIdUseCase,
|
|
29
|
+
decorator: GetEntryByIdWithFlpDecoratorImpl,
|
|
30
|
+
dependencies: [
|
|
31
|
+
FolderLevelPermissions
|
|
32
|
+
]
|
|
39
33
|
});
|
|
34
|
+
export { GetEntryByIdWithFlpDecorator };
|
|
40
35
|
|
|
41
36
|
//# sourceMappingURL=GetEntryByIdWithFlpDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/cms/decorators/GetEntryByIdWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/GetEntryByIdWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js\";\nimport type { CmsModel, CmsEntryValues, CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors.js\";\n\nclass GetEntryByIdWithFlpDecoratorImpl implements GetEntryByIdUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetEntryByIdUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n id: string\n ): Promise<Result<CmsEntry<T>, GetEntryByIdUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, id);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entry = result.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return result;\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetEntryByIdWithFlpDecorator = createDecorator({\n abstraction: GetEntryByIdUseCase,\n decorator: GetEntryByIdWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetEntryByIdWithFlpDecoratorImpl","folderLevelPermissions","decoratee","model","id","result","entry","folderId","ROOT_FOLDER","permissions","canAccessFolder","Result","EntryNotAuthorizedError","GetEntryByIdWithFlpDecorator","createDecorator","GetEntryByIdUseCase","FolderLevelPermissions"],"mappings":";;;;;AAOA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,SAAwC,CAClD;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,EAAU,EAC6C;QACvD,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC;QAEtD,IAAIC,OAAO,MAAM,IACb,OAAOA;QAGX,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAOA;QAGX,MAAMC,QAAQD,OAAO,KAAK;QAC1B,MAAME,WAAWD,OAAO,UAAU;QAElC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOH;QAGX,MAAMI,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;QAChF,MAAMG,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;YAC7ED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,OAAOP;IACX;AACJ;AAEO,MAAMQ,+BAA+BC,gBAAgB;IACxD,aAAaC;IACb,WAAWf;IACX,cAAc;QAACgB;KAAuB;AAC1C"}
|
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
2
2
|
import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js";
|
|
3
3
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
4
4
|
import { ROOT_FOLDER } from "../../../constants.js";
|
|
5
5
|
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors";
|
|
6
6
|
class GetEntryWithFlpDecoratorImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
async execute(model, params) {
|
|
12
|
-
const result = await this.decoratee.execute(model, params);
|
|
13
|
-
if (result.isFail()) {
|
|
14
|
-
return result;
|
|
7
|
+
constructor(folderLevelPermissions, decoratee){
|
|
8
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
9
|
+
this.decoratee = decoratee;
|
|
15
10
|
}
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
async execute(model, params) {
|
|
12
|
+
const result = await this.decoratee.execute(model, params);
|
|
13
|
+
if (result.isFail()) return result;
|
|
14
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return result;
|
|
15
|
+
const entry = result.value;
|
|
16
|
+
const folderId = entry?.location?.folderId;
|
|
17
|
+
if (!folderId || folderId === ROOT_FOLDER) return result;
|
|
18
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
19
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
20
|
+
permissions,
|
|
21
|
+
rwd: "r"
|
|
22
|
+
});
|
|
23
|
+
if (!canAccessFolder) return Result.fail(new EntryNotAuthorizedError());
|
|
24
|
+
return result;
|
|
18
25
|
}
|
|
19
|
-
const entry = result.value;
|
|
20
|
-
const folderId = entry?.location?.folderId;
|
|
21
|
-
if (!folderId || folderId === ROOT_FOLDER) {
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
25
|
-
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
26
|
-
permissions,
|
|
27
|
-
rwd: "r"
|
|
28
|
-
});
|
|
29
|
-
if (!canAccessFolder) {
|
|
30
|
-
return Result.fail(new EntryNotAuthorizedError());
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
26
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
const GetEntryWithFlpDecorator = createDecorator({
|
|
28
|
+
abstraction: GetEntryUseCase,
|
|
29
|
+
decorator: GetEntryWithFlpDecoratorImpl,
|
|
30
|
+
dependencies: [
|
|
31
|
+
FolderLevelPermissions
|
|
32
|
+
]
|
|
39
33
|
});
|
|
34
|
+
export { GetEntryWithFlpDecorator };
|
|
40
35
|
|
|
41
36
|
//# sourceMappingURL=GetEntryWithFlpDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/cms/decorators/GetEntryWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/GetEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js\";\nimport type {\n CmsModel,\n CmsEntryGetParams,\n CmsEntryValues,\n CmsEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\nimport { EntryNotAuthorizedError } from \"@webiny/api-headless-cms/domain/contentEntry/errors\";\n\nclass GetEntryWithFlpDecoratorImpl implements GetEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetEntryUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryGetParams\n ): Promise<Result<CmsEntry<T>, GetEntryUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, params);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entry = result.value;\n const folderId = entry?.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return result;\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetEntryWithFlpDecorator = createDecorator({\n abstraction: GetEntryUseCase,\n decorator: GetEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetEntryWithFlpDecoratorImpl","folderLevelPermissions","decoratee","model","params","result","entry","folderId","ROOT_FOLDER","permissions","canAccessFolder","Result","EntryNotAuthorizedError","GetEntryWithFlpDecorator","createDecorator","GetEntryUseCase","FolderLevelPermissions"],"mappings":";;;;;AAYA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,SAAoC,CAC9C;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,MAAyB,EAC0B;QACnD,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC;QAEtD,IAAIC,OAAO,MAAM,IACb,OAAOA;QAGX,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAOA;QAGX,MAAMC,QAAQD,OAAO,KAAK;QAC1B,MAAME,WAAWD,OAAO,UAAU;QAElC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOH;QAGX,MAAMI,cAAc,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;QAChF,MAAMG,kBAAkB,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;YAC7ED;YACA,KAAK;QACT;QAEA,IAAI,CAACC,iBACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,OAAOP;IACX;AACJ;AAEO,MAAMQ,2BAA2BC,gBAAgB;IACpD,aAAaC;IACb,WAAWf;IACX,cAAc;QAACgB;KAAuB;AAC1C"}
|
|
@@ -1,45 +1,41 @@
|
|
|
1
|
-
import { createDecorator } from "@webiny/feature/api";
|
|
2
|
-
import { Result } from "@webiny/feature/api";
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
3
2
|
import { GetLatestEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js";
|
|
4
3
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
4
|
import { ROOT_FOLDER } from "../../../constants.js";
|
|
6
5
|
class GetLatestEntriesByIdsWithFlpDecoratorImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
async execute(model, ids) {
|
|
12
|
-
const result = await this.decoratee.execute(model, ids);
|
|
13
|
-
if (result.isFail()) {
|
|
14
|
-
return result;
|
|
6
|
+
constructor(folderLevelPermissions, decoratee){
|
|
7
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
8
|
+
this.decoratee = decoratee;
|
|
15
9
|
}
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
async execute(model, ids) {
|
|
11
|
+
const result = await this.decoratee.execute(model, ids);
|
|
12
|
+
if (result.isFail()) return result;
|
|
13
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return result;
|
|
14
|
+
const entries = result.value;
|
|
15
|
+
const filteredEntries = await this.filterEntriesByFolder(entries);
|
|
16
|
+
return Result.ok(filteredEntries);
|
|
17
|
+
}
|
|
18
|
+
async filterEntriesByFolder(entries) {
|
|
19
|
+
const results = await Promise.all(entries.map(async (entry)=>{
|
|
20
|
+
const folderId = entry.location?.folderId;
|
|
21
|
+
if (!folderId || folderId === ROOT_FOLDER) return entry;
|
|
22
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
23
|
+
const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
|
|
24
|
+
permissions,
|
|
25
|
+
rwd: "r"
|
|
26
|
+
});
|
|
27
|
+
return canAccess ? entry : null;
|
|
28
|
+
}));
|
|
29
|
+
return results.filter((entry)=>!!entry);
|
|
18
30
|
}
|
|
19
|
-
const entries = result.value;
|
|
20
|
-
const filteredEntries = await this.filterEntriesByFolder(entries);
|
|
21
|
-
return Result.ok(filteredEntries);
|
|
22
|
-
}
|
|
23
|
-
async filterEntriesByFolder(entries) {
|
|
24
|
-
const results = await Promise.all(entries.map(async entry => {
|
|
25
|
-
const folderId = entry.location?.folderId;
|
|
26
|
-
if (!folderId || folderId === ROOT_FOLDER) {
|
|
27
|
-
return entry;
|
|
28
|
-
}
|
|
29
|
-
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
30
|
-
const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
|
|
31
|
-
permissions,
|
|
32
|
-
rwd: "r"
|
|
33
|
-
});
|
|
34
|
-
return canAccess ? entry : null;
|
|
35
|
-
}));
|
|
36
|
-
return results.filter(entry => !!entry);
|
|
37
|
-
}
|
|
38
31
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
const GetLatestEntriesByIdsWithFlpDecorator = createDecorator({
|
|
33
|
+
abstraction: GetLatestEntriesByIdsUseCase,
|
|
34
|
+
decorator: GetLatestEntriesByIdsWithFlpDecoratorImpl,
|
|
35
|
+
dependencies: [
|
|
36
|
+
FolderLevelPermissions
|
|
37
|
+
]
|
|
43
38
|
});
|
|
39
|
+
export { GetLatestEntriesByIdsWithFlpDecorator };
|
|
44
40
|
|
|
45
41
|
//# sourceMappingURL=GetLatestEntriesByIdsWithFlpDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { GetLatestEntriesByIdsUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js\";\nimport type { CmsModel, CmsEntryValues, CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetLatestEntriesByIdsWithFlpDecoratorImpl implements GetLatestEntriesByIdsUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetLatestEntriesByIdsUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], GetLatestEntriesByIdsUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, ids);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entries = result.value;\n const filteredEntries = await this.filterEntriesByFolder<T>(entries);\n\n return Result.ok(filteredEntries);\n }\n\n private async filterEntriesByFolder<T extends CmsEntryValues = CmsEntryValues>(\n entries: CmsEntry<T>[]\n ): Promise<CmsEntry<T>[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccess = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccess ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry<T> => !!entry);\n }\n}\n\nexport const GetLatestEntriesByIdsWithFlpDecorator = createDecorator({\n abstraction: GetLatestEntriesByIdsUseCase,\n decorator: GetLatestEntriesByIdsWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetLatestEntriesByIdsWithFlpDecoratorImpl","folderLevelPermissions","decoratee","model","ids","result","entries","filteredEntries","Result","results","Promise","entry","folderId","ROOT_FOLDER","permissions","canAccess","GetLatestEntriesByIdsWithFlpDecorator","createDecorator","GetLatestEntriesByIdsUseCase","FolderLevelPermissions"],"mappings":";;;;AAOA,MAAMA;IACF,YACYC,sBAAwD,EACxDC,SAAiD,CAC3D;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,GAAa,EACqD;QAClE,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC;QAEtD,IAAIC,OAAO,MAAM,IACb,OAAOA;QAGX,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAOA;QAGX,MAAMC,UAAUD,OAAO,KAAK;QAC5B,MAAME,kBAAkB,MAAM,IAAI,CAAC,qBAAqB,CAAID;QAE5D,OAAOE,OAAO,EAAE,CAACD;IACrB;IAEA,MAAc,sBACVD,OAAsB,EACA;QACtB,MAAMG,UAAU,MAAMC,QAAQ,GAAG,CAC7BJ,QAAQ,GAAG,CAAC,OAAMK;YACd,MAAMC,WAAWD,MAAM,QAAQ,EAAE;YACjC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAGX,MAAMG,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;YAChE,MAAMG,YAAY,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBACvED;gBACA,KAAK;YACT;YACA,OAAOC,YAAYJ,QAAQ;QAC/B;QAGJ,OAAOF,QAAQ,MAAM,CAAC,CAACE,QAAgC,CAAC,CAACA;IAC7D;AACJ;AAEO,MAAMK,wCAAwCC,gBAAgB;IACjE,aAAaC;IACb,WAAWlB;IACX,cAAc;QAACmB;KAAuB;AAC1C"}
|
|
@@ -1,44 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
2
2
|
import { GetPublishedEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js";
|
|
3
3
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
4
4
|
import { ROOT_FOLDER } from "../../../constants.js";
|
|
5
5
|
class GetPublishedEntriesByIdsWithFlpDecoratorImpl {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
async execute(model, ids) {
|
|
11
|
-
const result = await this.decoratee.execute(model, ids);
|
|
12
|
-
if (result.isFail()) {
|
|
13
|
-
return result;
|
|
6
|
+
constructor(folderLevelPermissions, decoratee){
|
|
7
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
8
|
+
this.decoratee = decoratee;
|
|
14
9
|
}
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
async execute(model, ids) {
|
|
11
|
+
const result = await this.decoratee.execute(model, ids);
|
|
12
|
+
if (result.isFail()) return result;
|
|
13
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) return result;
|
|
14
|
+
const entries = result.value;
|
|
15
|
+
const filteredEntries = await this.filterEntriesByFolder(entries);
|
|
16
|
+
return Result.ok(filteredEntries);
|
|
17
|
+
}
|
|
18
|
+
async filterEntriesByFolder(entries) {
|
|
19
|
+
const results = await Promise.all(entries.map(async (entry)=>{
|
|
20
|
+
const folderId = entry.location?.folderId;
|
|
21
|
+
if (!folderId || folderId === ROOT_FOLDER) return entry;
|
|
22
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
23
|
+
const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
|
|
24
|
+
permissions,
|
|
25
|
+
rwd: "r"
|
|
26
|
+
});
|
|
27
|
+
return canAccess ? entry : null;
|
|
28
|
+
}));
|
|
29
|
+
return results.filter((entry)=>!!entry);
|
|
17
30
|
}
|
|
18
|
-
const entries = result.value;
|
|
19
|
-
const filteredEntries = await this.filterEntriesByFolder(entries);
|
|
20
|
-
return Result.ok(filteredEntries);
|
|
21
|
-
}
|
|
22
|
-
async filterEntriesByFolder(entries) {
|
|
23
|
-
const results = await Promise.all(entries.map(async entry => {
|
|
24
|
-
const folderId = entry.location?.folderId;
|
|
25
|
-
if (!folderId || folderId === ROOT_FOLDER) {
|
|
26
|
-
return entry;
|
|
27
|
-
}
|
|
28
|
-
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
29
|
-
const canAccess = await this.folderLevelPermissions.canAccessFolderContent({
|
|
30
|
-
permissions,
|
|
31
|
-
rwd: "r"
|
|
32
|
-
});
|
|
33
|
-
return canAccess ? entry : null;
|
|
34
|
-
}));
|
|
35
|
-
return results.filter(entry => !!entry);
|
|
36
|
-
}
|
|
37
31
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
const GetPublishedEntriesByIdsWithFlpDecorator = createDecorator({
|
|
33
|
+
abstraction: GetPublishedEntriesByIdsUseCase,
|
|
34
|
+
decorator: GetPublishedEntriesByIdsWithFlpDecoratorImpl,
|
|
35
|
+
dependencies: [
|
|
36
|
+
FolderLevelPermissions
|
|
37
|
+
]
|
|
42
38
|
});
|
|
39
|
+
export { GetPublishedEntriesByIdsWithFlpDecorator };
|
|
43
40
|
|
|
44
41
|
//# sourceMappingURL=GetPublishedEntriesByIdsWithFlpDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js","sources":["../../../../src/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { GetPublishedEntriesByIdsUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetPublishedEntriesByIds/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { ROOT_FOLDER } from \"~/constants.js\";\n\nclass GetPublishedEntriesByIdsWithFlpDecoratorImpl\n implements GetPublishedEntriesByIdsUseCase.Interface\n{\n public constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: GetPublishedEntriesByIdsUseCase.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ): Promise<Result<CmsEntry<T>[], GetPublishedEntriesByIdsUseCase.Error>> {\n const result = await this.decoratee.execute<T>(model, ids);\n\n if (result.isFail()) {\n return result;\n }\n\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return result;\n }\n\n const entries = result.value;\n const filteredEntries = await this.filterEntriesByFolder<T>(entries);\n\n return Result.ok(filteredEntries);\n }\n\n private async filterEntriesByFolder<T extends CmsEntryValues = CmsEntryValues>(\n entries: CmsEntry<T>[]\n ): Promise<CmsEntry<T>[]> {\n const results = await Promise.all(\n entries.map(async entry => {\n const folderId = entry.location?.folderId;\n if (!folderId || folderId === ROOT_FOLDER) {\n return entry;\n }\n\n const permissions =\n await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccess = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"r\"\n });\n return canAccess ? entry : null;\n })\n );\n\n return results.filter((entry): entry is CmsEntry<T> => !!entry);\n }\n}\n\nexport const GetPublishedEntriesByIdsWithFlpDecorator = createDecorator({\n abstraction: GetPublishedEntriesByIdsUseCase,\n decorator: GetPublishedEntriesByIdsWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"names":["GetPublishedEntriesByIdsWithFlpDecoratorImpl","folderLevelPermissions","decoratee","model","ids","result","entries","filteredEntries","Result","results","Promise","entry","folderId","ROOT_FOLDER","permissions","canAccess","GetPublishedEntriesByIdsWithFlpDecorator","createDecorator","GetPublishedEntriesByIdsUseCase","FolderLevelPermissions"],"mappings":";;;;AAMA,MAAMA;IAGF,YACYC,sBAAwD,EACxDC,SAAoD,CAC9D;aAFUD,sBAAsB,GAAtBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAa,QACTC,KAAe,EACfC,GAAa,EACwD;QACrE,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAIF,OAAOC;QAEtD,IAAIC,OAAO,MAAM,IACb,OAAOA;QAGX,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,IACzD,OAAOA;QAGX,MAAMC,UAAUD,OAAO,KAAK;QAC5B,MAAME,kBAAkB,MAAM,IAAI,CAAC,qBAAqB,CAAID;QAE5D,OAAOE,OAAO,EAAE,CAACD;IACrB;IAEA,MAAc,sBACVD,OAAsB,EACA;QACtB,MAAMG,UAAU,MAAMC,QAAQ,GAAG,CAC7BJ,QAAQ,GAAG,CAAC,OAAMK;YACd,MAAMC,WAAWD,MAAM,QAAQ,EAAE;YACjC,IAAI,CAACC,YAAYA,aAAaC,aAC1B,OAAOF;YAGX,MAAMG,cACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAACF;YAChE,MAAMG,YAAY,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;gBACvED;gBACA,KAAK;YACT;YACA,OAAOC,YAAYJ,QAAQ;QAC/B;QAGJ,OAAOF,QAAQ,MAAM,CAAC,CAACE,QAAgC,CAAC,CAACA;IAC7D;AACJ;AAEO,MAAMK,2CAA2CC,gBAAgB;IACpE,aAAaC;IACb,WAAWlB;IACX,cAAc;QAACmB;KAAuB;AAC1C"}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { createDecorator } from "@webiny/feature/api";
|
|
2
|
-
import { Result } from "@webiny/feature/api";
|
|
1
|
+
import { Result, createDecorator } from "@webiny/feature/api";
|
|
3
2
|
import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
4
3
|
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
4
|
import { ListEntriesFactory } from "../../../utils/decorators/ListEntriesFactory.js";
|
|
6
5
|
class ListDeletedEntriesWithFlpDecoratorImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
}
|
|
6
|
+
constructor(folderLevelPermissions, decoratee){
|
|
7
|
+
this.decoratee = decoratee;
|
|
8
|
+
this.listEntriesHandler = new ListEntriesFactory(folderLevelPermissions);
|
|
9
|
+
}
|
|
10
|
+
async execute(model, params) {
|
|
11
|
+
const loader = async (params)=>{
|
|
12
|
+
const result = await this.decoratee.execute(model, params);
|
|
13
|
+
if (result.isFail()) throw result.error;
|
|
14
|
+
return result.value;
|
|
15
|
+
};
|
|
16
|
+
const { entries, meta } = await this.listEntriesHandler.execute({
|
|
17
|
+
model,
|
|
18
|
+
dataLoader: loader,
|
|
19
|
+
initialParams: params
|
|
20
|
+
});
|
|
21
|
+
return Result.ok({
|
|
22
|
+
entries,
|
|
23
|
+
meta
|
|
24
|
+
});
|
|
25
|
+
}
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
const ListDeletedEntriesWithFlpDecorator = createDecorator({
|
|
28
|
+
abstraction: ListDeletedEntriesUseCase,
|
|
29
|
+
decorator: ListDeletedEntriesWithFlpDecoratorImpl,
|
|
30
|
+
dependencies: [
|
|
31
|
+
FolderLevelPermissions
|
|
32
|
+
]
|
|
34
33
|
});
|
|
34
|
+
export { ListDeletedEntriesWithFlpDecorator };
|
|
35
35
|
|
|
36
36
|
//# sourceMappingURL=ListDeletedEntriesWithFlpDecorator.js.map
|