From 6bf3006eb9f1f5270e20c612e00eb6a229c8323e Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 17 Aug 2018 14:01:23 +0300 Subject: [PATCH] Rename payload->nonce in new passport scopes. --- Telegram/SourceFiles/messenger.cpp | 6 ++++-- .../passport/passport_form_controller.cpp | 17 ++++++++++++----- .../passport/passport_form_controller.h | 6 ++++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/messenger.cpp b/Telegram/SourceFiles/messenger.cpp index 11cedf357f..654ac2332e 100644 --- a/Telegram/SourceFiles/messenger.cpp +++ b/Telegram/SourceFiles/messenger.cpp @@ -862,7 +862,9 @@ bool Messenger::openLocalUrl(const QString &url, QVariant context) { const auto scope = params.value("scope", QString()); const auto callback = params.value("callback_url", QString()); const auto publicKey = params.value("public_key", QString()); - const auto payload = params.value("payload", QString()); + const auto nonce = params.value( + Passport::NonceNameByScope(scope), + QString()); const auto errors = params.value("errors", QString()); if (const auto window = App::wnd()) { if (const auto controller = window->controller()) { @@ -871,7 +873,7 @@ bool Messenger::openLocalUrl(const QString &url, QVariant context) { scope, callback, publicKey, - payload, + nonce, errors)); return true; } diff --git a/Telegram/SourceFiles/passport/passport_form_controller.cpp b/Telegram/SourceFiles/passport/passport_form_controller.cpp index d1c49dc90b..2722a64b3e 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_form_controller.cpp @@ -228,6 +228,13 @@ QString ValidateUrl(const QString &url) { } // namespace +QString NonceNameByScope(const QString &scope) { + if (scope.startsWith('{') && scope.endsWith('}')) { + return qsl("nonce"); + } + return qsl("payload"); +} + bool ValueChanged(not_null value, const ValueMap &data) { const auto FileChanged = [](const EditFile &file) { if (file.uploadData) { @@ -271,13 +278,13 @@ FormRequest::FormRequest( const QString &scope, const QString &callbackUrl, const QString &publicKey, - const QString &payload, + const QString &nonce, const QString &errors) : botId(botId) , scope(scope) , callbackUrl(ValidateUrl(callbackUrl)) , publicKey(publicKey) -, payload(payload) +, nonce(nonce) , errors(errors) { } @@ -654,7 +661,7 @@ auto FormController::prepareFinalData() -> FinalData { auto json = QJsonObject(); if (errors.empty()) { json.insert("secure_data", secureData); - json.insert("payload", _request.payload); + json.insert(NonceNameByScope(_request.scope), _request.nonce); } return { @@ -2151,9 +2158,9 @@ void FormController::suggestRestart() { } void FormController::requestForm() { - if (_request.payload.isEmpty()) { + if (_request.nonce.isEmpty()) { _formRequestId = -1; - formFail("PAYLOAD_EMPTY"); + formFail(NonceNameByScope(_request.scope).toUpper() + "_EMPTY"); return; } _formRequestId = request(MTPaccount_GetAuthorizationForm( diff --git a/Telegram/SourceFiles/passport/passport_form_controller.h b/Telegram/SourceFiles/passport/passport_form_controller.h index 60cfd8dc99..230d84db0d 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.h +++ b/Telegram/SourceFiles/passport/passport_form_controller.h @@ -31,6 +31,8 @@ struct SavedCredentials { uint64 secretId = 0; }; +QString NonceNameByScope(const QString &scope); + class ViewController; struct FormRequest { @@ -39,14 +41,14 @@ struct FormRequest { const QString &scope, const QString &callbackUrl, const QString &publicKey, - const QString &payload, + const QString &nonce, const QString &errors); UserId botId; QString scope; QString callbackUrl; QString publicKey; - QString payload; + QString nonce; QString errors; };