mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-06-04 21:12:05 +00:00
fix compilation, todos
This commit is contained in:
@@ -2023,6 +2023,7 @@ processChatCommand' vr = \case
|
||||
updateCIGroupInvitationStatus user g CIGISAccepted `catchChatError` (toView . CRChatError (Just user))
|
||||
pure $ CRUserAcceptedGroupSent user g {membership = membership {memberStatus = GSMemAccepted}} Nothing
|
||||
Nothing -> throwChatError $ CEContactNotActive ct
|
||||
-- TODO [knocking] APIAcceptMember
|
||||
APIAcceptMember groupId gmId memRole -> withUser $ \user -> do
|
||||
-- Group gInfo@GroupInfo {membership} members <- withFastStore $ \db -> getGroup db vr user groupId
|
||||
-- pure $ CRJoinedGroupMember user gInfo m {memberStatus = GSMemConnected} -- GSMemApproved?
|
||||
|
||||
@@ -594,7 +594,8 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
ucl <- withStore $ \db -> getUserContactLinkById db userId userContactLinkId
|
||||
let (UserContactLink {autoAccept}, gli_) = ucl
|
||||
when (connChatVersion < batchSend2Version) $ sendAutoReply ct' autoAccept
|
||||
forM_ gli_ $ \GroupLinkInfo {groupId, memberRole = gLinkMemRole, acceptance = _acceptance} -> do -- TODO
|
||||
-- TODO [knocking] legacy branch - do nothing?
|
||||
forM_ gli_ $ \GroupLinkInfo {groupId, memberRole = gLinkMemRole, acceptance = _acceptance} -> do
|
||||
groupInfo <- withStore $ \db -> getGroupInfo db vr user groupId
|
||||
subMode <- chatReadVar subscriptionMode
|
||||
groupConnIds <- createAgentConnectionAsync user CFCreateConnGrpInv True SCMInvitation subMode
|
||||
@@ -1330,7 +1331,6 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
messageError "processUserContactRequest: chat version range incompatible for accepting group join request"
|
||||
| otherwise -> do
|
||||
let profileMode = ExistingIncognito <$> incognitoMembershipProfile gInfo
|
||||
-- useRole = userMemberRole gLinkMemRole $ acceptAsObserver cfg
|
||||
mem <- acceptGroupJoinRequestAsync user gInfo cReq useRole profileMode
|
||||
createInternalChatItem user (CDGroupRcv gInfo mem) (CIRcvGroupEvent RGEInvitedViaGroupLink) Nothing
|
||||
toView $ CRAcceptingGroupJoinRequestMember user gInfo mem
|
||||
@@ -1338,21 +1338,24 @@ processAgentMessageConn vr user@User {userId} corrId agentConnId agentMessage =
|
||||
| v < groupJoinRejectVersion ->
|
||||
messageWarning $ "processUserContactRequest (group " <> groupName' gInfo <> "): joining of " <> displayName <> " is blocked"
|
||||
| otherwise -> do
|
||||
-- TODO [knocking] reject via agent api without creating reply queue; revert rejection changes:
|
||||
-- TODO protocol (XGrpLinkReject), status (GSMemRejected), processing on CON, INFO
|
||||
mem <- acceptGroupJoinSendRejectAsync user gInfo cReq rjctReason
|
||||
toViewTE $ TERejectingGroupJoinRequestMember user gInfo mem rjctReason
|
||||
_ -> toView $ CRReceivedContactRequest user cReq
|
||||
where
|
||||
-- rejectionReason ChatConfig {profileNameLimit, allowedProfileName}
|
||||
-- | T.length displayName > profileNameLimit = Just GRRLongName
|
||||
-- | maybe False (\f -> not $ f displayName) allowedProfileName = Just GRRBlockedName
|
||||
-- | otherwise = Nothing
|
||||
-- userMemberRole linkRole = \case
|
||||
-- Just AOAll -> GRObserver
|
||||
-- Just AONameOnly | noImage -> GRObserver
|
||||
-- Just AOIncognito | noImage && isRandomName displayName -> GRObserver
|
||||
-- _ -> linkRole
|
||||
-- where
|
||||
-- noImage = maybe True (\(ImageData i) -> i == "") image
|
||||
-- TODO [knocking] move logic to bot
|
||||
-- where
|
||||
-- rejectionReason ChatConfig {profileNameLimit, allowedProfileName}
|
||||
-- | T.length displayName > profileNameLimit = Just GRRLongName
|
||||
-- | maybe False (\f -> not $ f displayName) allowedProfileName = Just GRRBlockedName
|
||||
-- | otherwise = Nothing
|
||||
-- userMemberRole linkRole = \case
|
||||
-- Just AOAll -> GRObserver
|
||||
-- Just AONameOnly | noImage -> GRObserver
|
||||
-- Just AOIncognito | noImage && isRandomName displayName -> GRObserver
|
||||
-- _ -> linkRole
|
||||
-- where
|
||||
-- noImage = maybe True (\(ImageData i) -> i == "") image
|
||||
|
||||
memberCanSend :: GroupMember -> CM () -> CM ()
|
||||
memberCanSend GroupMember {memberRole} a
|
||||
|
||||
@@ -1031,7 +1031,7 @@ memberActive m = case memberStatus m of
|
||||
GSMemIntroInvited -> False
|
||||
GSMemAccepted -> False
|
||||
GSMemAnnounced -> False
|
||||
GSMemPendingApproval -> True -- TODO [knocking] ?
|
||||
GSMemPendingApproval -> True -- TODO [knocking] False?
|
||||
GSMemConnected -> True
|
||||
GSMemComplete -> True
|
||||
GSMemCreator -> True
|
||||
@@ -1052,7 +1052,7 @@ memberCurrent' = \case
|
||||
GSMemIntroInvited -> True
|
||||
GSMemAccepted -> True
|
||||
GSMemAnnounced -> True
|
||||
GSMemPendingApproval -> True
|
||||
GSMemPendingApproval -> True -- TODO [knocking] False
|
||||
GSMemConnected -> True
|
||||
GSMemComplete -> True
|
||||
GSMemCreator -> True
|
||||
|
||||
@@ -86,12 +86,13 @@ mkDirectoryOpts TestParams {tmpPath = ps} superUsers ownersGroup =
|
||||
adminUsers = [],
|
||||
superUsers,
|
||||
ownersGroup,
|
||||
directoryLog = Just $ ps </> "directory_service.log",
|
||||
blockedWordsFile = Nothing,
|
||||
blockedExtensionRules = Nothing,
|
||||
nameSpellingFile = Nothing,
|
||||
profileNameLimit = maxBound,
|
||||
acceptAsObserver = Nothing,
|
||||
captchaGenerator = Nothing,
|
||||
directoryLog = Just $ ps </> "directory_service.log",
|
||||
serviceName = "SimpleX-Directory",
|
||||
runCLI = False,
|
||||
searchResults = 3,
|
||||
|
||||
@@ -20,7 +20,7 @@ import qualified Data.ByteString.Char8 as B
|
||||
import Data.List (intercalate, isInfixOf)
|
||||
import qualified Data.Map.Strict as M
|
||||
import qualified Data.Text as T
|
||||
import Simplex.Chat.Controller (ChatConfig (..))
|
||||
import Simplex.Chat.Controller (ChatConfig (..), ChatHooks (..), defaultChatHooks)
|
||||
import Simplex.Chat.Library.Internal (uniqueMsgMentions, updatedMentionNames)
|
||||
import Simplex.Chat.Markdown (parseMaybeMarkdownList)
|
||||
import Simplex.Chat.Messages (CIMention (..), CIMentionMember (..), ChatItemId)
|
||||
@@ -2901,7 +2901,7 @@ testGroupLinkRejectBlockedName =
|
||||
bob <## "group link: known group #team"
|
||||
bob <## "use #team <message> to send messages"
|
||||
where
|
||||
cfg = testCfg {allowedProfileName = Just (const False)}
|
||||
cfg = testCfg {chatHooks = defaultChatHooks {acceptMember = Just (\_ _ _ -> pure $ Left GRRBlockedName)}}
|
||||
|
||||
testPlanGroupLinkKnown :: HasCallStack => TestParams -> IO ()
|
||||
testPlanGroupLinkKnown =
|
||||
|
||||
Reference in New Issue
Block a user