core: create "accepted by you" item for moderator (#5901)

This commit is contained in:
spaced4ndy
2025-05-13 12:35:54 +00:00
committed by GitHub
parent e9414d713e
commit db1ffb2cf2
7 changed files with 21 additions and 1 deletions
+10
View File
@@ -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
+2
View File
@@ -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)
+1
View File
@@ -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)