From 7c55d986af8bd1ba3c9ee5668db474be4aa73269 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Mon, 13 Apr 2026 12:22:12 +0400 Subject: [PATCH] core: channel commenter role --- src/Simplex/Chat.hs | 2 +- src/Simplex/Chat/Library/Subscriber.hs | 2 +- src/Simplex/Chat/Types/Shared.hs | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 2671774603..7f85413fb4 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -114,7 +114,7 @@ defaultChatConfig = highlyAvailable = False, deliveryWorkerDelay = 0, deliveryBucketSize = 10000, - channelSubscriberRole = GRObserver, + channelSubscriberRole = GRCommenter, deviceNameForRemote = "", remoteCompression = True, chatHooks = defaultChatHooks diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index f5f7752ca4..9fa55956ed 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -1533,7 +1533,7 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage = memberCanSend (Just m@GroupMember {memberRole}) msgScope a = case msgScope of Just MSMember {} -> a Nothing - | memberRole > GRObserver || memberPending m -> a + | memberRole >= GRAuthor || memberPending m -> a | otherwise -> messageError "member is not allowed to send messages" $> Nothing processConnMERR :: ConnectionEntity -> Connection -> AgentErrorType -> CM () diff --git a/src/Simplex/Chat/Types/Shared.hs b/src/Simplex/Chat/Types/Shared.hs index 22cb73f325..57abd3092c 100644 --- a/src/Simplex/Chat/Types/Shared.hs +++ b/src/Simplex/Chat/Types/Shared.hs @@ -19,6 +19,7 @@ data GroupMemberRole = GRUnknown Text -- unknown role from a newer client | GRRelay -- chat relay: forwards messages, can't send its own messages | GRObserver -- connects to all group members and receives all messages, can't send messages + | GRCommenter -- + can comment on channel posts, can't send messages to the main channel | GRAuthor -- reserved, unused | GRMember -- + can send messages to all group members | GRModerator -- + moderate messages and block members (excl. Admins and Owners) @@ -37,6 +38,7 @@ instance TextEncoding GroupMemberRole where GRModerator -> "moderator" GRMember -> "member" GRAuthor -> "author" + GRCommenter -> "commenter" GRObserver -> "observer" GRRelay -> "relay" GRUnknown t -> t @@ -46,6 +48,7 @@ instance TextEncoding GroupMemberRole where "moderator" -> GRModerator "member" -> GRMember "author" -> GRAuthor + "commenter" -> GRCommenter "observer" -> GRObserver "relay" -> GRRelay t -> GRUnknown t