|
|
|
@ -10504,11 +10504,13 @@ td::Result<td_api::object_ptr<td_api::chatAdministratorRights>> Client::get_chat
|
|
|
|
TRY_RESULT(can_edit_stories, object.get_optional_bool_field("can_edit_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_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(can_manage_direct_messages, object.get_optional_bool_field("can_manage_direct_messages"));
|
|
|
|
|
|
|
|
TRY_RESULT(can_manage_tags, object.get_optional_bool_field("can_manage_tags"));
|
|
|
|
TRY_RESULT(is_anonymous, object.get_optional_bool_field("is_anonymous"));
|
|
|
|
TRY_RESULT(is_anonymous, object.get_optional_bool_field("is_anonymous"));
|
|
|
|
return make_object<td_api::chatAdministratorRights>(
|
|
|
|
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_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_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats,
|
|
|
|
can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, false, is_anonymous);
|
|
|
|
can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, can_manage_tags,
|
|
|
|
|
|
|
|
is_anonymous);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
td::Result<td_api::object_ptr<td_api::chatAdministratorRights>> Client::get_chat_administrator_rights(
|
|
|
|
td::Result<td_api::object_ptr<td_api::chatAdministratorRights>> Client::get_chat_administrator_rights(
|
|
|
|
@ -14523,17 +14525,19 @@ td::Status Client::process_promote_chat_member_query(PromisedQueryPtr &query) {
|
|
|
|
auto can_edit_stories = to_bool(query->arg("can_edit_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_delete_stories = to_bool(query->arg("can_delete_stories"));
|
|
|
|
auto can_manage_direct_messages = to_bool(query->arg("can_manage_direct_messages"));
|
|
|
|
auto can_manage_direct_messages = to_bool(query->arg("can_manage_direct_messages"));
|
|
|
|
|
|
|
|
auto can_manage_tags = to_bool(query->arg("can_manage_tags"));
|
|
|
|
auto is_anonymous = to_bool(query->arg("is_anonymous"));
|
|
|
|
auto is_anonymous = to_bool(query->arg("is_anonymous"));
|
|
|
|
auto is_promotion = can_manage_chat || can_change_info || can_post_messages || can_edit_messages ||
|
|
|
|
auto is_promotion = 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_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_manage_topics || can_promote_members || can_manage_video_chats || can_post_stories ||
|
|
|
|
can_edit_stories || can_delete_stories || can_manage_direct_messages || is_anonymous;
|
|
|
|
can_edit_stories || can_delete_stories || can_manage_direct_messages || can_manage_tags ||
|
|
|
|
|
|
|
|
is_anonymous;
|
|
|
|
auto status = make_object<td_api::chatMemberStatusAdministrator>(
|
|
|
|
auto status = make_object<td_api::chatMemberStatusAdministrator>(
|
|
|
|
true,
|
|
|
|
true, make_object<td_api::chatAdministratorRights>(
|
|
|
|
make_object<td_api::chatAdministratorRights>(
|
|
|
|
can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages,
|
|
|
|
can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users,
|
|
|
|
can_invite_users, can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members,
|
|
|
|
can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats,
|
|
|
|
can_manage_video_chats, can_post_stories, can_edit_stories, can_delete_stories,
|
|
|
|
can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, false, is_anonymous));
|
|
|
|
can_manage_direct_messages, can_manage_tags, is_anonymous));
|
|
|
|
check_chat(chat_id, AccessRights::Write, std::move(query),
|
|
|
|
check_chat(chat_id, AccessRights::Write, std::move(query),
|
|
|
|
[this, user_id, status = std::move(status), is_promotion](int64 chat_id, PromisedQueryPtr query) mutable {
|
|
|
|
[this, user_id, status = std::move(status), is_promotion](int64 chat_id, PromisedQueryPtr query) mutable {
|
|
|
|
auto chat_info = get_chat(chat_id);
|
|
|
|
auto chat_info = get_chat(chat_id);
|
|
|
|
@ -16042,6 +16046,9 @@ void Client::json_store_administrator_rights(td::JsonObjectScope &object, const
|
|
|
|
if (chat_type == ChatType::Channel) {
|
|
|
|
if (chat_type == ChatType::Channel) {
|
|
|
|
object("can_manage_direct_messages", td::JsonBool(rights->can_manage_direct_messages_));
|
|
|
|
object("can_manage_direct_messages", td::JsonBool(rights->can_manage_direct_messages_));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (chat_type == ChatType::Group || chat_type == ChatType::Supergroup) {
|
|
|
|
|
|
|
|
object("can_manage_tags", td::JsonBool(rights->can_manage_tags_));
|
|
|
|
|
|
|
|
}
|
|
|
|
object("is_anonymous", td::JsonBool(rights->is_anonymous_));
|
|
|
|
object("is_anonymous", td::JsonBool(rights->is_anonymous_));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|