From 605f31d1ad7c445e2f05014cc6a8a977ed14e7b6 Mon Sep 17 00:00:00 2001 From: AsamK Date: Fri, 7 Oct 2022 20:47:40 +0200 Subject: [PATCH] Improve handling of group join messages --- .../signal/manager/helper/IncomingMessageHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java b/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java index 4f696c92..9a4a0af0 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java @@ -185,10 +185,18 @@ public final class IncomingMessageHandler { account.getMessageSendLogStore().deleteEntryForRecipient(envelope.getTimestamp(), sender, senderDeviceId); } + var notAllowedToSendToGroup = isNotAllowedToSendToGroup(envelope, content); + final var groupContext = getGroupContext(content); + if (groupContext != null && groupContext.getGroupV2().isPresent()) { + handleGroupV2Context(groupContext.getGroupV2().get()); + } + // Check again in case the user just joined the group + notAllowedToSendToGroup = notAllowedToSendToGroup && isNotAllowedToSendToGroup(envelope, content); + if (isMessageBlocked(envelope, content)) { logger.info("Ignoring a message from blocked user/group: {}", envelope.getTimestamp()); return List.of(); - } else if (isNotAllowedToSendToGroup(envelope, content)) { + } else if (notAllowedToSendToGroup) { logger.info("Ignoring a group message from an unauthorized sender (no member or admin): {} {}", (envelope.hasSourceUuid() ? envelope.getSourceAddress() : content.getSender()).getIdentifier(), envelope.getTimestamp()); -- 2.50.1