From 7d7c3e7cdbfc04a57fe20f271617efe161a72aed Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 25 Jul 2025 23:14:32 +0300 Subject: [PATCH] fix(ws): new attachments' title not decrypted (closes #6473) --- apps/server/src/services/ws.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/apps/server/src/services/ws.ts b/apps/server/src/services/ws.ts index ad1aafe0f..c37cf7550 100644 --- a/apps/server/src/services/ws.ts +++ b/apps/server/src/services/ws.ts @@ -196,13 +196,21 @@ function fillInAdditionalProperties(entityChange: EntityChange) { entityChange.entity = sql.getRow(/*sql*/`SELECT * FROM options WHERE name = ?`, [entityChange.entityId]); } } else if (entityChange.entityName === "attachments") { - entityChange.entity = sql.getRow( - /*sql*/`SELECT attachments.*, LENGTH(blobs.content) AS contentLength - FROM attachments - JOIN blobs USING (blobId) - WHERE attachmentId = ?`, - [entityChange.entityId] - ); + entityChange.entity = becca.getAttachment(entityChange.entityId); + + if (!entityChange.entity) { + entityChange.entity = sql.getRow( + /*sql*/`SELECT attachments.*, LENGTH(blobs.content) AS contentLength + FROM attachments + JOIN blobs USING (blobId) + WHERE attachmentId = ?`, + [entityChange.entityId] + ); + + if (entityChange.entity?.isProtected) { + entityChange.entity.title = protectedSessionService.decryptString(entityChange.entity.title || ""); + } + } } if (entityChange.entity instanceof AbstractBeccaEntity) {