From efdf869babc2ad3fdda957a775cd8c786adea428 Mon Sep 17 00:00:00 2001 From: sirsoweird <26212881+sirsoweird@users.noreply.github.com> Date: Sat, 18 Jan 2025 16:29:39 -0700 Subject: [PATCH] Test for fixing IDs and eliminating private Chat userName Remove all remaining DeserializePeerId from CV code --- Telegram/SourceFiles/cloudveil/DialogHelper.cpp | 3 ++- .../cloudveil/GlobalSecuritySettings.cpp | 13 ++++++++----- .../cloudveil/response/SettingsResponse.cpp | 6 ++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/cloudveil/DialogHelper.cpp b/Telegram/SourceFiles/cloudveil/DialogHelper.cpp index 57dee74f380ed..0ed4a0d503bf4 100644 --- a/Telegram/SourceFiles/cloudveil/DialogHelper.cpp +++ b/Telegram/SourceFiles/cloudveil/DialogHelper.cpp @@ -11,7 +11,8 @@ DialogHelper::CheckDialogResult DialogHelper::checkAndShowDialogForbidden(PeerDa controller->show(Ui::MakeConfirmBox({ .text = tr::lng_dialog_forbidden(), .confirmed = [=](Fn&& close) { - const auto dialogId = DeserializePeerId(peerData->id.value).value; + //const auto dialogId = DeserializePeerId(peerData->id.value).value; // this was causing 404s on unblock requests + const auto dialogId = peerData->id.value; QString url = QString("https://messenger.cloudveil.org/unblock/%1/%2") .arg(QString::number(userData->id.value), QString::number(dialogId)); diff --git a/Telegram/SourceFiles/cloudveil/GlobalSecuritySettings.cpp b/Telegram/SourceFiles/cloudveil/GlobalSecuritySettings.cpp index 37d6cbd914311..dea770e1b5f52 100644 --- a/Telegram/SourceFiles/cloudveil/GlobalSecuritySettings.cpp +++ b/Telegram/SourceFiles/cloudveil/GlobalSecuritySettings.cpp @@ -183,19 +183,22 @@ void GlobalSecuritySettings::checkStickerSetByDocumentAsync(DocumentData* sticke } void GlobalSecuritySettings::addDialogToRequest(SettingsRequest &request, PeerData *peer) { - qint64 dialogId = DeserializePeerId(peer->id.value).value; - + //qint64 dialogId = DeserializePeerId(peer->id.value).value; + qint64 dialogId = peer->id.value; //for CV Manage, we want the bare value + SettingsRequest::Row row; row.id = dialogId; - row.userName = peer->userName(); + row.userName = peer->userName(); // should we be setting this one? + //If it's Chat, it can't have userName; if it's Channel or User it may. + // If there's a chance this results in 'N/A' or similar, we don't want it. row.isMegagroup = false; row.isPublic = false; if (peer->isChat()) { row.title = peer->asChat()->name(); - row.userName = row.title; - row.isPublic = peer->asChat()->flags() & 0x00000040; + //row.userName = row.title; //this should not be set, was it set to solve a different problem? + row.isPublic = peer->asChat()->flags() & 0x00000040; //2025-01-18 currently, Chat can only be Private, not Public request.groups.append(row); } else if (peer->isChannel()) { diff --git a/Telegram/SourceFiles/cloudveil/response/SettingsResponse.cpp b/Telegram/SourceFiles/cloudveil/response/SettingsResponse.cpp index 63c5ef9415252..e01518d82e7ca 100644 --- a/Telegram/SourceFiles/cloudveil/response/SettingsResponse.cpp +++ b/Telegram/SourceFiles/cloudveil/response/SettingsResponse.cpp @@ -234,7 +234,8 @@ bool SettingsResponse::isDialogAllowed(PeerData *peer) { return true; } - const auto dialogId = DeserializePeerId(peer->id.value).value; + //const auto dialogId = DeserializePeerId(peer->id.value).value; + const auto dialogId = peer->id.value; if (peer->isChat() || peer->isMegagroup()) { return groups.contains(dialogId) && groups[dialogId]; } @@ -275,7 +276,8 @@ bool SettingsResponse::isDialogSecured(PeerData *peer) { if (peer->isUser() && peer->asUser()->isSelf()) { return true; } - const auto dialogId = DeserializePeerId(peer->id.value).value; + //const auto dialogId = DeserializePeerId(peer->id.value).value; + const auto dialogId = peer->id.value; return bots.contains(dialogId) || channels.contains(dialogId) || groups.contains(dialogId) ||