2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-02 15:45:12 +00:00

Implement correct ForumTopic::canWrite logic.

This commit is contained in:
John Preston
2022-10-25 11:20:22 +04:00
parent 1cd02fc3c9
commit 602ba5bba9
35 changed files with 363 additions and 144 deletions

View File

@@ -335,7 +335,10 @@ MainWidget::MainWidget(
_controller->activeChatValue(
) | rpl::map([](Dialogs::Key key) {
const auto peer = key.peer();
auto canWrite = peer
const auto topic = key.topic();
auto canWrite = topic
? Data::CanWriteValue(topic)
: peer
? Data::CanWriteValue(peer)
: rpl::single(false);
return std::move(
@@ -516,10 +519,10 @@ bool MainWidget::setForwardDraft(PeerId peerId, Data::ForwardDraft &&draft) {
Expects(peerId != 0);
const auto peer = session().data().peer(peerId);
const auto items = session().data().idsToItems(draft.ids);
const auto error = GetErrorTextForSending(
peer,
session().data().idsToItems(draft.ids),
true);
peer, // #TODO forum forward
{ .forward = &items, .ignoreSlowmodeCountdown = true });
if (!error.isEmpty()) {
Ui::show(Ui::MakeInformBox(error), Ui::LayerOption::KeepOther);
return false;
@@ -541,7 +544,7 @@ bool MainWidget::shareUrl(
Expects(peerId != 0);
const auto peer = session().data().peer(peerId);
if (!peer->canWrite()) {
if (!peer->canWrite()) { // #TODO forum forward
_controller->show(Ui::MakeInformBox(tr::lng_share_cant()));
return false;
}
@@ -575,7 +578,7 @@ bool MainWidget::inlineSwitchChosen(
Expects(peerId != 0);
const auto peer = session().data().peer(peerId);
if (!peer->canWrite()) {
if (!peer->canWrite()) { // #TODO forum forward
Ui::show(Ui::MakeInformBox(tr::lng_inline_switch_cant()));
return false;
}
@@ -607,7 +610,7 @@ bool MainWidget::sendPaths(PeerId peerId) {
Expects(peerId != 0);
auto peer = session().data().peer(peerId);
if (!peer->canWrite()) {
if (!peer->canWrite()) { // #TODO forum forward
Ui::show(Ui::MakeInformBox(tr::lng_forward_send_files_cant()));
return false;
} else if (const auto error = Data::RestrictionError(
@@ -638,7 +641,7 @@ void MainWidget::onFilesOrForwardDrop(
}
} else {
auto peer = session().data().peer(peerId);
if (!peer->canWrite()) {
if (!peer->canWrite()) { // #TODO forum forward
Ui::show(Ui::MakeInformBox(tr::lng_forward_send_files_cant()));
return;
}