diff --git a/server/collaboration/persistence.js b/server/collaboration/persistence.js index dcbff903..016f0db6 100644 --- a/server/collaboration/persistence.js +++ b/server/collaboration/persistence.js @@ -52,7 +52,7 @@ export default class Persistence { documentName, }: { document: Y.Doc, - context: { user: User }, + context: { user: ?User }, documentName: string, }) => { const [, documentId] = documentName.split("."); @@ -63,7 +63,7 @@ export default class Persistence { await documentUpdater({ documentId, ydoc: document, - userId: context.user.id, + userId: context.user?.id, }); } catch (err) { Logger.error("Unable to persist document", err, { diff --git a/server/commands/documentUpdater.js b/server/commands/documentUpdater.js index 72de0acc..d9a845b2 100644 --- a/server/commands/documentUpdater.js +++ b/server/commands/documentUpdater.js @@ -13,7 +13,7 @@ export default async function documentUpdater({ }: { documentId: string, ydoc: Y.Doc, - userId: string, + userId?: string, }) { const document = await Document.findByPk(documentId); const state = Y.encodeStateAsUpdate(ydoc); @@ -38,7 +38,8 @@ export default async function documentUpdater({ text, state: Buffer.from(state), updatedAt: isUnchanged ? document.updatedAt : new Date(), - lastModifiedById: isUnchanged ? document.lastModifiedById : userId, + lastModifiedById: + isUnchanged || !userId ? document.lastModifiedById : userId, collaboratorIds, }, {