From 6b5c422e95dd1371e5d626d2a364dcfc4c7f0a55 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 15 Dec 2020 20:02:28 +0400 Subject: [PATCH] Fix mute another voice chat admin. --- .../SourceFiles/calls/calls_group_members.cpp | 26 +++++++++++++++++-- Telegram/lib_ui | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_group_members.cpp b/Telegram/SourceFiles/calls/calls_group_members.cpp index 6316eb2f9c..415ae78890 100644 --- a/Telegram/SourceFiles/calls/calls_group_members.cpp +++ b/Telegram/SourceFiles/calls/calls_group_members.cpp @@ -965,7 +965,29 @@ base::unique_qptr MembersController::rowContextMenu( parent, st::groupCallPopupMenu); - const auto mute = (real->state() != Row::State::Muted); + const auto muteState = real->state(); + const auto admin = [&] { + if (const auto chat = _peer->asChat()) { + return chat->admins.contains(user) + || (chat->creator == user->bareId()); + } else if (const auto group = _peer->asMegagroup()) { + if (const auto mgInfo = group->mgInfo.get()) { + if (mgInfo->creator == user) { + return true; + } + const auto i = mgInfo->lastAdmins.find(user); + if (i == mgInfo->lastAdmins.end()) { + return false; + } + const auto &rights = i->second.rights; + return rights.c_chatAdminRights().is_manage_call(); + } + } + return false; + }(); + const auto mute = admin + ? (muteState == Row::State::Active) + : (muteState != Row::State::Muted); const auto toggleMute = crl::guard(this, [=] { _toggleMuteRequests.fire(MuteRequest{ .user = user, @@ -1020,7 +1042,7 @@ base::unique_qptr MembersController::rowContextMenu( _kickMemberRequests.fire_copy(user); }); - if (_peer->canManageGroupCall()) { + if (_peer->canManageGroupCall() && (!admin || mute)) { result->addAction( (mute ? tr::lng_group_call_context_mute(tr::now) diff --git a/Telegram/lib_ui b/Telegram/lib_ui index e08a0de35d..300c5a9c66 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit e08a0de35dd2d0bbf26d88d127ac7b80efb94150 +Subproject commit 300c5a9c6638fd5ad797357246c7ef08a2587ab8