mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-05-06 15:47:51 +00:00
core: create "accepted by you" item for moderator (#5901)
This commit is contained in:
@@ -2062,6 +2062,11 @@ processChatCommand' vr = \case
|
||||
m' <- updateGroupMemberAccepted db user m GSMemConnected role
|
||||
gInfo' <- updateGroupMembersRequireAttention db user gInfo m m'
|
||||
pure (m', gInfo')
|
||||
-- create item in both scopes
|
||||
createInternalChatItem user (CDGroupRcv gInfo' Nothing m') (CIRcvGroupEvent RGEMemberConnected) Nothing
|
||||
let scopeInfo = Just GCSIMemberSupport {groupMember_ = Just m'}
|
||||
gEvent = SGEMemberAccepted gmId (fromLocalProfile $ memberProfile m')
|
||||
createInternalChatItem user (CDGroupSnd gInfo' scopeInfo) (CISndGroupEvent gEvent) Nothing
|
||||
pure $ CRMemberAccepted user gInfo' m'
|
||||
Nothing -> throwChatError CEGroupMemberNotActive
|
||||
GSMemPendingReview -> do
|
||||
@@ -2078,6 +2083,11 @@ processChatCommand' vr = \case
|
||||
m' <- updateGroupMemberAccepted db user m newMemberStatus role
|
||||
gInfo' <- updateGroupMembersRequireAttention db user gInfo m m'
|
||||
pure (m', gInfo')
|
||||
-- create item in both scopes
|
||||
createInternalChatItem user (CDGroupRcv gInfo' Nothing m') (CIRcvGroupEvent RGEMemberConnected) Nothing
|
||||
let scopeInfo = Just GCSIMemberSupport {groupMember_ = Just m'}
|
||||
gEvent = SGEMemberAccepted gmId (fromLocalProfile $ memberProfile m')
|
||||
createInternalChatItem user (CDGroupSnd gInfo' scopeInfo) (CISndGroupEvent gEvent) Nothing
|
||||
pure $ CRMemberAccepted user gInfo' m'
|
||||
where
|
||||
newMemberStatus = case memberConn m of
|
||||
|
||||
@@ -2104,6 +2104,8 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
gInfo' <- updateGroupMembersRequireAttention db user gInfo referencedMember referencedMember'
|
||||
pure (referencedMember', gInfo')
|
||||
when (memberCategory referencedMember == GCInviteeMember) $ introduceToRemainingMembers referencedMember'
|
||||
-- create item in both scopes
|
||||
memberConnectedChatItem gInfo' Nothing referencedMember'
|
||||
let scopeInfo = Just $ GCSIMemberSupport {groupMember_ = Just referencedMember'}
|
||||
gEvent = RGEMemberAccepted (groupMemberId' referencedMember') (fromLocalProfile $ memberProfile referencedMember')
|
||||
(ci, cInfo) <- saveRcvChatItemNoParse user (CDGroupRcv gInfo' scopeInfo m) msg brokerTs (CIRcvGroupEvent gEvent)
|
||||
|
||||
@@ -343,6 +343,7 @@ sndGroupEventToText = \case
|
||||
SGEMemberDeleted _ p -> "removed " <> profileToText p
|
||||
SGEUserLeft -> "left"
|
||||
SGEGroupUpdated _ -> "group profile updated"
|
||||
SGEMemberAccepted _ _p -> "you accepted this member"
|
||||
SGEUserPendingReview -> "please wait for group moderators to review your request to join the group"
|
||||
|
||||
-- used to send to members with old version
|
||||
|
||||
@@ -41,6 +41,7 @@ data SndGroupEvent
|
||||
| SGEMemberDeleted {groupMemberId :: GroupMemberId, profile :: Profile} -- CRUserDeletedMembers
|
||||
| SGEUserLeft -- CRLeftMemberUser
|
||||
| SGEGroupUpdated {groupProfile :: GroupProfile} -- CRGroupUpdated
|
||||
| SGEMemberAccepted {groupMemberId :: GroupMemberId, profile :: Profile}
|
||||
| SGEUserPendingReview
|
||||
deriving (Show)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user