[permissions] Avoid N+1 on roles (#10041)

This commit is contained in:
Marie
2025-02-06 11:27:11 +01:00
committed by GitHub
parent 049a0118aa
commit 8a660d5d3f
5 changed files with 102 additions and 79 deletions

View File

@ -21,8 +21,9 @@ export class PermissionsService {
}: {
userWorkspaceId: string;
}): Promise<Record<SettingsFeatures, boolean>> {
const [roleOfUserWorkspace] =
await this.userRoleService.getRolesForUserWorkspace(userWorkspaceId);
const [roleOfUserWorkspace] = await this.userRoleService
.getRolesByUserWorkspaces([userWorkspaceId])
.then((roles) => roles?.get(userWorkspaceId) ?? []);
let hasPermissionOnSettingFeature = false;
@ -46,10 +47,11 @@ export class PermissionsService {
userWorkspaceId: string;
setting: SettingsFeatures;
}): Promise<void> {
const [userWorkspaceRole] =
await this.userRoleService.getRolesForUserWorkspace(userWorkspaceId);
const [roleOfUserWorkspace] = await this.userRoleService
.getRolesByUserWorkspaces([userWorkspaceId])
.then((roles) => roles?.get(userWorkspaceId) ?? []);
if (userWorkspaceRole?.canUpdateAllSettings === true) {
if (roleOfUserWorkspace?.canUpdateAllSettings === true) {
return;
}