From d95517644eaa08d98b5ce532914443eff70f33bd Mon Sep 17 00:00:00 2001 From: zhyd1997 Date: Thu, 18 Sep 2025 02:23:44 +0800 Subject: [PATCH 1/2] fix(server): enhance logo handling in `UserWorkspaceService` Updated the `castWorkspaceToAvailableWorkspace` method to sign the workspace logo URL if it exists. Added error handling to fallback to the original logo URL in case of signing failure. This improves the reliability of logo display in user workspaces. --- .../user-workspace/user-workspace.service.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts index 8c531f3df2d0..bf8214677716 100644 --- a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts +++ b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts @@ -377,11 +377,23 @@ export class UserWorkspaceService extends TypeOrmQueryService { } castWorkspaceToAvailableWorkspace(workspace: Workspace) { + let signedLogo: string | undefined = workspace.logo ?? undefined; + if (isDefined(workspace.logo)) { + try { + signedLogo = this.fileService.signFileUrl({ + url: workspace.logo as string, + workspaceId: workspace.id, + }); + } catch { + signedLogo = workspace.logo as string; + } + } + return { id: workspace.id, displayName: workspace.displayName, workspaceUrls: this.domainManagerService.getWorkspaceUrls(workspace), - logo: workspace.logo, + logo: signedLogo, sso: workspace.workspaceSSOIdentityProviders?.reduce( (acc, identityProvider) => From ef508b23e5e746ce65c52cf928032019d3ccac8f Mon Sep 17 00:00:00 2001 From: zhyd1997 Date: Thu, 18 Sep 2025 02:32:41 +0800 Subject: [PATCH 2/2] style(server): lint fix. --- .../engine/core-modules/user-workspace/user-workspace.service.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts index bf8214677716..2af84bd250b7 100644 --- a/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts +++ b/packages/twenty-server/src/engine/core-modules/user-workspace/user-workspace.service.ts @@ -378,6 +378,7 @@ export class UserWorkspaceService extends TypeOrmQueryService { castWorkspaceToAvailableWorkspace(workspace: Workspace) { let signedLogo: string | undefined = workspace.logo ?? undefined; + if (isDefined(workspace.logo)) { try { signedLogo = this.fileService.signFileUrl({