diff --git a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp index 85e56ef3a2..3c2893f642 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp @@ -307,9 +307,11 @@ FnasChatNotMigrated()) { const auto saveChatAdmin = [&](bool isAdmin) { SaveChatAdmin(show, chat, user, isAdmin, done, onFail); + if (rank) { + SaveMemberRank(show, chat, user, *rank, [] {}, [] {}); + } }; - if (newRights.flags == chat->defaultAdminRights(user).flags - && (!rank.has_value() || rank->isEmpty())) { + if (newRights.flags == chat->defaultAdminRights(user).flags) { saveChatAdmin(true); } else if (!newRights.flags) { saveChatAdmin(false); @@ -598,6 +600,9 @@ void ParticipantsAdditionalData::fillFromChat(not_null chat) { } _members = chat->participants; _admins = chat->admins; + for (const auto &[uid, rank] : chat->memberRanks) { + _memberRanks[chat->owner().user(uid)] = rank; + } } void ParticipantsAdditionalData::fillFromChannel(