mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-13 03:15:46 +00:00
mobile: refine allowed group actions; inactive group indicator (#852)
This commit is contained in:
@@ -441,10 +441,7 @@ processChatCommand = \case
|
||||
pure $ CRContactConnectionDeleted conn
|
||||
CTGroup -> do
|
||||
g@(Group gInfo@GroupInfo {membership} members) <- withStore $ \db -> getGroup db user chatId
|
||||
let s = memberStatus membership
|
||||
canDelete =
|
||||
memberRole (membership :: GroupMember) == GROwner
|
||||
|| (s == GSMemRemoved || s == GSMemLeft || s == GSMemGroupDeleted || s == GSMemInvited)
|
||||
let canDelete = memberRole (membership :: GroupMember) == GROwner || not (memberCurrent membership)
|
||||
unless canDelete $ throwChatError CEGroupUserRole
|
||||
withChatLock . procCmd $ do
|
||||
when (memberActive membership) . void $ sendGroupMessage gInfo members XGrpDel
|
||||
@@ -745,7 +742,7 @@ processChatCommand = \case
|
||||
Nothing -> throwChatError CEGroupMemberNotFound
|
||||
Just m@GroupMember {memberId = mId, memberRole = mRole, memberStatus = mStatus, memberProfile} -> do
|
||||
let userRole = memberRole (membership :: GroupMember)
|
||||
canRemove = userRole >= GRAdmin && userRole >= mRole
|
||||
canRemove = userRole >= GRAdmin && userRole >= mRole && memberCurrent membership
|
||||
unless canRemove $ throwChatError CEGroupUserRole
|
||||
withChatLock . procCmd $ do
|
||||
when (mStatus /= GSMemInvited) $ do
|
||||
|
||||
Reference in New Issue
Block a user