From 5ad090ff9bf429727110cde04d34e74b28ac668d Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Sat, 4 Jul 2026 01:52:51 +0200 Subject: [PATCH] Bug fixes on impersonation --- .../kotlin/at/torch/compose/database/model/ChatMessage.kt | 7 +++---- .../exceptions/MarmotUnprocessableInnerEventException.kt | 4 ++++ 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 composeApp/src/commonMain/kotlin/at/torch/compose/exceptions/MarmotUnprocessableInnerEventException.kt diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt index 62bf9201..45d18aba 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt @@ -9,6 +9,8 @@ import at.torch.compose.database.model.traits.SoftDeletableEntity import at.torch.compose.database.model.traits.TimestampedEntity import at.torch.compose.database.model.traits.UserViewableEntity import at.torch.compose.exceptions.GiftWrapImpersonationException +import at.torch.compose.exceptions.MarmotUnprocessableInnerEventException +import at.torch.compose.exceptions.MarmotUnsupportedWireFormatException import at.torch.compose.extensions.toHex import com.vitorpamplona.quartz.marmot.GroupEventResult import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent @@ -82,11 +84,8 @@ data class ChatMessage( return when(groupEventResult) { is GroupEventResult.ApplicationMessage -> { val event = Event.fromJsonOrNull(groupEventResult.innerEventJson) + ?: throw MarmotUnprocessableInnerEventException("Can't process ${groupEventResult.innerEventJson}") - if (event?.pubKey != groupEvent.pubKey) { - throw GiftWrapImpersonationException("" + - "The innerEvent pubkey (${event?.pubKey}) doesn't match the groupEvent pubkey ${groupEvent.pubKey}") - } database.marmotInnerEventDao().upsert( MarmotInnerEvent( id = event.id, diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/exceptions/MarmotUnprocessableInnerEventException.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/exceptions/MarmotUnprocessableInnerEventException.kt new file mode 100644 index 00000000..edfb9f2f --- /dev/null +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/exceptions/MarmotUnprocessableInnerEventException.kt @@ -0,0 +1,4 @@ +package at.torch.compose.exceptions + +class MarmotUnprocessableInnerEventException(message: String? = null, cause: Throwable? = null) : Exception(message, cause) { +} \ No newline at end of file