From 6f9ea1cc01458fd3c2d074bc0288f3fcb066dfaf Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 11 Sep 2020 14:14:24 +0300 Subject: [PATCH] Allow posting comments being not in group. --- Telegram/SourceFiles/data/data_channel.cpp | 4 ++-- Telegram/SourceFiles/data/data_peer_values.cpp | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/data/data_channel.cpp b/Telegram/SourceFiles/data/data_channel.cpp index 1d7bd373f..6164c94d6 100644 --- a/Telegram/SourceFiles/data/data_channel.cpp +++ b/Telegram/SourceFiles/data/data_channel.cpp @@ -434,8 +434,8 @@ bool ChannelData::canPublish() const { bool ChannelData::canWrite() const { // Duplicated in Data::CanWriteValue(). - return amIn() - && (canPublish() + const auto allowed = amIn() || (flags() & MTPDchannel::Flag::f_has_link); + return allowed && (canPublish() || (!isBroadcast() && !amRestricted(Restriction::f_send_messages))); } diff --git a/Telegram/SourceFiles/data/data_peer_values.cpp b/Telegram/SourceFiles/data/data_peer_values.cpp index cdf1e8ead..d641331f1 100644 --- a/Telegram/SourceFiles/data/data_peer_values.cpp +++ b/Telegram/SourceFiles/data/data_peer_values.cpp @@ -207,6 +207,7 @@ rpl::producer CanWriteValue(ChatData *chat) { rpl::producer CanWriteValue(ChannelData *channel) { const auto mask = 0 | MTPDchannel::Flag::f_left + | MTPDchannel::Flag::f_has_link | MTPDchannel_ClientFlag::f_forbidden | MTPDchannel::Flag::f_creator | MTPDchannel::Flag::f_broadcast; @@ -229,8 +230,9 @@ rpl::producer CanWriteValue(ChannelData *channel) { const auto notAmInFlags = 0 | MTPDchannel::Flag::f_left | MTPDchannel_ClientFlag::f_forbidden; - return !(flags & notAmInFlags) - && (postMessagesRight + const auto allowed = !(flags & notAmInFlags) + || (flags & MTPDchannel::Flag::f_has_link); + return allowed && (postMessagesRight || (flags & MTPDchannel::Flag::f_creator) || (!(flags & MTPDchannel::Flag::f_broadcast) && !sendMessagesRestriction