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