PM-13726: Process cipher notifications without organizationIds or collectionIds (#4102)

This commit is contained in:
David Perez 2024-10-16 11:43:46 -05:00 committed by GitHub
parent 62cfd5e746
commit cf3624264e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -162,19 +162,14 @@ class PushManagerImpl @Inject constructor(
string = notification.payload, string = notification.payload,
) )
.takeIf { isLoggedIn(userId) && it.userMatchesNotification(userId) } .takeIf { isLoggedIn(userId) && it.userMatchesNotification(userId) }
?.takeIf { ?.takeIf { it.cipherId != null && it.revisionDate != null }
it.cipherId != null &&
it.revisionDate != null &&
it.organizationId != null &&
it.collectionIds != null
}
?.let { ?.let {
mutableSyncCipherUpsertSharedFlow.tryEmit( mutableSyncCipherUpsertSharedFlow.tryEmit(
SyncCipherUpsertData( SyncCipherUpsertData(
cipherId = requireNotNull(it.cipherId), cipherId = requireNotNull(it.cipherId),
revisionDate = requireNotNull(it.revisionDate), revisionDate = requireNotNull(it.revisionDate),
organizationId = requireNotNull(it.organizationId), organizationId = it.organizationId,
collectionIds = requireNotNull(it.collectionIds), collectionIds = it.collectionIds,
isUpdate = type == NotificationType.SYNC_CIPHER_UPDATE, isUpdate = type == NotificationType.SYNC_CIPHER_UPDATE,
), ),
) )
@ -339,6 +334,6 @@ class PushManagerImpl @Inject constructor(
): Boolean = authDiskSource.getAccountTokens(userId)?.isLoggedIn == true ): Boolean = authDiskSource.getAccountTokens(userId)?.isLoggedIn == true
} }
private fun NotificationPayload.userMatchesNotification(userId: String?): Boolean { private fun NotificationPayload.userMatchesNotification(userId: String): Boolean {
return this.userId != null && this.userId == userId return this.userId != null && this.userId == userId
} }