2
0
mirror of https://github.com/tdlib/telegram-bot-api synced 2025-08-22 01:49:24 +00:00

Support can_manage_direct_messages administrator right in channels.

This commit is contained in:
levlam 2025-08-01 16:56:07 +03:00
parent b545895504
commit 5a75b26787

View File

@ -9760,11 +9760,12 @@ td::Result<td_api::object_ptr<td_api::chatAdministratorRights>> Client::get_chat
TRY_RESULT(can_post_stories, object.get_optional_bool_field("can_post_stories"));
TRY_RESULT(can_edit_stories, object.get_optional_bool_field("can_edit_stories"));
TRY_RESULT(can_delete_stories, object.get_optional_bool_field("can_delete_stories"));
TRY_RESULT(can_manage_direct_messages, object.get_optional_bool_field("can_manage_direct_messages"));
TRY_RESULT(is_anonymous, object.get_optional_bool_field("is_anonymous"));
return make_object<td_api::chatAdministratorRights>(
can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users,
can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats,
can_post_stories, can_edit_stories, can_delete_stories, false, is_anonymous);
can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, is_anonymous);
}
td::Result<td_api::object_ptr<td_api::chatAdministratorRights>> Client::get_chat_administrator_rights(
@ -13596,13 +13597,14 @@ td::Status Client::process_promote_chat_member_query(PromisedQueryPtr &query) {
auto can_post_stories = to_bool(query->arg("can_post_stories"));
auto can_edit_stories = to_bool(query->arg("can_edit_stories"));
auto can_delete_stories = to_bool(query->arg("can_delete_stories"));
auto can_manage_direct_messages = to_bool(query->arg("can_manage_direct_messages"));
auto is_anonymous = to_bool(query->arg("is_anonymous"));
auto status = make_object<td_api::chatMemberStatusAdministrator>(
td::string(), true,
make_object<td_api::chatAdministratorRights>(
can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users,
can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats,
can_post_stories, can_edit_stories, can_delete_stories, false, is_anonymous));
can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, is_anonymous));
check_chat(chat_id, AccessRights::Write, std::move(query),
[this, user_id, status = std::move(status)](int64 chat_id, PromisedQueryPtr query) mutable {
auto chat_info = get_chat(chat_id);
@ -15105,6 +15107,9 @@ void Client::json_store_administrator_rights(td::JsonObjectScope &object, const
object("can_post_stories", td::JsonBool(rights->can_post_stories_));
object("can_edit_stories", td::JsonBool(rights->can_edit_stories_));
object("can_delete_stories", td::JsonBool(rights->can_delete_stories_));
if (chat_type == ChatType::Channel) {
object("can_manage_direct_messages", td::JsonBool(rights->can_manage_direct_messages_));
}
object("is_anonymous", td::JsonBool(rights->is_anonymous_));
}