fix: Specify uncategorized flows by using not-owned folders
This commit is contained in:
@@ -3,8 +3,13 @@ import paginateRest from '../../../../helpers/pagination-rest.js';
|
|||||||
|
|
||||||
export default async (request, response) => {
|
export default async (request, response) => {
|
||||||
await request.currentUser.hasFolderAccess(request.body.folderId);
|
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);
|
const flows = await paginateRest(flowsQuery, request.query.page);
|
||||||
|
|
||||||
renderObject(response, flows);
|
renderObject(response, flows);
|
||||||
|
|||||||
@@ -525,7 +525,13 @@ class User extends Base {
|
|||||||
return true;
|
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
|
return this.authorizedFlows
|
||||||
.clone()
|
.clone()
|
||||||
.withGraphFetched({
|
.withGraphFetched({
|
||||||
@@ -537,7 +543,9 @@ class User extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (folderId === 'null') {
|
if (folderId === 'null') {
|
||||||
builder.whereNull('flows.folder_id');
|
builder
|
||||||
|
.whereNull('flows.folder_id')
|
||||||
|
.orWhereNotIn('flows.folder_id', ownedFolderIds);
|
||||||
} else if (folderId) {
|
} else if (folderId) {
|
||||||
builder.where('flows.folder_id', folderId);
|
builder.where('flows.folder_id', folderId);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user