diff --git a/src/cpp/HTTPInterface/CheckTransactionPage.cpp b/src/cpp/HTTPInterface/CheckTransactionPage.cpp index 8ccc9b899..f4c9b43dd 100644 --- a/src/cpp/HTTPInterface/CheckTransactionPage.cpp +++ b/src/cpp/HTTPInterface/CheckTransactionPage.cpp @@ -9,6 +9,7 @@ #include "../SingletonManager/SessionManager.h" #include "../SingletonManager/SingletonTaskObserver.h" +#include "../SingletonManager/EmailManager.h" #include "../model/TransactionCreation.h" #include "../model/TransactionTransfer.h" @@ -17,13 +18,10 @@ enum PageState { PAGE_TRANSACTION_CREATION, PAGE_TRANSACTION_TRANSFER, - PAGE_NO_TRANSACTIONS + PAGE_NO_TRANSACTIONS, + PAGE_USER_DATA_CORRUPTED }; -#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_navi.cpsp" - -#include "../ServerConfig.h" -#include "../model/TransactionBase.h" CheckTransactionPage::CheckTransactionPage(Session* arg): @@ -40,26 +38,48 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" +#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" const char* pageName = gettext("Überprüfe Transaktion"); - auto accountUser = mSession->getUser(); - auto userBalance = accountUser->getBalance(); + auto account_user = mSession->getNewUser(); + auto user_model = account_user->getModel(); + auto em = EmailManager::getInstance(); + auto userBalance = account_user->getBalance(); std::string memo = ""; bool hasErrors = false; bool enableLogout = true; + PageState state = PAGE_NO_TRANSACTIONS; + + if(!user_model->isEmailChecked()) { + addError(new Error(gettext("E-Mail Aktivierung"), gettext("E-Mail wurde noch nicht aktiviert, du kannst leider noch keine Transaktionen ausführen!"))); + hasErrors = true; + } + if(!form.empty()) { auto ok = form.get("ok", ""); auto abort = form.get("abort", ""); if(abort != "") { mSession->finalizeTransaction(false, true); } else if(ok != "") { - if(!accountUser->hasCryptoKey()) { + if(!account_user->hasPassword()) { auto pwd = form.get("sign-password", ""); - if(!mSession->isPwdValid(pwd)) { + auto loginResult = account_user->login(pwd); + switch(loginResult) { + case 0: addError(new Error(gettext("Passwort"), gettext("Das Passwort stimmt nicht. Bitte verwende dein Passwort von der Registrierung"))); hasErrors = true; + break; + case -1: + case -2: + addError(new Error(gettext("Passwort"), gettext("Gespeicherte Daten sind korrupt!"))); + hasErrors = true; + state = PAGE_USER_DATA_CORRUPTED; + break; + case -3: + addError(new Error(gettext("Passwort"), gettext("Passwortprüfung läuft schon, bitte versuche es in 1-2 Minuten erneut."))); + hasErrors = true; + break; } } if(!hasErrors) { @@ -68,7 +88,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, } } - PageState state = PAGE_NO_TRANSACTIONS; + size_t notReadyTransactions = 0; size_t sumTransactions = mSession->getProcessingTransactionCount(); if(sumTransactions == 0) { @@ -94,7 +114,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, if(sumTransactions > 0) { enableLogout = false; } - if(!processingTransaction.isNull()) { + if(PAGE_NO_TRANSACTIONS == state && !processingTransaction.isNull()) { auto transactionType = processingTransaction->getType(); switch(transactionType) { case TRANSACTION_CREATION: state = PAGE_TRANSACTION_CREATION; break; @@ -108,442 +128,406 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; - // begin include header_navi.cpsp - responseStream << "\n"; + // begin include header_navi_chr.cpsp responseStream << "\n"; responseStream << "\n"; + responseStream << "\n"; responseStream << "
\n"; - responseStream << "\n"; - responseStream << "\n"; - responseStream << "Login Server in Entwicklung
\n"; - responseStream << "\tAlpha "; -#line 17 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_navi.cpsp" - responseStream << ( ServerConfig::g_versionString ); - responseStream << "
\n"; - responseStream << "