From 1ebd43179138133422cacd6616986fcc10234e01 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 14 Jun 2024 23:31:13 +0300 Subject: [PATCH] Allow self in get_star_transactions. --- td/telegram/StarManager.cpp | 7 +++++-- td/telegram/StarManager.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/td/telegram/StarManager.cpp b/td/telegram/StarManager.cpp index 4c5f0a72c..0aee9bc5a 100644 --- a/td/telegram/StarManager.cpp +++ b/td/telegram/StarManager.cpp @@ -298,10 +298,13 @@ void StarManager::tear_down() { parent_.reset(); } -Status StarManager::can_manage_stars(DialogId dialog_id) const { +Status StarManager::can_manage_stars(DialogId dialog_id, bool allow_self) const { switch (dialog_id.get_type()) { case DialogType::User: { auto user_id = dialog_id.get_user_id(); + if (allow_self && user_id == td_->user_manager_->get_my_id()) { + break; + } TRY_RESULT(bot_data, td_->user_manager_->get_bot_data(user_id)); if (!bot_data.can_be_edited) { return Status::Error(400, "The bot isn't owned"); @@ -332,7 +335,7 @@ void StarManager::get_star_transactions(td_api::object_ptr &&direction, Promise> &&promise) { TRY_RESULT_PROMISE(promise, dialog_id, get_message_sender_dialog_id(td_, owner_id, true, false)); - TRY_STATUS_PROMISE(promise, can_manage_stars(dialog_id)); + TRY_STATUS_PROMISE(promise, can_manage_stars(dialog_id, true)); if (limit < 0) { return promise.set_error(Status::Error(400, "Limit must be non-negative")); } diff --git a/td/telegram/StarManager.h b/td/telegram/StarManager.h index 653d32ed9..534b95e46 100644 --- a/td/telegram/StarManager.h +++ b/td/telegram/StarManager.h @@ -45,7 +45,7 @@ class StarManager final : public Actor { private: void tear_down() final; - Status can_manage_stars(DialogId dialog_id) const; + Status can_manage_stars(DialogId dialog_id, bool allow_self = false) const; void send_get_star_withdrawal_url_query( DialogId dialog_id, int64 star_count,