diff --git a/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts b/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts index 2aedd49af..a395df8e6 100644 --- a/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts +++ b/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts @@ -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 = diff --git a/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts b/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts index 7c27d1471..77e13b265 100644 --- a/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts @@ -35,7 +35,8 @@ export class PermissionsService { workspaceId: string; }): Promise<{ settingsPermissions: Record; - objectRecordsPermissions: ObjectRecordsPermissions; + objectRecordsPermissions: Record; + 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, }; }