Skip to content

Commit b9ee12d

Browse files
authored
fix: await canManageX calls (#4599)
1 parent ddd9afd commit b9ee12d

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

packages/api-aco/src/folder/folder.gql.ts

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,42 @@ export const createFoldersSchema = (params: CreateFolderTypeDefsParams) => {
5353
},
5454
listFoldersCompressed: async (_, args: any, context) => {
5555
return resolve(async () => {
56+
ensureAuthentication(context);
57+
5658
const [entries] = await context.aco.folder.list(args);
59+
const foldersPromises = entries.map(folder => {
60+
const { folderLevelPermissions: flp } = context.aco;
61+
62+
const canManageStructure = flp.canManageFolderStructure(folder);
63+
const canManagePermissions = flp.canManageFolderPermissions(folder);
64+
const canManageContent = flp.canManageFolderContent(folder);
65+
const hasNonInheritedPermissions =
66+
flp.permissionsIncludeNonInheritedPermissions(folder.permissions);
5767

58-
const folders = entries.map(folder => ({
59-
...folder,
60-
hasNonInheritedPermissions:
61-
context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(
62-
folder.permissions
63-
),
64-
canManageStructure:
65-
context.aco.folderLevelPermissions.canManageFolderStructure(folder),
66-
canManagePermissions:
67-
context.aco.folderLevelPermissions.canManageFolderPermissions(
68-
folder
69-
),
70-
canManageContent:
71-
context.aco.folderLevelPermissions.canManageFolderContent(folder)
72-
}));
68+
return Promise.all([
69+
canManageStructure,
70+
canManagePermissions,
71+
canManageContent,
72+
hasNonInheritedPermissions
73+
]).then(
74+
([
75+
canManageStructure,
76+
canManagePermissions,
77+
canManageContent,
78+
hasNonInheritedPermissions
79+
]) => {
80+
return {
81+
...folder,
82+
canManageStructure,
83+
canManagePermissions,
84+
canManageContent,
85+
hasNonInheritedPermissions
86+
};
87+
}
88+
);
89+
});
7390

74-
return compress(folders);
91+
return Promise.all(foldersPromises).then(compress);
7592
});
7693
},
7794
listFolderLevelPermissionsTargets: async (_, args: any, context) => {

0 commit comments

Comments
 (0)