diff --git a/td/telegram/ReplyMarkup.cpp b/td/telegram/ReplyMarkup.cpp index cd1f22ce6..b7d3cb441 100644 --- a/td/telegram/ReplyMarkup.cpp +++ b/td/telegram/ReplyMarkup.cpp @@ -444,6 +444,12 @@ static Result get_inline_keyboard_button(tl_object_ptr(button->type_); + auto user_id = LinkManager::get_link_user_id(button_type->url_); + if (user_id.is_valid()) { + current_button.type = InlineKeyboardButton::Type::User; + current_button.user_id = user_id; + break; + } auto r_url = LinkManager::check_link(button_type->url_); if (r_url.is_error()) { return Status::Error(400, "Inline keyboard button URL is invalid"); @@ -489,6 +495,10 @@ static Result get_inline_keyboard_button(tl_object_ptr(button->type_); + auto user_id = LinkManager::get_link_user_id(button_type->url_); + if (user_id.is_valid()) { + return Status::Error(400, "Link to a user can't be used in login URL buttons"); + } auto r_url = LinkManager::check_link(button_type->url_); if (r_url.is_error()) { return Status::Error(400, "Inline keyboard button login URL is invalid");