Skip to content

Commit 6a075ea

Browse files
committed
Improve direct messages access processing.
1 parent a986345 commit 6a075ea

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

td/telegram/ChatManager.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2763,7 +2763,7 @@ bool ChatManager::have_input_peer_channel(const Channel *c, ChannelId channel_id
27632763
if (monoforum_channel != nullptr) {
27642764
return have_input_peer_channel(monoforum_channel, monoforum_channel_id, AccessRights::Read, true);
27652765
}
2766-
LOG(ERROR) << "Have no parent " << monoforum_channel_id;
2766+
LOG(INFO) << "Have no parent " << monoforum_channel_id;
27672767
return true;
27682768
}
27692769

@@ -9111,18 +9111,21 @@ void ChatManager::on_get_channel(telegram_api::channel &channel, const char *sou
91119111

91129112
bool is_admined_monoforum = false;
91139113
if (monoforum_channel_id.is_valid()) {
9114-
Channel *monoforum_c = get_channel_force(monoforum_channel_id, source);
9115-
if (monoforum_c != nullptr) {
9116-
if (is_monoforum) {
9114+
if (is_monoforum) {
9115+
Channel *monoforum_c = get_channel_force(monoforum_channel_id, source);
9116+
if (monoforum_c != nullptr) {
91179117
is_admined_monoforum = monoforum_c->status.can_manage_direct_messages();
9118-
} else if (status.can_manage_direct_messages() && !monoforum_c->is_admined_monoforum) {
9119-
monoforum_c->is_admined_monoforum = true;
9118+
} else if (status.is_member() && td_->auth_manager_->is_bot()) {
9119+
is_admined_monoforum = true;
9120+
}
9121+
} else {
9122+
Channel *monoforum_c = get_channel(monoforum_channel_id);
9123+
if (monoforum_c != nullptr && status.can_manage_direct_messages() != monoforum_c->is_admined_monoforum) {
9124+
monoforum_c->is_admined_monoforum = status.can_manage_direct_messages();
91209125
monoforum_c->is_admined_monoforum_changed = true;
91219126
monoforum_c->is_changed = true;
91229127
update_channel(monoforum_c, monoforum_channel_id);
91239128
}
9124-
} else if (is_monoforum && status.is_member() && td_->auth_manager_->is_bot()) {
9125-
is_admined_monoforum = true;
91269129
}
91279130
}
91289131

0 commit comments

Comments
 (0)