fix: Specify uncategorized flows by using not-owned folders

This commit is contained in:
Faruk AYDIN
2025-03-12 13:48:53 +01:00
parent da8ef6aa73
commit e13dfe220d
2 changed files with 16 additions and 3 deletions

View File

@@ -3,8 +3,13 @@ import paginateRest from '../../../../helpers/pagination-rest.js';
export default async (request, response) => {
await request.currentUser.hasFolderAccess(request.body.folderId);
const currentUserFolderIds = await request.currentUser.getFolderIds();
const flowsQuery = request.currentUser.getFlows(
flowParams(request),
currentUserFolderIds
);
const flowsQuery = request.currentUser.getFlows(flowParams(request));
const flows = await paginateRest(flowsQuery, request.query.page);
renderObject(response, flows);

View File

@@ -525,7 +525,13 @@ class User extends Base {
return true;
}
getFlows({ folderId, name }) {
async getFolderIds() {
const folders = await this.$relatedQuery('folders').select('id');
return folders.map((folder) => folder.id);
}
getFlows({ folderId, name }, ownedFolderIds) {
return this.authorizedFlows
.clone()
.withGraphFetched({
@@ -537,7 +543,9 @@ class User extends Base {
}
if (folderId === 'null') {
builder.whereNull('flows.folder_id');
builder
.whereNull('flows.folder_id')
.orWhereNotIn('flows.folder_id', ownedFolderIds);
} else if (folderId) {
builder.where('flows.folder_id', folderId);
}