Fix missing objectRecordsPermissions from the API when permissions v2 is enabled (#12353)

This commit is contained in:
Weiko
2025-05-28 14:33:03 +02:00
committed by GitHub
parent 689e4ccfee
commit ee00e2319e
2 changed files with 28 additions and 13 deletions

View File

@ -135,15 +135,15 @@ export class UserResolver {
});
settingsPermissions = permissions.settingsPermissions;
objectPermissions = Object.entries(
permissions.objectRecordsPermissions,
).map(([objectMetadataId, permissions]) => ({
objectMetadataId,
canReadObjectRecords: permissions.canRead,
canUpdateObjectRecords: permissions.canUpdate,
canSoftDeleteObjectRecords: permissions.canSoftDelete,
canDestroyObjectRecords: permissions.canDestroy,
}));
objectPermissions = Object.entries(permissions.objectPermissions).map(
([objectMetadataId, permissions]) => ({
objectMetadataId,
canReadObjectRecords: permissions.canRead,
canUpdateObjectRecords: permissions.canUpdate,
canSoftDeleteObjectRecords: permissions.canSoftDelete,
canDestroyObjectRecords: permissions.canDestroy,
}),
);
objectRecordsPermissions = permissions.objectRecordsPermissions;
} else {
const permissions =

View File

@ -35,7 +35,8 @@ export class PermissionsService {
workspaceId: string;
}): Promise<{
settingsPermissions: Record<SettingPermissionType, boolean>;
objectRecordsPermissions: ObjectRecordsPermissions;
objectRecordsPermissions: Record<PermissionsOnAllObjectRecords, boolean>;
objectPermissions: ObjectRecordsPermissions;
}> {
const [roleOfUserWorkspace] = await this.userRoleService
.getRolesByUserWorkspaces({
@ -76,12 +77,26 @@ export class PermissionsService {
workspaceId,
});
const objectRecordsPermissions =
rolesPermissions[roleOfUserWorkspace.id] ?? {};
const objectPermissions = rolesPermissions[roleOfUserWorkspace.id] ?? {};
const objectRecordsPermissionsMap: Record<
PermissionsOnAllObjectRecords,
boolean
> = {
[PermissionsOnAllObjectRecords.READ_ALL_OBJECT_RECORDS]:
roleOfUserWorkspace.canReadAllObjectRecords ?? false,
[PermissionsOnAllObjectRecords.UPDATE_ALL_OBJECT_RECORDS]:
roleOfUserWorkspace.canUpdateAllObjectRecords ?? false,
[PermissionsOnAllObjectRecords.SOFT_DELETE_ALL_OBJECT_RECORDS]:
roleOfUserWorkspace.canSoftDeleteAllObjectRecords ?? false,
[PermissionsOnAllObjectRecords.DESTROY_ALL_OBJECT_RECORDS]:
roleOfUserWorkspace.canDestroyAllObjectRecords ?? false,
};
return {
settingsPermissions: settingsPermissionsMap,
objectRecordsPermissions: objectRecordsPermissions,
objectRecordsPermissions: objectRecordsPermissionsMap,
objectPermissions,
};
}