Add additional safeguards around storage sync types.

This commit is contained in:
Greyson Parrelli
2025-04-21 13:18:22 -04:00
committed by Cody Henthorne
parent dd6c39f7eb
commit 4b4d3d33b1

View File

@@ -1208,25 +1208,22 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
.where(
"""
$STORAGE_SERVICE_ID NOT NULL AND (
($TYPE = ? AND ($ACI_COLUMN NOT NULL OR $PNI_COLUMN NOT NULL) AND $ID != ?)
($TYPE = ${RecipientType.INDIVIDUAL.id} AND ($ACI_COLUMN NOT NULL OR $PNI_COLUMN NOT NULL) AND $ID != ${Recipient.self().id.toLong()})
OR
$TYPE = ?
$TYPE = ${RecipientType.GV1.id}
OR
$DISTRIBUTION_LIST_ID NOT NULL AND $DISTRIBUTION_LIST_ID IN (
($TYPE = ${RecipientType.DISTRIBUTION_LIST.id} AND $DISTRIBUTION_LIST_ID NOT NULL AND $DISTRIBUTION_LIST_ID IN (
SELECT ${DistributionListTables.ListTable.ID}
FROM ${DistributionListTables.ListTable.TABLE_NAME}
)
))
OR
$CALL_LINK_ROOM_ID NOT NULL AND $CALL_LINK_ROOM_ID IN (
($TYPE = ${RecipientType.CALL_LINK.id} AND $CALL_LINK_ROOM_ID NOT NULL AND $CALL_LINK_ROOM_ID IN (
SELECT ${CallLinkTable.ROOM_ID}
FROM ${CallLinkTable.TABLE_NAME}
WHERE (${CallLinkTable.ADMIN_KEY} NOT NULL OR ${CallLinkTable.DELETION_TIMESTAMP} > 0) AND ${CallLinkTable.ROOT_KEY} NOT NULL
)
))
)
""",
RecipientType.INDIVIDUAL.id,
Recipient.self().id,
RecipientType.GV1.id
"""
)
.run()
.use { cursor ->