diff --git a/packages/auth/src/Domain/UseCase/ActivatePremiumFeatures/ActivatePremiumFeatures.ts b/packages/auth/src/Domain/UseCase/ActivatePremiumFeatures/ActivatePremiumFeatures.ts index 1cf802e10..b4e5c374e 100644 --- a/packages/auth/src/Domain/UseCase/ActivatePremiumFeatures/ActivatePremiumFeatures.ts +++ b/packages/auth/src/Domain/UseCase/ActivatePremiumFeatures/ActivatePremiumFeatures.ts @@ -49,7 +49,7 @@ export class ActivatePremiumFeatures implements UseCaseInterface { await this.subscriptionSettingService.applyDefaultSubscriptionSettingsForSubscription( subscription, - new Map([[SettingName.NAMES.FileUploadBytesLimit, '0']]), + new Map([[SettingName.NAMES.FileUploadBytesLimit, '-1']]), ) return Result.ok('Premium features activated.') diff --git a/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.spec.ts b/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.spec.ts index 089beb0a2..71599b7f1 100644 --- a/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.spec.ts +++ b/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.spec.ts @@ -135,4 +135,27 @@ describe('FinishUploadSession', () => { expect(fileUploader.finishUploadSession).not.toHaveBeenCalled() expect(domainEventPublisher.publish).not.toHaveBeenCalled() }) + + it('should ignore the storage quota if user has unlimited storage', async () => { + uploadRepository.retrieveUploadChunkResults = jest.fn().mockReturnValue([ + { tag: '123', chunkId: 1, chunkSize: 60 }, + { tag: '234', chunkId: 2, chunkSize: 10 }, + { tag: '345', chunkId: 3, chunkSize: 20 }, + ]) + + expect( + await createUseCase().execute({ + resourceRemoteIdentifier: '2-3-4', + ownerUuid: '1-2-3', + ownerType: 'user', + uploadBytesLimit: -1, + uploadBytesUsed: 20, + }), + ).toEqual({ + success: true, + }) + + expect(fileUploader.finishUploadSession).toHaveBeenCalled() + expect(domainEventPublisher.publish).toHaveBeenCalled() + }) }) diff --git a/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.ts b/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.ts index c1897afaf..5410eca06 100644 --- a/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.ts +++ b/packages/files/src/Domain/UseCase/FinishUploadSession/FinishUploadSession.ts @@ -43,8 +43,9 @@ export class FinishUploadSession implements UseCaseInterface { totalFileSize += uploadChunkResult.chunkSize } + const userHasUnlimitedStorage = dto.uploadBytesLimit === -1 const remainingSpaceLeft = dto.uploadBytesLimit - dto.uploadBytesUsed - if (remainingSpaceLeft < totalFileSize) { + if (!userHasUnlimitedStorage && remainingSpaceLeft < totalFileSize) { return { success: false, message: 'Could not finish upload session. You are out of space.',