mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 08:58:26 +00:00
cache issue for reduce function
This commit is contained in:
parent
4af32c6f98
commit
39a675c89d
1 changed files with 25 additions and 12 deletions
|
|
@ -54,6 +54,8 @@ export class AbilityService {
|
|||
if (resources && resources.some((item) => item.resource === TOOLJET_RESOURCE.APP)) {
|
||||
userPermissions[TOOLJET_RESOURCE.APP] = await this.createUserAppsPermissions(appsGranularPermissions, user);
|
||||
}
|
||||
console.log(userPermissions);
|
||||
|
||||
return userPermissions;
|
||||
}
|
||||
|
||||
|
|
@ -61,24 +63,35 @@ export class AbilityService {
|
|||
appsGranularPermissions: GranularPermissions[],
|
||||
user: User
|
||||
): Promise<UserAppsPermissions> {
|
||||
const userAppsPermissions: UserAppsPermissions = appsGranularPermissions.reduce((acc, permission) => {
|
||||
const userAppsPermissions: UserAppsPermissions = { ...DEFAULT_USER_APPS_PERMISSIONS };
|
||||
|
||||
appsGranularPermissions.forEach((permission) => {
|
||||
const appsPermission = permission?.appsGroupPermissions;
|
||||
|
||||
const groupApps = appsPermission?.groupApps ? appsPermission.groupApps.map((item) => item.appId) : [];
|
||||
return {
|
||||
isAllEditable: acc.isAllEditable || (permission.isAll && appsPermission?.canEdit),
|
||||
editableAppsId: Array.from(new Set([...acc.editableAppsId, ...(appsPermission?.canEdit ? groupApps : [])])),
|
||||
isAllViewable: acc.isAllViewable || (permission.isAll && appsPermission?.canView),
|
||||
viewableAppsId: Array.from(new Set([...acc.viewableAppsId, ...(appsPermission?.canView ? groupApps : [])])),
|
||||
hiddenAppsId: Array.from(
|
||||
new Set([...acc.hiddenAppsId, ...(appsPermission?.hideFromDashboard ? groupApps : [])])
|
||||
),
|
||||
hideAll: acc.hideAll || (appsPermission.hideFromDashboard && permission.isAll),
|
||||
};
|
||||
}, DEFAULT_USER_APPS_PERMISSIONS);
|
||||
|
||||
userAppsPermissions.isAllEditable =
|
||||
userAppsPermissions.isAllEditable || (permission.isAll && appsPermission?.canEdit);
|
||||
userAppsPermissions.editableAppsId = Array.from(
|
||||
new Set([...userAppsPermissions.editableAppsId, ...(appsPermission?.canEdit ? groupApps : [])])
|
||||
);
|
||||
userAppsPermissions.isAllViewable =
|
||||
userAppsPermissions.isAllViewable || (permission.isAll && appsPermission?.canView);
|
||||
userAppsPermissions.viewableAppsId = Array.from(
|
||||
new Set([...userAppsPermissions.viewableAppsId, ...(appsPermission?.canView ? groupApps : [])])
|
||||
);
|
||||
userAppsPermissions.hiddenAppsId = Array.from(
|
||||
new Set([...userAppsPermissions.hiddenAppsId, ...(appsPermission?.hideFromDashboard ? groupApps : [])])
|
||||
);
|
||||
userAppsPermissions.hideAll =
|
||||
userAppsPermissions.hideAll || (appsPermission?.hideFromDashboard && permission.isAll);
|
||||
});
|
||||
|
||||
await dbTransactionWrap(async (manager: EntityManager) => {
|
||||
const appsOwnedByUser = await manager.find(App, {
|
||||
where: { userId: user.id, organizationId: user.organizationId },
|
||||
});
|
||||
|
||||
const appsIdOwnedByUser = appsOwnedByUser.map((app) => app.id);
|
||||
userAppsPermissions.editableAppsId = Array.from(
|
||||
new Set([...userAppsPermissions.editableAppsId, ...appsIdOwnedByUser])
|
||||
|
|
|
|||
Loading…
Reference in a new issue