@webiny/api-aco 0.0.0-unstable.aa00eecd97 → 0.0.0-unstable.ac6ebf63c6
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/README.md +6 -28
- package/constants.d.ts +2 -0
- package/constants.js +4 -0
- package/constants.js.map +1 -0
- package/createAcoContext.d.ts +8 -2
- package/createAcoContext.js +128 -50
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.d.ts +3 -2
- package/createAcoGraphQL.js +48 -29
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoStorageOperations.d.ts +8 -6
- package/createAcoStorageOperations.js +9 -18
- package/createAcoStorageOperations.js.map +1 -1
- package/createAcoTasks.d.ts +1 -0
- package/createAcoTasks.js +15 -0
- package/createAcoTasks.js.map +1 -0
- package/domain/folder/abstractions.d.ts +9 -0
- package/domain/folder/abstractions.js +8 -0
- package/domain/folder/abstractions.js.map +1 -0
- package/domain/folder/errors.d.ts +29 -0
- package/domain/folder/errors.js +56 -0
- package/domain/folder/errors.js.map +1 -0
- package/domain/folder/folder.model.d.ts +9 -0
- package/domain/folder/folder.model.js +42 -0
- package/domain/folder/folder.model.js.map +1 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +43 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js +36 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +43 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +45 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +41 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.js +41 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +45 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +44 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js +35 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js +63 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +15 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +43 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/feature.d.ts +1 -0
- package/features/cms/feature.js +43 -0
- package/features/cms/feature.js.map +1 -0
- package/features/cms/index.d.ts +1 -0
- package/features/cms/index.js +3 -0
- package/features/cms/index.js.map +1 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js +41 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
- package/features/flp/CreateFlp/abstractions.d.ts +8 -0
- package/features/flp/CreateFlp/abstractions.js +7 -0
- package/features/flp/CreateFlp/abstractions.js.map +1 -0
- package/features/flp/CreateFlp/feature.d.ts +6 -0
- package/features/flp/CreateFlp/feature.js +13 -0
- package/features/flp/CreateFlp/feature.js.map +1 -0
- package/features/flp/CreateFlp/index.d.ts +2 -0
- package/features/flp/CreateFlp/index.js +4 -0
- package/features/flp/CreateFlp/index.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +1 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js +10 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
- package/features/flp/CreateFlpOnFolderCreated/index.js +3 -0
- package/features/flp/CreateFlpOnFolderCreated/index.js.map +1 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +23 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
- package/features/flp/DeleteFlp/abstractions.d.ts +8 -0
- package/features/flp/DeleteFlp/abstractions.js +7 -0
- package/features/flp/DeleteFlp/abstractions.js.map +1 -0
- package/features/flp/DeleteFlp/feature.d.ts +6 -0
- package/features/flp/DeleteFlp/feature.js +13 -0
- package/features/flp/DeleteFlp/feature.js.map +1 -0
- package/features/flp/DeleteFlp/index.d.ts +2 -0
- package/features/flp/DeleteFlp/index.js +4 -0
- package/features/flp/DeleteFlp/index.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js +10 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.js +3 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +133 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/abstractions.d.ts +25 -0
- package/features/flp/FolderLevelPermissions/abstractions.js +4 -0
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/feature.d.ts +1 -0
- package/features/flp/FolderLevelPermissions/feature.js +10 -0
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
- package/features/flp/FolderLevelPermissions/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/index.js +4 -0
- package/features/flp/FolderLevelPermissions/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +41 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +34 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +70 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +13 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +38 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +4 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/index.js +7 -0
- package/features/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
- package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
- package/features/flp/GetFlp/GetFlpUseCase.js +10 -0
- package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
- package/features/flp/GetFlp/abstractions.d.ts +8 -0
- package/features/flp/GetFlp/abstractions.js +4 -0
- package/features/flp/GetFlp/abstractions.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +1 -0
- package/features/flp/GetFlp/feature.js +13 -0
- package/features/flp/GetFlp/feature.js.map +1 -0
- package/features/flp/GetFlp/index.d.ts +1 -0
- package/features/flp/GetFlp/index.js +3 -0
- package/features/flp/GetFlp/index.js.map +1 -0
- package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js +10 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
- package/features/flp/ListFlps/abstractions.d.ts +16 -0
- package/features/flp/ListFlps/abstractions.js +4 -0
- package/features/flp/ListFlps/abstractions.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +1 -0
- package/features/flp/ListFlps/feature.js +13 -0
- package/features/flp/ListFlps/feature.js.map +1 -0
- package/features/flp/ListFlps/index.d.ts +1 -0
- package/features/flp/ListFlps/index.js +3 -0
- package/features/flp/ListFlps/index.js.map +1 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +203 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
- package/features/flp/UpdateFlp/abstractions.d.ts +14 -0
- package/features/flp/UpdateFlp/abstractions.js +7 -0
- package/features/flp/UpdateFlp/abstractions.js.map +1 -0
- package/features/flp/UpdateFlp/feature.d.ts +6 -0
- package/features/flp/UpdateFlp/feature.js +13 -0
- package/features/flp/UpdateFlp/feature.js.map +1 -0
- package/features/flp/UpdateFlp/index.d.ts +2 -0
- package/features/flp/UpdateFlp/index.js +4 -0
- package/features/flp/UpdateFlp/index.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js +10 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.js +3 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +1 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js +108 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js +39 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
- package/features/folder/CreateFolder/abstractions.d.ts +55 -0
- package/features/folder/CreateFolder/abstractions.js +21 -0
- package/features/folder/CreateFolder/abstractions.js.map +1 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +44 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/CreateFolder/events.d.ts +10 -0
- package/features/folder/CreateFolder/events.js +19 -0
- package/features/folder/CreateFolder/events.js.map +1 -0
- package/features/folder/CreateFolder/feature.d.ts +1 -0
- package/features/folder/CreateFolder/feature.js +14 -0
- package/features/folder/CreateFolder/feature.js.map +1 -0
- package/features/folder/CreateFolder/index.d.ts +2 -0
- package/features/folder/CreateFolder/index.js +4 -0
- package/features/folder/CreateFolder/index.js.map +1 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +30 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js +55 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
- package/features/folder/DeleteFolder/abstractions.d.ts +55 -0
- package/features/folder/DeleteFolder/abstractions.js +21 -0
- package/features/folder/DeleteFolder/abstractions.js.map +1 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +28 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/DeleteFolder/events.d.ts +10 -0
- package/features/folder/DeleteFolder/events.js +19 -0
- package/features/folder/DeleteFolder/events.js.map +1 -0
- package/features/folder/DeleteFolder/feature.d.ts +1 -0
- package/features/folder/DeleteFolder/feature.js +14 -0
- package/features/folder/DeleteFolder/feature.js.map +1 -0
- package/features/folder/DeleteFolder/index.d.ts +2 -0
- package/features/folder/DeleteFolder/index.js +4 -0
- package/features/folder/DeleteFolder/index.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +56 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +20 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +4 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/feature.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js +10 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmpty/index.js +3 -0
- package/features/folder/EnsureFolderIsEmpty/index.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +29 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +7 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +17 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +3 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +56 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +10 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +3 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js +88 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js +17 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
- package/features/folder/GetAncestors/abstractions.d.ts +38 -0
- package/features/folder/GetAncestors/abstractions.js +15 -0
- package/features/folder/GetAncestors/abstractions.js.map +1 -0
- package/features/folder/GetAncestors/feature.d.ts +1 -0
- package/features/folder/GetAncestors/feature.js +12 -0
- package/features/folder/GetAncestors/feature.js.map +1 -0
- package/features/folder/GetAncestors/index.d.ts +2 -0
- package/features/folder/GetAncestors/index.js +4 -0
- package/features/folder/GetAncestors/index.js.map +1 -0
- package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
- package/features/folder/GetFolder/GetFolderRepository.js +31 -0
- package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
- package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
- package/features/folder/GetFolder/GetFolderUseCase.js +17 -0
- package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
- package/features/folder/GetFolder/abstractions.d.ts +54 -0
- package/features/folder/GetFolder/abstractions.js +21 -0
- package/features/folder/GetFolder/abstractions.js.map +1 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +37 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolder/feature.d.ts +1 -0
- package/features/folder/GetFolder/feature.js +14 -0
- package/features/folder/GetFolder/feature.js.map +1 -0
- package/features/folder/GetFolder/index.d.ts +2 -0
- package/features/folder/GetFolder/index.js +4 -0
- package/features/folder/GetFolder/index.js.map +1 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +103 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +17 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
- package/features/folder/GetFolderHierarchy/abstractions.d.ts +36 -0
- package/features/folder/GetFolderHierarchy/abstractions.js +15 -0
- package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +64 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/feature.d.ts +1 -0
- package/features/folder/GetFolderHierarchy/feature.js +14 -0
- package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
- package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
- package/features/folder/GetFolderHierarchy/index.js +4 -0
- package/features/folder/GetFolderHierarchy/index.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +68 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +10 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +7 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js +10 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.js +3 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +1 -0
- package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
- package/features/folder/ListFolders/ListFoldersRepository.js +54 -0
- package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
- package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js +17 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
- package/features/folder/ListFolders/abstractions.d.ts +42 -0
- package/features/folder/ListFolders/abstractions.js +15 -0
- package/features/folder/ListFolders/abstractions.js.map +1 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +77 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/ListFolders/feature.d.ts +1 -0
- package/features/folder/ListFolders/feature.js +14 -0
- package/features/folder/ListFolders/feature.js.map +1 -0
- package/features/folder/ListFolders/index.d.ts +2 -0
- package/features/folder/ListFolders/index.js +4 -0
- package/features/folder/ListFolders/index.js.map +1 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +110 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js +55 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
- package/features/folder/UpdateFolder/abstractions.d.ts +60 -0
- package/features/folder/UpdateFolder/abstractions.js +21 -0
- package/features/folder/UpdateFolder/abstractions.js.map +1 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +77 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/UpdateFolder/events.d.ts +10 -0
- package/features/folder/UpdateFolder/events.js +19 -0
- package/features/folder/UpdateFolder/events.js.map +1 -0
- package/features/folder/UpdateFolder/feature.d.ts +1 -0
- package/features/folder/UpdateFolder/feature.js +14 -0
- package/features/folder/UpdateFolder/feature.js.map +1 -0
- package/features/folder/UpdateFolder/index.d.ts +2 -0
- package/features/folder/UpdateFolder/index.js +4 -0
- package/features/folder/UpdateFolder/index.js.map +1 -0
- package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
- package/features/folder/shared/EntryToFolderMapper.js +22 -0
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
- package/features/folder/shared/abstractions.d.ts +5 -0
- package/features/folder/shared/abstractions.js +4 -0
- package/features/folder/shared/abstractions.js.map +1 -0
- package/filter/filter.crud.d.ts +3 -0
- package/filter/filter.crud.js +33 -0
- package/filter/filter.crud.js.map +1 -0
- package/filter/filter.gql.d.ts +3 -0
- package/filter/filter.gql.js +146 -0
- package/filter/filter.gql.js.map +1 -0
- package/filter/filter.model.d.ts +9 -0
- package/filter/filter.model.js +41 -0
- package/filter/filter.model.js.map +1 -0
- package/filter/filter.so.d.ts +3 -0
- package/filter/filter.so.js +104 -0
- package/filter/filter.so.js.map +1 -0
- package/filter/filter.types.d.ts +67 -0
- package/filter/filter.types.js +7 -0
- package/filter/filter.types.js.map +1 -0
- package/flp/flp.crud.d.ts +7 -0
- package/flp/flp.crud.js +91 -0
- package/flp/flp.crud.js.map +1 -0
- package/flp/flp.so.d.ts +20 -0
- package/flp/flp.so.js +220 -0
- package/flp/flp.so.js.map +1 -0
- package/flp/flp.types.d.ts +93 -0
- package/flp/flp.types.js +3 -0
- package/flp/flp.types.js.map +1 -0
- package/flp/index.d.ts +3 -0
- package/flp/index.js +5 -0
- package/flp/index.js.map +1 -0
- package/flp/tasks/createFlp.task.d.ts +16 -0
- package/flp/tasks/createFlp.task.js +35 -0
- package/flp/tasks/createFlp.task.js.map +1 -0
- package/flp/tasks/deleteFlp.task.d.ts +16 -0
- package/flp/tasks/deleteFlp.task.js +35 -0
- package/flp/tasks/deleteFlp.task.js.map +1 -0
- package/flp/tasks/index.d.ts +5 -0
- package/flp/tasks/index.js +19 -0
- package/flp/tasks/index.js.map +1 -0
- package/flp/tasks/syncFlp.task.d.ts +20 -0
- package/flp/tasks/syncFlp.task.js +127 -0
- package/flp/tasks/syncFlp.task.js.map +1 -0
- package/flp/tasks/updateFlp.task.d.ts +16 -0
- package/flp/tasks/updateFlp.task.js +40 -0
- package/flp/tasks/updateFlp.task.js.map +1 -0
- package/folder/createFolderModelModifier.d.ts +36 -0
- package/folder/createFolderModelModifier.js +61 -0
- package/folder/createFolderModelModifier.js.map +1 -0
- package/folder/createFolderTypeDefs.d.ts +7 -0
- package/folder/createFolderTypeDefs.js +186 -0
- package/folder/createFolderTypeDefs.js.map +1 -0
- package/folder/folder.gql.d.ts +4 -3
- package/folder/folder.gql.js +146 -112
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.d.ts +51 -58
- package/folder/folder.types.js +2 -4
- package/folder/folder.types.js.map +1 -1
- package/index.d.ts +8 -3
- package/index.js +9 -27
- package/index.js.map +1 -1
- package/package.json +43 -35
- package/types.d.ts +27 -22
- package/types.js +6 -37
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.d.ts +10 -0
- package/utils/FoldersCacheFactory.js +24 -0
- package/utils/FoldersCacheFactory.js.map +1 -0
- package/utils/ListCache.d.ts +23 -0
- package/utils/ListCache.js +23 -0
- package/utils/ListCache.js.map +1 -0
- package/utils/Path.d.ts +3 -0
- package/utils/Path.js +11 -0
- package/utils/Path.js.map +1 -0
- package/utils/acoRecordId.js +4 -10
- package/utils/acoRecordId.js.map +1 -1
- package/utils/compress.d.ts +4 -0
- package/utils/compress.js +12 -0
- package/utils/compress.js.map +1 -0
- package/utils/createListSort.d.ts +3 -2
- package/utils/createListSort.js +6 -9
- package/utils/createListSort.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +2 -2
- package/utils/createOperationsWrapper.js +11 -18
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
- package/utils/decorators/ListEntriesFactory.d.ts +17 -0
- package/utils/decorators/ListEntriesFactory.js +106 -0
- package/utils/decorators/ListEntriesFactory.js.map +1 -0
- package/utils/decorators/hasRootFolderId.d.ts +7 -0
- package/utils/decorators/hasRootFolderId.js +19 -0
- package/utils/decorators/hasRootFolderId.js.map +1 -0
- package/utils/decorators/isPageModel.d.ts +5 -0
- package/utils/decorators/isPageModel.js +13 -0
- package/utils/decorators/isPageModel.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +2 -0
- package/utils/ensureAuthentication.js +12 -0
- package/utils/ensureAuthentication.js.map +1 -0
- package/utils/pickEntryFieldValues.d.ts +3 -0
- package/utils/pickEntryFieldValues.js +23 -0
- package/utils/pickEntryFieldValues.js.map +1 -0
- package/utils/resolve.d.ts +1 -1
- package/utils/resolve.js +6 -11
- package/utils/resolve.js.map +1 -1
- package/createAcoCrud.d.ts +0 -2
- package/createAcoCrud.js +0 -17
- package/createAcoCrud.js.map +0 -1
- package/createAcoFields.d.ts +0 -2
- package/createAcoFields.js +0 -40
- package/createAcoFields.js.map +0 -1
- package/createAcoHooks.d.ts +0 -2
- package/createAcoHooks.js +0 -11
- package/createAcoHooks.js.map +0 -1
- package/createAcoModels.d.ts +0 -2
- package/createAcoModels.js +0 -57
- package/createAcoModels.js.map +0 -1
- package/folder/folder.crud.d.ts +0 -3
- package/folder/folder.crud.js +0 -92
- package/folder/folder.crud.js.map +0 -1
- package/folder/folder.model.d.ts +0 -4
- package/folder/folder.model.js +0 -75
- package/folder/folder.model.js.map +0 -1
- package/folder/folder.so.d.ts +0 -3
- package/folder/folder.so.js +0 -151
- package/folder/folder.so.js.map +0 -1
- package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
- package/folder/onFolderBeforeDelete.hook.js +0 -53
- package/folder/onFolderBeforeDelete.hook.js.map +0 -1
- package/record/record.crud.d.ts +0 -3
- package/record/record.crud.js +0 -95
- package/record/record.crud.js.map +0 -1
- package/record/record.gql.d.ts +0 -3
- package/record/record.gql.js +0 -187
- package/record/record.gql.js.map +0 -1
- package/record/record.model.d.ts +0 -4
- package/record/record.model.js +0 -62
- package/record/record.model.js.map +0 -1
- package/record/record.so.d.ts +0 -3
- package/record/record.so.js +0 -139
- package/record/record.so.js.map +0 -1
- package/record/record.types.d.ts +0 -109
- package/record/record.types.js +0 -5
- package/record/record.types.js.map +0 -1
- package/utils/checkPermissions.d.ts +0 -2
- package/utils/checkPermissions.js +0 -14
- package/utils/checkPermissions.js.map +0 -1
- package/utils/createModelField.d.ts +0 -5
- package/utils/createModelField.js +0 -37
- package/utils/createModelField.js.map +0 -1
- package/utils/fieldResolver.d.ts +0 -16
- package/utils/fieldResolver.js +0 -44
- package/utils/fieldResolver.js.map +0 -1
- package/utils/getFieldValues.d.ts +0 -5
- package/utils/getFieldValues.js +0 -16
- package/utils/getFieldValues.js.map +0 -1
- package/utils/isInstallationPending.d.ts +0 -4
- package/utils/isInstallationPending.js +0 -21
- package/utils/isInstallationPending.js.map +0 -1
- package/utils/modelFactory.d.ts +0 -15
- package/utils/modelFactory.js +0 -25
- package/utils/modelFactory.js.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { BaseError } from "@webiny/feature/api";
|
|
2
|
+
export class FolderNotFoundError extends BaseError {
|
|
3
|
+
code = "Aco/Folder/NotFound";
|
|
4
|
+
constructor(id) {
|
|
5
|
+
super({
|
|
6
|
+
message: "Folder not found!",
|
|
7
|
+
data: {
|
|
8
|
+
folder: {
|
|
9
|
+
id
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class FolderNotAuthorizedError extends BaseError {
|
|
16
|
+
code = "Aco/Folder/NotAuthorizedError";
|
|
17
|
+
constructor() {
|
|
18
|
+
super({
|
|
19
|
+
message: `Not authorized.`
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class FolderPersistenceError extends BaseError {
|
|
24
|
+
code = "Aco/Folder/PersistenceError";
|
|
25
|
+
constructor(error) {
|
|
26
|
+
super({
|
|
27
|
+
message: error.message
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class FolderValidationError extends BaseError {
|
|
32
|
+
code = "Aco/Folder/ValidationError";
|
|
33
|
+
constructor(message) {
|
|
34
|
+
super({
|
|
35
|
+
message
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class FolderCannotMoveToNewParent extends BaseError {
|
|
40
|
+
code = "Aco/Folder/CannotMoveToNewParent";
|
|
41
|
+
constructor() {
|
|
42
|
+
super({
|
|
43
|
+
message: `Cannot move folder to a new parent because you don't have access to the new parent.`
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class FolderNotEmptyError extends BaseError {
|
|
48
|
+
code = "Aco/Folder/NotEmpty";
|
|
49
|
+
constructor() {
|
|
50
|
+
super({
|
|
51
|
+
message: `Folder is not empty.`
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseError","FolderNotFoundError","code","constructor","id","message","data","folder","FolderNotAuthorizedError","FolderPersistenceError","error","FolderValidationError","FolderCannotMoveToNewParent","FolderNotEmptyError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class FolderNotFoundError extends BaseError<{ folder: { id: string } }> {\n override readonly code = \"Aco/Folder/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: \"Folder not found!\",\n data: {\n folder: {\n id\n }\n }\n });\n }\n}\n\nexport class FolderNotAuthorizedError extends BaseError {\n override readonly code = \"Aco/Folder/NotAuthorizedError\" as const;\n\n constructor() {\n super({\n message: `Not authorized.`\n });\n }\n}\n\nexport class FolderPersistenceError extends BaseError {\n override readonly code = \"Aco/Folder/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({\n message: error.message\n });\n }\n}\n\nexport class FolderValidationError extends BaseError {\n override readonly code = \"Aco/Folder/ValidationError\" as const;\n\n constructor(message: string) {\n super({\n message\n });\n }\n}\n\nexport class FolderCannotMoveToNewParent extends BaseError {\n override readonly code = \"Aco/Folder/CannotMoveToNewParent\" as const;\n\n constructor() {\n super({\n message: `Cannot move folder to a new parent because you don't have access to the new parent.`\n });\n }\n}\n\nexport class FolderNotEmptyError extends BaseError {\n override readonly code = \"Aco/Folder/NotEmpty\" as const;\n\n constructor() {\n super({\n message: `Folder is not empty.`\n });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,mBAAmB,SAASD,SAAS,CAA6B;EACzDE,IAAI,GAAG,qBAAqB;EAE9CC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,mBAAmB;MAC5BC,IAAI,EAAE;QACFC,MAAM,EAAE;UACJH;QACJ;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMI,wBAAwB,SAASR,SAAS,CAAC;EAClCE,IAAI,GAAG,+BAA+B;EAExDC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFE,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMI,sBAAsB,SAAST,SAAS,CAAC;EAChCE,IAAI,GAAG,6BAA6B;EAEtDC,WAAWA,CAACO,KAAY,EAAE;IACtB,KAAK,CAAC;MACFL,OAAO,EAAEK,KAAK,CAACL;IACnB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMM,qBAAqB,SAASX,SAAS,CAAC;EAC/BE,IAAI,GAAG,4BAA4B;EAErDC,WAAWA,CAACE,OAAe,EAAE;IACzB,KAAK,CAAC;MACFA;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMO,2BAA2B,SAASZ,SAAS,CAAC;EACrCE,IAAI,GAAG,kCAAkC;EAE3DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFE,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMQ,mBAAmB,SAASb,SAAS,CAAC;EAC7BE,IAAI,GAAG,qBAAqB;EAE9CC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFE,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
export declare const FOLDER_MODEL_ID: string;
|
|
3
|
+
declare class FolderPrivateModelImpl implements ModelFactory.Interface {
|
|
4
|
+
execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PrivateModelBuilder[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const FolderModel: typeof FolderPrivateModelImpl & {
|
|
7
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
export const FOLDER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "acoFolder" : "wbyAcoFolder";
|
|
3
|
+
class FolderPrivateModelImpl {
|
|
4
|
+
async execute(builder) {
|
|
5
|
+
return [builder.private({
|
|
6
|
+
modelId: FOLDER_MODEL_ID,
|
|
7
|
+
name: "ACO - Folder"
|
|
8
|
+
}).fields(fields => ({
|
|
9
|
+
title: fields.text().label("Title").required("Value is required."),
|
|
10
|
+
slug: fields.text().label("Slug").required("Value is required.").pattern("^[a-z0-9]+(-[a-z0-9]+)*$", "g", "Value must consist of only 'a-z', '0-9' and '-'."),
|
|
11
|
+
type: fields.text().label("Type").required("Value is required."),
|
|
12
|
+
parentId: fields.text().label("Parent Id"),
|
|
13
|
+
path: fields.text().label("Path"),
|
|
14
|
+
permissions: fields.object().label("Permissions").list().fields(fields => ({
|
|
15
|
+
target: fields.text().label("Target").required("Value is required."),
|
|
16
|
+
level: fields.text().label("Level").required("Value is required.").predefinedValues([{
|
|
17
|
+
label: "Viewer",
|
|
18
|
+
value: "viewer"
|
|
19
|
+
}, {
|
|
20
|
+
label: "Editor",
|
|
21
|
+
value: "editor"
|
|
22
|
+
}, {
|
|
23
|
+
label: "Owner",
|
|
24
|
+
value: "owner"
|
|
25
|
+
}, {
|
|
26
|
+
label: "Public",
|
|
27
|
+
value: "public"
|
|
28
|
+
}, {
|
|
29
|
+
label: "No Access",
|
|
30
|
+
value: "no-access"
|
|
31
|
+
}])
|
|
32
|
+
})).layout([["target"], ["level"]]),
|
|
33
|
+
extensions: fields.object().label("Extensions")
|
|
34
|
+
}))];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const FolderModel = ModelFactory.createImplementation({
|
|
38
|
+
implementation: FolderPrivateModelImpl,
|
|
39
|
+
dependencies: []
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=folder.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ModelFactory","FOLDER_MODEL_ID","process","env","WEBINY_API_LEGACY_MODELS","FolderPrivateModelImpl","execute","builder","private","modelId","name","fields","title","text","label","required","slug","pattern","type","parentId","path","permissions","object","list","target","level","predefinedValues","value","layout","extensions","FolderModel","createImplementation","implementation","dependencies"],"sources":["folder.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\n\nexport const FOLDER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"acoFolder\" : \"wbyAcoFolder\";\n\nclass FolderPrivateModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private({\n modelId: FOLDER_MODEL_ID,\n name: \"ACO - Folder\"\n })\n .fields(fields => ({\n title: fields.text().label(\"Title\").required(\"Value is required.\"),\n slug: fields\n .text()\n .label(\"Slug\")\n .required(\"Value is required.\")\n .pattern(\n \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n \"g\",\n \"Value must consist of only 'a-z', '0-9' and '-'.\"\n ),\n type: fields.text().label(\"Type\").required(\"Value is required.\"),\n parentId: fields.text().label(\"Parent Id\"),\n path: fields.text().label(\"Path\"),\n permissions: fields\n .object()\n .label(\"Permissions\")\n .list()\n .fields(fields => ({\n target: fields.text().label(\"Target\").required(\"Value is required.\"),\n level: fields\n .text()\n .label(\"Level\")\n .required(\"Value is required.\")\n .predefinedValues([\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n },\n {\n label: \"No Access\",\n value: \"no-access\"\n }\n ])\n }))\n .layout([[\"target\"], [\"level\"]]),\n extensions: fields.object().label(\"Extensions\")\n }))\n ];\n }\n}\n\nexport const FolderModel = ModelFactory.createImplementation({\n implementation: FolderPrivateModelImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AAEtF,OAAO,MAAMC,eAAe,GAAGC,OAAO,CAACC,GAAG,CAACC,wBAAwB,GAAG,WAAW,GAAG,cAAc;AAElG,MAAMC,sBAAsB,CAAmC;EAC3D,MAAaC,OAAOA,CAACC,OAA6B,EAAE;IAChD,OAAO,CACHA,OAAO,CACFC,OAAO,CAAC;MACLC,OAAO,EAAER,eAAe;MACxBS,IAAI,EAAE;IACV,CAAC,CAAC,CACDC,MAAM,CAACA,MAAM,KAAK;MACfC,KAAK,EAAED,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC,oBAAoB,CAAC;MAClEC,IAAI,EAAEL,MAAM,CACPE,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,MAAM,CAAC,CACbC,QAAQ,CAAC,oBAAoB,CAAC,CAC9BE,OAAO,CACJ,0BAA0B,EAC1B,GAAG,EACH,kDACJ,CAAC;MACLC,IAAI,EAAEP,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAACC,QAAQ,CAAC,oBAAoB,CAAC;MAChEI,QAAQ,EAAER,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,WAAW,CAAC;MAC1CM,IAAI,EAAET,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC;MACjCO,WAAW,EAAEV,MAAM,CACdW,MAAM,CAAC,CAAC,CACRR,KAAK,CAAC,aAAa,CAAC,CACpBS,IAAI,CAAC,CAAC,CACNZ,MAAM,CAACA,MAAM,KAAK;QACfa,MAAM,EAAEb,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,QAAQ,CAAC,CAACC,QAAQ,CAAC,oBAAoB,CAAC;QACpEU,KAAK,EAAEd,MAAM,CACRE,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,OAAO,CAAC,CACdC,QAAQ,CAAC,oBAAoB,CAAC,CAC9BW,gBAAgB,CAAC,CACd;UACIZ,KAAK,EAAE,QAAQ;UACfa,KAAK,EAAE;QACX,CAAC,EACD;UACIb,KAAK,EAAE,QAAQ;UACfa,KAAK,EAAE;QACX,CAAC,EACD;UACIb,KAAK,EAAE,OAAO;UACda,KAAK,EAAE;QACX,CAAC,EACD;UACIb,KAAK,EAAE,QAAQ;UACfa,KAAK,EAAE;QACX,CAAC,EACD;UACIb,KAAK,EAAE,WAAW;UAClBa,KAAK,EAAE;QACX,CAAC,CACJ;MACT,CAAC,CAAC,CAAC,CACFC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;MACpCC,UAAU,EAAElB,MAAM,CAACW,MAAM,CAAC,CAAC,CAACR,KAAK,CAAC,YAAY;IAClD,CAAC,CAAC,CAAC,CACV;EACL;AACJ;AAEA,OAAO,MAAMgB,WAAW,GAAG9B,YAAY,CAAC+B,oBAAoB,CAAC;EACzDC,cAAc,EAAE3B,sBAAsB;EACtC4B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CreateEntryRevisionFromUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/abstractions.js";
|
|
2
|
+
import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
|
|
3
|
+
import type { CmsEntryValues, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class CreateEntryRevisionFromWithFlpDecoratorImpl implements CreateEntryRevisionFromUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private getRevisionById;
|
|
8
|
+
private decoratee;
|
|
9
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: CreateEntryRevisionFromUseCase.Interface);
|
|
10
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, sourceId: string, input: CreateCmsEntryInput<T>, options?: CreateCmsEntryOptionsInput): CreateEntryRevisionFromUseCase.Return<T>;
|
|
11
|
+
}
|
|
12
|
+
export declare const CreateEntryRevisionFromWithFlpDecorator: typeof CreateEntryRevisionFromWithFlpDecoratorImpl;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateEntryRevisionFromUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/abstractions.js";
|
|
3
|
+
import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
6
|
+
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
7
|
+
class CreateEntryRevisionFromWithFlpDecoratorImpl {
|
|
8
|
+
constructor(folderLevelPermissions, getRevisionById, decoratee) {
|
|
9
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
10
|
+
this.getRevisionById = getRevisionById;
|
|
11
|
+
this.decoratee = decoratee;
|
|
12
|
+
}
|
|
13
|
+
async execute(model, sourceId, input, options) {
|
|
14
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
15
|
+
return this.decoratee.execute(model, sourceId, input, options);
|
|
16
|
+
}
|
|
17
|
+
const entryResult = await this.getRevisionById.execute(model, sourceId);
|
|
18
|
+
if (entryResult.isFail()) {
|
|
19
|
+
return this.decoratee.execute(model, sourceId, input, options);
|
|
20
|
+
}
|
|
21
|
+
const entry = entryResult.value;
|
|
22
|
+
const folderId = entry?.location?.folderId;
|
|
23
|
+
if (!folderId || folderId === ROOT_FOLDER) {
|
|
24
|
+
return this.decoratee.execute(model, sourceId, input, options);
|
|
25
|
+
}
|
|
26
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
27
|
+
const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({
|
|
28
|
+
permissions,
|
|
29
|
+
rwd: "w"
|
|
30
|
+
});
|
|
31
|
+
if (!canAccessFolderContent) {
|
|
32
|
+
return Result.fail(new EntryNotAuthorizedError());
|
|
33
|
+
}
|
|
34
|
+
return this.decoratee.execute(model, sourceId, input, options);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const CreateEntryRevisionFromWithFlpDecorator = createDecorator({
|
|
38
|
+
abstraction: CreateEntryRevisionFromUseCase,
|
|
39
|
+
decorator: CreateEntryRevisionFromWithFlpDecoratorImpl,
|
|
40
|
+
dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=CreateEntryRevisionFromWithFlpDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","CreateEntryRevisionFromUseCase","GetRevisionByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","CreateEntryRevisionFromWithFlpDecoratorImpl","constructor","folderLevelPermissions","getRevisionById","decoratee","execute","model","sourceId","input","options","canUseFolderLevelPermissions","entryResult","isFail","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolderContent","rwd","fail","CreateEntryRevisionFromWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["CreateEntryRevisionFromWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { CreateEntryRevisionFromUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntryRevisionFrom/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js\";\nimport type {\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\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.js\";\n\nclass CreateEntryRevisionFromWithFlpDecoratorImpl\n implements CreateEntryRevisionFromUseCase.Interface\n{\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private decoratee: CreateEntryRevisionFromUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n sourceId: string,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): CreateEntryRevisionFromUseCase.Return<T> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, sourceId, input, options);\n }\n\n const entryResult = await this.getRevisionById.execute(model, sourceId);\n if (entryResult.isFail()) {\n return this.decoratee.execute(model, sourceId, input, 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, sourceId, input, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolderContent = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolderContent) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, sourceId, input, options);\n }\n}\n\nexport const CreateEntryRevisionFromWithFlpDecorator = createDecorator({\n abstraction: CreateEntryRevisionFromUseCase,\n decorator: CreateEntryRevisionFromWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,8BAA8B,QAAQ,wFAAwF;AACvI,SAASC,sBAAsB,QAAQ,gFAAgF;AAOvH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,2CAA2C,CAEjD;EACIC,WAAWA,CACCC,sBAAwD,EACxDC,eAAiD,EACjDC,SAAmD,EAC7D;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,SAAmD,GAAnDA,SAAmD;EAC5D;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,QAAgB,EAChBC,KAA6B,EAC7BC,OAAoC,EACI;IACxC,IAAI,CAAC,IAAI,CAACP,sBAAsB,CAACQ,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACN,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;IAClE;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACR,eAAe,CAACE,OAAO,CAACC,KAAK,EAAEC,QAAQ,CAAC;IACvE,IAAII,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACR,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;IAClE;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKjB,WAAW,EAAE;MACvC,OAAO,IAAI,CAACM,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;IAClE;IAEA,MAAMQ,WAAW,GAAG,MAAM,IAAI,CAACf,sBAAsB,CAACgB,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,sBAAsB,GAAG,MAAM,IAAI,CAACjB,sBAAsB,CAACiB,sBAAsB,CAAC;MACpFF,WAAW;MACXG,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACD,sBAAsB,EAAE;MACzB,OAAOzB,MAAM,CAAC2B,IAAI,CAAC,IAAItB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,OAAO,CAAC;EAClE;AACJ;AAEA,OAAO,MAAMa,uCAAuC,GAAG7B,eAAe,CAAC;EACnE8B,WAAW,EAAE5B,8BAA8B;EAC3C6B,SAAS,EAAExB,2CAA2C;EACtDyB,YAAY,EAAE,CAAC5B,sBAAsB,EAAED,sBAAsB;AACjE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/abstractions.js";
|
|
3
|
+
import type { CmsEntry, CmsEntryValues, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class CreateEntryWithFlpDecoratorImpl implements CreateEntryUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private decoratee;
|
|
8
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: CreateEntryUseCase.Interface);
|
|
9
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, input: CreateCmsEntryInput<T>, options?: CreateCmsEntryOptionsInput): Promise<Result<CmsEntry<T>, CreateEntryUseCase.Error>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const CreateEntryWithFlpDecorator: typeof CreateEntryWithFlpDecoratorImpl;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/abstractions.js";
|
|
3
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
4
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
5
|
+
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
6
|
+
class CreateEntryWithFlpDecoratorImpl {
|
|
7
|
+
constructor(folderLevelPermissions, decoratee) {
|
|
8
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
9
|
+
this.decoratee = decoratee;
|
|
10
|
+
}
|
|
11
|
+
async execute(model, input, options) {
|
|
12
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
13
|
+
return this.decoratee.execute(model, input, options);
|
|
14
|
+
}
|
|
15
|
+
const folderId = input.wbyAco_location?.folderId || input.location?.folderId;
|
|
16
|
+
if (!folderId || folderId === ROOT_FOLDER) {
|
|
17
|
+
return this.decoratee.execute(model, input, options);
|
|
18
|
+
}
|
|
19
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
20
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
21
|
+
permissions,
|
|
22
|
+
rwd: "w"
|
|
23
|
+
});
|
|
24
|
+
if (!canAccessFolder) {
|
|
25
|
+
return Result.fail(new EntryNotAuthorizedError());
|
|
26
|
+
}
|
|
27
|
+
return this.decoratee.execute(model, input, options);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const CreateEntryWithFlpDecorator = createDecorator({
|
|
31
|
+
abstraction: CreateEntryUseCase,
|
|
32
|
+
decorator: CreateEntryWithFlpDecoratorImpl,
|
|
33
|
+
dependencies: [FolderLevelPermissions]
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=CreateEntryWithFlpDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","CreateEntryUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","CreateEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","input","options","canUseFolderLevelPermissions","folderId","wbyAco_location","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","CreateEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["CreateEntryWithFlpDecorator.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/abstractions.js\";\nimport type {\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\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.js\";\n\nclass CreateEntryWithFlpDecoratorImpl implements CreateEntryUseCase.Interface {\n constructor(\n private folderLevelPermissions: FolderLevelPermissions.Interface,\n private decoratee: CreateEntryUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<Result<CmsEntry<T>, CreateEntryUseCase.Error>> {\n if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {\n return this.decoratee.execute(model, input, options);\n }\n\n const folderId = input.wbyAco_location?.folderId || input.location?.folderId;\n\n if (!folderId || folderId === ROOT_FOLDER) {\n return this.decoratee.execute(model, input, options);\n }\n\n const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({\n permissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new EntryNotAuthorizedError());\n }\n\n return this.decoratee.execute(model, input, options);\n }\n}\n\nexport const CreateEntryWithFlpDecorator = createDecorator({\n abstraction: CreateEntryUseCase,\n decorator: CreateEntryWithFlpDecoratorImpl,\n dependencies: [FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,kBAAkB,QAAQ,4EAA4E;AAQ/G,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,+BAA+B,CAAyC;EAC1EC,WAAWA,CACCC,sBAAwD,EACxDC,SAAuC,EACjD;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAuC,GAAvCA,SAAuC;EAChD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,KAA6B,EAC7BC,OAAoC,EACkB;IACtD,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACM,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACL,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;IACxD;IAEA,MAAME,QAAQ,GAAGH,KAAK,CAACI,eAAe,EAAED,QAAQ,IAAIH,KAAK,CAACK,QAAQ,EAAEF,QAAQ;IAE5E,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKX,WAAW,EAAE;MACvC,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;IACxD;IAEA,MAAMK,WAAW,GAAG,MAAM,IAAI,CAACV,sBAAsB,CAACW,yBAAyB,CAACJ,QAAQ,CAAC;IACzF,MAAMK,eAAe,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACa,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOnB,MAAM,CAACsB,IAAI,CAAC,IAAIlB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACI,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMW,2BAA2B,GAAGxB,eAAe,CAAC;EACvDyB,WAAW,EAAEvB,kBAAkB;EAC/BwB,SAAS,EAAEpB,+BAA+B;EAC1CqB,YAAY,EAAE,CAACxB,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DeleteEntryRevisionUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntryRevision/abstractions.js";
|
|
2
|
+
import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
|
|
3
|
+
import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class DeleteEntryRevisionWithFlpDecoratorImpl implements DeleteEntryRevisionUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private getRevisionById;
|
|
8
|
+
private decoratee;
|
|
9
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, decoratee: DeleteEntryRevisionUseCase.Interface);
|
|
10
|
+
execute(model: CmsModel, revisionId: string): ReturnType<DeleteEntryRevisionUseCase.Interface["execute"]>;
|
|
11
|
+
}
|
|
12
|
+
export declare const DeleteEntryRevisionWithFlpDecorator: typeof DeleteEntryRevisionWithFlpDecoratorImpl;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteEntryRevisionUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntryRevision/abstractions.js";
|
|
3
|
+
import { GetRevisionByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetRevisionById/abstractions.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
6
|
+
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
7
|
+
class DeleteEntryRevisionWithFlpDecoratorImpl {
|
|
8
|
+
constructor(folderLevelPermissions, getRevisionById, decoratee) {
|
|
9
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
10
|
+
this.getRevisionById = getRevisionById;
|
|
11
|
+
this.decoratee = decoratee;
|
|
12
|
+
}
|
|
13
|
+
async execute(model, revisionId) {
|
|
14
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
15
|
+
return this.decoratee.execute(model, revisionId);
|
|
16
|
+
}
|
|
17
|
+
const entryResult = await this.getRevisionById.execute(model, revisionId);
|
|
18
|
+
if (entryResult.isFail()) {
|
|
19
|
+
return this.decoratee.execute(model, revisionId);
|
|
20
|
+
}
|
|
21
|
+
const entry = entryResult.value;
|
|
22
|
+
const folderId = entry?.location?.folderId;
|
|
23
|
+
if (!folderId || folderId === ROOT_FOLDER) {
|
|
24
|
+
return this.decoratee.execute(model, revisionId);
|
|
25
|
+
}
|
|
26
|
+
const permissions = await this.folderLevelPermissions.getFolderLevelPermissions(folderId);
|
|
27
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolderContent({
|
|
28
|
+
permissions,
|
|
29
|
+
rwd: "d"
|
|
30
|
+
});
|
|
31
|
+
if (!canAccessFolder) {
|
|
32
|
+
return Result.fail(new EntryNotAuthorizedError());
|
|
33
|
+
}
|
|
34
|
+
return this.decoratee.execute(model, revisionId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const DeleteEntryRevisionWithFlpDecorator = createDecorator({
|
|
38
|
+
abstraction: DeleteEntryRevisionUseCase,
|
|
39
|
+
decorator: DeleteEntryRevisionWithFlpDecoratorImpl,
|
|
40
|
+
dependencies: [FolderLevelPermissions, GetRevisionByIdUseCase]
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=DeleteEntryRevisionWithFlpDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","DeleteEntryRevisionUseCase","GetRevisionByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","DeleteEntryRevisionWithFlpDecoratorImpl","constructor","folderLevelPermissions","getRevisionById","decoratee","execute","model","revisionId","canUseFolderLevelPermissions","entryResult","isFail","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","DeleteEntryRevisionWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,0BAA0B,QAAQ,oFAAoF;AAC/H,SAASC,sBAAsB,QAAQ,gFAAgF;AAEvH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,uCAAuC,CAAiD;EAC1FC,WAAWA,CACCC,sBAAwD,EACxDC,eAAiD,EACjDC,SAA+C,EACzD;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,eAAiD,GAAjDA,eAAiD;IAAA,KACjDC,SAA+C,GAA/CA,SAA+C;EACxD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,UAAkB,EACyC;IAC3D,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACM,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACJ,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACpD;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACN,eAAe,CAACE,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACzE,IAAIE,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACN,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACpD;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKf,WAAW,EAAE;MACvC,OAAO,IAAI,CAACM,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;IACpD;IAEA,MAAMQ,WAAW,GAAG,MAAM,IAAI,CAACb,sBAAsB,CAACc,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAACf,sBAAsB,CAACgB,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOvB,MAAM,CAAC0B,IAAI,CAAC,IAAIrB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,UAAU,CAAC;EACpD;AACJ;AAEA,OAAO,MAAMc,mCAAmC,GAAG5B,eAAe,CAAC;EAC/D6B,WAAW,EAAE3B,0BAA0B;EACvC4B,SAAS,EAAEvB,uCAAuC;EAClDwB,YAAY,EAAE,CAAC3B,sBAAsB,EAAED,sBAAsB;AACjE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js";
|
|
2
|
+
import { GetLatestRevisionByEntryIdBaseUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js";
|
|
3
|
+
import type { CmsModel, CmsDeleteEntryOptions } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class DeleteEntryWithFlpDecoratorImpl implements DeleteEntryUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private getLatestRevisionByEntryId;
|
|
8
|
+
private decoratee;
|
|
9
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, getLatestRevisionByEntryId: GetLatestRevisionByEntryIdBaseUseCase.Interface, decoratee: DeleteEntryUseCase.Interface);
|
|
10
|
+
execute(model: CmsModel, id: string, options?: CmsDeleteEntryOptions): ReturnType<DeleteEntryUseCase.Interface["execute"]>;
|
|
11
|
+
}
|
|
12
|
+
export declare const DeleteEntryWithFlpDecorator: typeof DeleteEntryWithFlpDecoratorImpl;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/abstractions.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdBaseUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
6
|
+
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
7
|
+
class DeleteEntryWithFlpDecoratorImpl {
|
|
8
|
+
constructor(folderLevelPermissions, getLatestRevisionByEntryId, decoratee) {
|
|
9
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
10
|
+
this.getLatestRevisionByEntryId = getLatestRevisionByEntryId;
|
|
11
|
+
this.decoratee = decoratee;
|
|
12
|
+
}
|
|
13
|
+
async execute(model, id, options) {
|
|
14
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
15
|
+
return this.decoratee.execute(model, id, options);
|
|
16
|
+
}
|
|
17
|
+
const entryResult = await this.getLatestRevisionByEntryId.execute(model, {
|
|
18
|
+
id
|
|
19
|
+
});
|
|
20
|
+
if (entryResult.isFail()) {
|
|
21
|
+
return this.decoratee.execute(model, id, options);
|
|
22
|
+
}
|
|
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
|
+
}
|
|
39
|
+
export const DeleteEntryWithFlpDecorator = createDecorator({
|
|
40
|
+
abstraction: DeleteEntryUseCase,
|
|
41
|
+
decorator: DeleteEntryWithFlpDecoratorImpl,
|
|
42
|
+
dependencies: [FolderLevelPermissions, GetLatestRevisionByEntryIdBaseUseCase]
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=DeleteEntryWithFlpDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","DeleteEntryUseCase","GetLatestRevisionByEntryIdBaseUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","DeleteEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","getLatestRevisionByEntryId","decoratee","execute","model","id","options","canUseFolderLevelPermissions","entryResult","isFail","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","DeleteEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,kBAAkB,QAAQ,4EAA4E;AAC/G,SAASC,qCAAqC,QAAQ,2FAA2F;AAEjJ,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,+BAA+B,CAAyC;EAC1EC,WAAWA,CACCC,sBAAwD,EACxDC,0BAA2E,EAC3EC,SAAuC,EACjD;IAAA,KAHUF,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,0BAA2E,GAA3EA,0BAA2E;IAAA,KAC3EC,SAAuC,GAAvCA,SAAuC;EAChD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,EAAU,EACVC,OAA+B,EACoB;IACnD,IAAI,CAAC,IAAI,CAACN,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACL,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;IACrD;IAEA,MAAME,WAAW,GAAG,MAAM,IAAI,CAACP,0BAA0B,CAACE,OAAO,CAACC,KAAK,EAAE;MAAEC;IAAG,CAAC,CAAC;IAChF,IAAIG,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE;MACtB,OAAO,IAAI,CAACP,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;IACrD;IAEA,MAAMI,KAAK,GAAGF,WAAW,CAACG,KAAK;IAC/B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKhB,WAAW,EAAE;MACvC,OAAO,IAAI,CAACM,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;IACrD;IAEA,MAAMQ,WAAW,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACe,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAAChB,sBAAsB,CAACiB,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOxB,MAAM,CAAC2B,IAAI,CAAC,IAAItB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI,CAACK,SAAS,CAACC,OAAO,CAACC,KAAK,EAAEC,EAAE,EAAEC,OAAO,CAAC;EACrD;AACJ;AAEA,OAAO,MAAMc,2BAA2B,GAAG7B,eAAe,CAAC;EACvD8B,WAAW,EAAE5B,kBAAkB;EAC/B6B,SAAS,EAAExB,+BAA+B;EAC1CyB,YAAY,EAAE,CAAC5B,sBAAsB,EAAED,qCAAqC;AAChF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
|
|
3
|
+
import type { CmsModel, CmsEntryValues, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class GetEntryByIdWithFlpDecoratorImpl implements GetEntryByIdUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private decoratee;
|
|
8
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetEntryByIdUseCase.Interface);
|
|
9
|
+
execute<T extends CmsEntryValues>(model: CmsModel, id: string): Promise<Result<CmsEntry<T>, GetEntryByIdUseCase.Error>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const GetEntryByIdWithFlpDecorator: typeof GetEntryByIdWithFlpDecoratorImpl;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/abstractions.js";
|
|
3
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
4
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
5
|
+
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors.js";
|
|
6
|
+
class GetEntryByIdWithFlpDecoratorImpl {
|
|
7
|
+
constructor(folderLevelPermissions, decoratee) {
|
|
8
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
9
|
+
this.decoratee = decoratee;
|
|
10
|
+
}
|
|
11
|
+
async execute(model, id) {
|
|
12
|
+
const result = await this.decoratee.execute(model, id);
|
|
13
|
+
if (result.isFail()) {
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
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
|
+
}
|
|
35
|
+
export const GetEntryByIdWithFlpDecorator = createDecorator({
|
|
36
|
+
abstraction: GetEntryByIdUseCase,
|
|
37
|
+
decorator: GetEntryByIdWithFlpDecoratorImpl,
|
|
38
|
+
dependencies: [FolderLevelPermissions]
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=GetEntryByIdWithFlpDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","GetEntryByIdUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","GetEntryByIdWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","id","result","isFail","canUseFolderLevelPermissions","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","GetEntryByIdWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,mBAAmB,QAAQ,6EAA6E;AAEjH,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,wDAAwD;AAEhG,MAAMC,gCAAgC,CAA0C;EAC5EC,WAAWA,CACCC,sBAAwD,EACxDC,SAAwC,EAClD;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAwC,GAAxCA,SAAwC;EACjD;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,EAAU,EAC6C;IACvD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,EAAE,CAAC;IAEzD,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAOF,MAAM;IACjB;IAEA,MAAMG,KAAK,GAAGH,MAAM,CAACI,KAAK;IAC1B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKd,WAAW,EAAE;MACvC,OAAOS,MAAM;IACjB;IAEA,MAAMO,WAAW,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACa,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACe,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOrB,MAAM,CAACwB,IAAI,CAAC,IAAIpB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAOQ,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMa,4BAA4B,GAAG1B,eAAe,CAAC;EACxD2B,WAAW,EAAEzB,mBAAmB;EAChC0B,SAAS,EAAEtB,gCAAgC;EAC3CuB,YAAY,EAAE,CAAC1B,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js";
|
|
3
|
+
import type { CmsModel, CmsEntryGetParams, CmsEntryValues, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class GetEntryWithFlpDecoratorImpl implements GetEntryUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private decoratee;
|
|
8
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetEntryUseCase.Interface);
|
|
9
|
+
execute<T extends CmsEntryValues>(model: CmsModel, params: CmsEntryGetParams): Promise<Result<CmsEntry<T>, GetEntryUseCase.Error>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const GetEntryWithFlpDecorator: typeof GetEntryWithFlpDecoratorImpl;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntry/abstractions.js";
|
|
3
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
4
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
5
|
+
import { EntryNotAuthorizedError } from "@webiny/api-headless-cms/domain/contentEntry/errors";
|
|
6
|
+
class GetEntryWithFlpDecoratorImpl {
|
|
7
|
+
constructor(folderLevelPermissions, decoratee) {
|
|
8
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
9
|
+
this.decoratee = decoratee;
|
|
10
|
+
}
|
|
11
|
+
async execute(model, params) {
|
|
12
|
+
const result = await this.decoratee.execute(model, params);
|
|
13
|
+
if (result.isFail()) {
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
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
|
+
}
|
|
35
|
+
export const GetEntryWithFlpDecorator = createDecorator({
|
|
36
|
+
abstraction: GetEntryUseCase,
|
|
37
|
+
decorator: GetEntryWithFlpDecoratorImpl,
|
|
38
|
+
dependencies: [FolderLevelPermissions]
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=GetEntryWithFlpDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","GetEntryUseCase","FolderLevelPermissions","ROOT_FOLDER","EntryNotAuthorizedError","GetEntryWithFlpDecoratorImpl","constructor","folderLevelPermissions","decoratee","execute","model","params","result","isFail","canUseFolderLevelPermissions","entry","value","folderId","location","permissions","getFolderLevelPermissions","canAccessFolder","canAccessFolderContent","rwd","fail","GetEntryWithFlpDecorator","abstraction","decorator","dependencies"],"sources":["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"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAC7D,SAASC,eAAe,QAAQ,yEAAyE;AAOzG,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AACpB,SAASC,uBAAuB,QAAQ,qDAAqD;AAE7F,MAAMC,4BAA4B,CAAsC;EACpEC,WAAWA,CACCC,sBAAwD,EACxDC,SAAoC,EAC9C;IAAA,KAFUD,sBAAwD,GAAxDA,sBAAwD;IAAA,KACxDC,SAAoC,GAApCA,SAAoC;EAC7C;EAEH,MAAMC,OAAOA,CACTC,KAAe,EACfC,MAAyB,EAC0B;IACnD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAAIC,KAAK,EAAEC,MAAM,CAAC;IAE7D,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,IAAI,CAAC,IAAI,CAACL,sBAAsB,CAACO,4BAA4B,CAAC,CAAC,EAAE;MAC7D,OAAOF,MAAM;IACjB;IAEA,MAAMG,KAAK,GAAGH,MAAM,CAACI,KAAK;IAC1B,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,QAAQ,EAAED,QAAQ;IAE1C,IAAI,CAACA,QAAQ,IAAIA,QAAQ,KAAKd,WAAW,EAAE;MACvC,OAAOS,MAAM;IACjB;IAEA,MAAMO,WAAW,GAAG,MAAM,IAAI,CAACZ,sBAAsB,CAACa,yBAAyB,CAACH,QAAQ,CAAC;IACzF,MAAMI,eAAe,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACe,sBAAsB,CAAC;MAC7EH,WAAW;MACXI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACF,eAAe,EAAE;MAClB,OAAOrB,MAAM,CAACwB,IAAI,CAAC,IAAIpB,uBAAuB,CAAC,CAAC,CAAC;IACrD;IAEA,OAAOQ,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMa,wBAAwB,GAAG1B,eAAe,CAAC;EACpD2B,WAAW,EAAEzB,eAAe;EAC5B0B,SAAS,EAAEtB,4BAA4B;EACvCuB,YAAY,EAAE,CAAC1B,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetLatestEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js";
|
|
3
|
+
import type { CmsModel, CmsEntryValues, CmsEntry } from "@webiny/api-headless-cms/types/index.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../../features/flp/FolderLevelPermissions/index.js";
|
|
5
|
+
declare class GetLatestEntriesByIdsWithFlpDecoratorImpl implements GetLatestEntriesByIdsUseCase.Interface {
|
|
6
|
+
private folderLevelPermissions;
|
|
7
|
+
private decoratee;
|
|
8
|
+
constructor(folderLevelPermissions: FolderLevelPermissions.Interface, decoratee: GetLatestEntriesByIdsUseCase.Interface);
|
|
9
|
+
execute<T extends CmsEntryValues>(model: CmsModel, ids: string[]): Promise<Result<CmsEntry<T>[], GetLatestEntriesByIdsUseCase.Error>>;
|
|
10
|
+
private filterEntriesByFolder;
|
|
11
|
+
}
|
|
12
|
+
export declare const GetLatestEntriesByIdsWithFlpDecorator: typeof GetLatestEntriesByIdsWithFlpDecoratorImpl;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createDecorator } from "@webiny/feature/api";
|
|
2
|
+
import { Result } from "@webiny/feature/api";
|
|
3
|
+
import { GetLatestEntriesByIdsUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestEntriesByIds/abstractions.js";
|
|
4
|
+
import { FolderLevelPermissions } from "../../flp/FolderLevelPermissions/index.js";
|
|
5
|
+
import { ROOT_FOLDER } from "../../../constants.js";
|
|
6
|
+
class GetLatestEntriesByIdsWithFlpDecoratorImpl {
|
|
7
|
+
constructor(folderLevelPermissions, decoratee) {
|
|
8
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
9
|
+
this.decoratee = decoratee;
|
|
10
|
+
}
|
|
11
|
+
async execute(model, ids) {
|
|
12
|
+
const result = await this.decoratee.execute(model, ids);
|
|
13
|
+
if (result.isFail()) {
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
if (!this.folderLevelPermissions.canUseFolderLevelPermissions()) {
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
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
|
+
}
|
|
39
|
+
export const GetLatestEntriesByIdsWithFlpDecorator = createDecorator({
|
|
40
|
+
abstraction: GetLatestEntriesByIdsUseCase,
|
|
41
|
+
decorator: GetLatestEntriesByIdsWithFlpDecoratorImpl,
|
|
42
|
+
dependencies: [FolderLevelPermissions]
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=GetLatestEntriesByIdsWithFlpDecorator.js.map
|