From 1728dbf561fea9ee9a95f149baf8daddee170d88 Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 10 Feb 2024 23:53:44 +0300 Subject: [PATCH] Add rights check in get_background_dialog. --- td/telegram/BackgroundManager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/td/telegram/BackgroundManager.cpp b/td/telegram/BackgroundManager.cpp index e7cce9512..c80e1f3d8 100644 --- a/td/telegram/BackgroundManager.cpp +++ b/td/telegram/BackgroundManager.cpp @@ -742,7 +742,7 @@ void BackgroundManager::delete_background(bool for_dark_theme, Promise &&p } Result BackgroundManager::get_background_dialog(DialogId dialog_id) { - if (!td_->dialog_manager_->have_dialog_force(dialog_id, "set_dialog_background")) { + if (!td_->dialog_manager_->have_dialog_force(dialog_id, "get_background_dialog")) { return Status::Error(400, "Chat not found"); } if (!td_->dialog_manager_->have_input_peer(dialog_id, AccessRights::Write)) { @@ -754,8 +754,12 @@ Result BackgroundManager::get_background_dialog(DialogId dialog_id) { return dialog_id; case DialogType::Chat: return Status::Error(400, "Can't change background in the chat"); - case DialogType::Channel: + case DialogType::Channel: { + if (!td_->contacts_manager_->get_channel_status(dialog_id.get_channel_id()).can_change_info_and_settings()) { + return Status::Error(400, "Not enough rights in the chat"); + } return dialog_id; + } case DialogType::SecretChat: { auto user_id = td_->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id()); if (!user_id.is_valid()) {