diff --git a/src/cpp/HTTPInterface/PassphrasePage.cpp b/src/cpp/HTTPInterface/PassphrasePage.cpp index c50ec3927..776a97ee5 100644 --- a/src/cpp/HTTPInterface/PassphrasePage.cpp +++ b/src/cpp/HTTPInterface/PassphrasePage.cpp @@ -48,7 +48,8 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: auto sm = SessionManager::getInstance(); auto uri_start = ServerConfig::g_serverPath;//request.serverParams().getServerName(); - Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER]; + //Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER]; + Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]; // remove old cookies if exist sm->deleteLoginCookies(request, response, mSession); @@ -60,40 +61,56 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: } if (!form.empty()) { - auto registerKeyChoice = form.get("passphrase", "no"); - std::string oldPassphrase = ""; - if (registerKeyChoice == "no") { - auto oldPassphrase = KeyPair::filterPassphrase(form.get("passphrase-existing", "")); - - if (oldPassphrase != "" && User::validatePassphrase(oldPassphrase, &wordSource)) { - // passphrase is valid - if(PAGE_FORCE_ASK_PASSPHRASE == state) { - auto compareResult = mSession->comparePassphraseWithSavedKeys(oldPassphrase, wordSource); - if(-2 == compareResult) { - response.redirect(ServerConfig::g_serverPath + "/error500"); - return; - } else if(1 == compareResult) { - response.redirect(ServerConfig::g_serverPath + "/updateUserPassword"); + + auto btnNext = form.get("nextEnsure", ""); + auto btnChecked = form.get("btnChecked", ""); + + if(btnChecked != "") { + mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); + response.redirect(ServerConfig::g_serverPath + "/passphrase"); + return; + } + + if(btnNext != "") { + state = PAGE_ASK_ENSURE_PASSPHRASE; + } else { + auto registerKeyChoice = form.get("passphrase", "no"); + std::string oldPassphrase = ""; + if (registerKeyChoice == "no") { + auto oldPassphrase = KeyPair::filterPassphrase(form.get("passphrase-existing", "")); + + if (oldPassphrase != "" && User::validatePassphrase(oldPassphrase, &wordSource)) { + // passphrase is valid + if(PAGE_FORCE_ASK_PASSPHRASE == state) { + auto compareResult = mSession->comparePassphraseWithSavedKeys(oldPassphrase, wordSource); + if(-2 == compareResult) { + response.redirect(ServerConfig::g_serverPath + "/error500"); + return; + } else if(1 == compareResult) { + response.redirect(ServerConfig::g_serverPath + "/updateUserPassword"); + return; + } + } else { + mSession->setPassphrase(oldPassphrase); + mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); + response.redirect(ServerConfig::g_serverPath + "/saveKeys"); return; + //state = PAGE_SHOW_PASSPHRASE; } - } else { - mSession->setPassphrase(oldPassphrase); - mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); - state = PAGE_SHOW_PASSPHRASE; + } + else { + addError(new Error("Passphrase", "Diese Passphrase ist ungültig, bitte überprüfen oder neu generieren (lassen).")); } } - else { - addError(new Error("Passphrase", "Diese Passphrase ist ungültig, bitte überprüfen oder neu generieren (lassen).")); + else if (registerKeyChoice == "yes") { + mSession->generatePassphrase(); } } - else if (registerKeyChoice == "yes") { - mSession->generatePassphrase(); - } } - if(mSession->getSessionState() == SESSION_STATE_PASSPHRASE_GENERATED) { + if(mSession->getSessionState() == SESSION_STATE_PASSPHRASE_GENERATED && state != PAGE_ASK_ENSURE_PASSPHRASE) { state = PAGE_SHOW_PASSPHRASE; - mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); + //mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); } if(state == PAGE_ASK_ENSURE_PASSPHRASE) { pageSubtitle = gettext("Passphrase überprüfen"); @@ -105,7 +122,11 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: pageSubtitle = gettext("Passphrase erfragen"); } getErrors(mSession); - std::ostream& _responseStream = response.send(); +#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" + + bool withMaterialIcons = false; +#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp" + withMaterialIcons = true; std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; @@ -118,19 +139,27 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; -#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" +#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; +#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" + if(withMaterialIcons) { responseStream << "\n"; + responseStream << "\n"; +#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" + } responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\t

Login Server in Entwicklung

\n"; responseStream << "\t

Alpha "; -#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" +#line 20 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; @@ -138,7 +167,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\t
\n"; responseStream << "\t\t