mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-23 00:02:28 +00:00
core: prohibit to change or assign relay role (#7284)
This commit is contained in:
1 parent
49a8664331
commit
8ec4b424cb
3 files changed
+17
-15
No files matched your search
@@ -1288,13 +1288,11 @@ isRosterRole r = r == GRMember || r == GRModerator || r == GRAdmin
|
||||
isPrivilegedRole :: GroupMemberRole -> Bool
|
||||
isPrivilegedRole r = r >= GRMember
|
||||
|
||||
-- Minimum role allowed to change a member's role from `from` to `to` (moderators only within observer..member).
|
||||
-- Minimum role allowed to change a member's role from `from` to `to` (moderators only up to member; relay checked separately).
|
||||
roleRequiredToChange :: GroupMemberRole -> GroupMemberRole -> GroupMemberRole
|
||||
roleRequiredToChange from to
|
||||
| moderatable from && moderatable to = GRModerator
|
||||
| from <= GRMember && to <= GRMember = GRModerator
|
||||
| otherwise = maximum ([GRAdmin, from, to] :: [GroupMemberRole])
|
||||
where
|
||||
moderatable r = GRObserver <= r && r <= GRMember
|
||||
|
||||
-- Drop non-privileged-role entries and de-duplicate by memberId, keeping the first.
|
||||
-- Runs on the parsed roster blob.
|
||||
|
||||
Reference in new issue
Block a user