From 3fa509674e590e5a150b5a373f896682d48503a0 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 24 Mar 2025 18:03:18 +0100 Subject: [PATCH] fix: Filtered flows by only owned with null folder id --- packages/backend/src/models/user.js | 8 +++++--- packages/backend/src/models/user.test.js | 14 +++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/backend/src/models/user.js b/packages/backend/src/models/user.js index 08243fb0..35ce8e1a 100644 --- a/packages/backend/src/models/user.js +++ b/packages/backend/src/models/user.js @@ -553,9 +553,11 @@ class User extends Base { } if (folderId === 'null') { - builder - .whereNull('flows.folder_id') - .orWhereNotIn('flows.folder_id', ownedFolderIds); + builder.where((builder) => { + builder + .whereNull('flows.folder_id') + .orWhereNotIn('flows.folder_id', ownedFolderIds); + }); } else if (folderId) { builder.where('flows.folder_id', folderId); } diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index c94b6026..0a1c4419 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -1186,6 +1186,7 @@ describe('User model', () => { currentUserRole, anotherUser, folder, + anotherUserFolder, flowOne, flowTwo, flowThree; @@ -1197,7 +1198,7 @@ describe('User model', () => { anotherUser = await createUser(); folder = await createFolder({ userId: currentUser.id }); - await createFolder({ userId: anotherUser.id }); + anotherUserFolder = await createFolder({ userId: anotherUser.id }); flowOne = await createFlow({ userId: currentUser.id, @@ -1215,6 +1216,7 @@ describe('User model', () => { flowThree = await createFlow({ userId: anotherUser.id, name: 'Flow Three', + folderId: anotherUserFolder.id, }); await createPermission({ @@ -1268,6 +1270,16 @@ describe('User model', () => { expect(flows[1].id).toBe(flowTwo.id); }); + it('should return flows filtered by onlyOwnedFlows with null folderId', async () => { + const flows = await currentUser.getFlows( + { onlyOwnedFlows: true, folderId: 'null' }, + [folder.id] + ); + + expect(flows).toHaveLength(1); + expect(flows[0].id).toBe(flowTwo.id); + }); + it('should return flows with specific folder ID', async () => { const flows = await currentUser.getFlows({ folderId: folder.id }, [ folder.id,