From 230604b451654b2bc30e5ed166a0bc5952e674e1 Mon Sep 17 00:00:00 2001 From: Josh Perez <60019601+josh-signal@users.noreply.github.com> Date: Thu, 4 Mar 2021 18:08:44 -0500 Subject: [PATCH] Fix for storage service profileSharing setting --- ts/models/conversations.ts | 8 ++++---- ts/services/storageRecordOps.ts | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ts/models/conversations.ts b/ts/models/conversations.ts index 53764e9ebd..7a5f90e502 100644 --- a/ts/models/conversations.ts +++ b/ts/models/conversations.ts @@ -846,7 +846,7 @@ export class ConversationModel extends window.Backbone.Model< const after = this.get('profileSharing'); if (!viaStorageServiceSync && Boolean(before) !== Boolean(after)) { - this.captureChange('profileSharing'); + this.captureChange('enableProfileSharing'); } } @@ -858,7 +858,7 @@ export class ConversationModel extends window.Backbone.Model< const after = this.get('profileSharing'); if (!viaStorageServiceSync && Boolean(before) !== Boolean(after)) { - this.captureChange('profileSharing'); + this.captureChange('disableProfileSharing'); } } @@ -4853,7 +4853,7 @@ export class ConversationModel extends window.Backbone.Model< // [X] whitelisted // [X] archived // [X] markedUnread - captureChange(property: string): void { + captureChange(logMessage: string): void { if (!window.Signal.RemoteConfig.isEnabled('desktop.storageWrite2')) { window.log.info( 'conversation.captureChange: Returning early; desktop.storageWrite2 is falsey' @@ -4864,7 +4864,7 @@ export class ConversationModel extends window.Backbone.Model< window.log.info( 'storageService[captureChange]', - property, + logMessage, this.idForLogging() ); this.set({ needsStorageServiceSync: true }); diff --git a/ts/services/storageRecordOps.ts b/ts/services/storageRecordOps.ts index 9ad1522fb8..44bf3895ca 100644 --- a/ts/services/storageRecordOps.ts +++ b/ts/services/storageRecordOps.ts @@ -282,7 +282,7 @@ function applyMessageRequestState( conversation.unblock({ viaStorageServiceSync: true }); } - if (!record.whitelisted) { + if (record.whitelisted === false) { conversation.disableProfileSharing({ viaStorageServiceSync: true }); } } @@ -392,6 +392,7 @@ export async function mergeGroupV1Record( if (!conversation) { throw new Error(`No conversation for group(${groupId})`); } + window.log.info('storageService.mergeGroupV1Record:', conversation.debugID()); if (!conversation.isGroupV1()) { throw new Error(`Record has group type mismatch ${conversation.debugID()}`); @@ -476,6 +477,8 @@ export async function mergeGroupV2Record( const masterKeyBuffer = groupV2Record.masterKey.toArrayBuffer(); const conversation = await getGroupV2Conversation(masterKeyBuffer); + window.log.info('storageService.mergeGroupV2Record:', conversation.debugID()); + conversation.set({ isArchived: Boolean(groupV2Record.archived), markedUnread: Boolean(groupV2Record.markedUnread), @@ -551,6 +554,8 @@ export async function mergeContactRecord( 'private' ); + window.log.info('storageService.mergeContactRecord:', conversation.debugID()); + if (contactRecord.profileKey) { await conversation.setProfileKey( arrayBufferToBase64(contactRecord.profileKey.toArrayBuffer()),