Fix can_get_message_viewers for anonymous polls.

This commit is contained in:
levlam 2021-11-19 16:15:37 +03:00
parent 655896ad4a
commit bb0f7e012d
3 changed files with 16 additions and 0 deletions

View File

@ -2849,6 +2849,15 @@ int32 get_message_content_live_location_period(const MessageContent *content) {
}
}
bool get_message_content_poll_is_anonymous(const Td *td, const MessageContent *content) {
switch (content->get_type()) {
case MessageContentType::Poll:
return td->poll_manager_->get_poll_is_anonymous(static_cast<const MessagePoll *>(content)->poll_id);
default:
return false;
}
}
bool get_message_content_poll_is_closed(const Td *td, const MessageContent *content) {
switch (content->get_type()) {
case MessageContentType::Poll:

View File

@ -147,6 +147,8 @@ UserId get_message_content_deleted_user_id(const MessageContent *content);
int32 get_message_content_live_location_period(const MessageContent *content);
bool get_message_content_poll_is_anonymous(const Td *td, const MessageContent *content);
bool get_message_content_poll_is_closed(const Td *td, const MessageContent *content);
bool has_message_content_web_page(const MessageContent *content);

View File

@ -17280,6 +17280,7 @@ Status MessagesManager::can_get_message_viewers(DialogId dialog_id, const Messag
if (td_->auth_manager_->is_bot()) {
return Status::Error(400, "User is bot");
}
CHECK(m != nullptr);
if (!m->is_outgoing) {
return Status::Error(400, "Can't get viewers of incoming messages");
}
@ -17331,6 +17332,10 @@ Status MessagesManager::can_get_message_viewers(DialogId dialog_id, const Messag
}
CHECK(m->message_id.is_server());
if (m->content->get_type() == MessageContentType::Poll &&
get_message_content_poll_is_anonymous(td_, m->content.get())) {
}
return Status::OK();
}