#include "CheckTransactionPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" #include "../SingletonManager/SessionManager.h" #include "../SingletonManager/SingletonTaskObserver.h" #include "../model/TransactionCreation.h" #include "../model/TransactionTransfer.h" #include "Poco/Thread.h" enum PageState { PAGE_TRANSACTION_CREATION, PAGE_TRANSACTION_TRANSFER, PAGE_NO_TRANSACTIONS }; #line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_navi.cpsp" #include "../ServerConfig.h" #include "../model/TransactionBase.h" CheckTransactionPage::CheckTransactionPage(Session* arg): SessionHTTPRequestHandler(arg) { } void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); bool _compressResponse(request.hasToken("Accept-Encoding", "gzip")); 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" const char* pageName = gettext("Überprüfe Transaktion"); auto accountUser = mSession->getUser(); auto userBalance = accountUser->getBalance(); std::string memo = ""; bool hasErrors = false; bool enableLogout = 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()) { auto pwd = form.get("sign-password", ""); if(!mSession->isPwdValid(pwd)) { addError(new Error(gettext("Passwort"), gettext("Das Passwort stimmt nicht. Bitte verwende dein Passwort von der Registrierung"))); hasErrors = true; } } if(!hasErrors) { mSession->finalizeTransaction(true, false); } } } PageState state = PAGE_NO_TRANSACTIONS; size_t notReadyTransactions = 0; size_t sumTransactions = mSession->getProcessingTransactionCount(); if(sumTransactions == 0) { /*auto observer = SingletonTaskObserver::getInstance(); auto emailHash = DRMakeStringHash(mSession->getUser()->getEmail()); int breakCount = 0; while(observer->getTaskCount(emailHash, TASK_OBSERVER_SIGN_TRANSACTION) > 0) { if(breakCount > 100) break; breakCount++; Poco::Thread::sleep(10); }*/ auto lastExternReferer = mSession->getLastReferer(); //lastExternReferer = ""; if(lastExternReferer != "") { printf("last extern referer: %s\n", lastExternReferer.data()); response.redirect(lastExternReferer); } else { response.redirect(ServerConfig::g_php_serverPath + "state-balances/overview"); } return; } auto processingTransaction = mSession->getNextReadyTransaction(¬ReadyTransactions); if(sumTransactions > 0) { enableLogout = false; } if(!processingTransaction.isNull()) { auto transactionType = processingTransaction->getType(); switch(transactionType) { case TRANSACTION_CREATION: state = PAGE_TRANSACTION_CREATION; break; case TRANSACTION_TRANSFER: state = PAGE_TRANSACTION_TRANSFER; break; } } std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; // begin include header_navi.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_navi.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\t

Login Server in Entwicklung

\n"; responseStream << "\t

Alpha "; #line 17 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_navi.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << "
"; // end include header_navi.cpsp responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\n"; responseStream << "\t"; #line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(sumTransactions > 0 && sumTransactions - notReadyTransactions != 1) { responseStream << "\n"; responseStream << "\t\t"; #line 89 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(notReadyTransactions > 0) { responseStream << " \n"; responseStream << "\t\t\t"; #line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( sumTransactions - notReadyTransactions ); responseStream << " "; #line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("von") ); responseStream << " "; #line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( sumTransactions ); responseStream << " "; #line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Transaktionen sind bereit zum bestätigen") ); responseStream << "\n"; responseStream << "\t\t"; #line 91 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } else { responseStream << "\n"; responseStream << "\t\t\t"; #line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( sumTransactions ); responseStream << " "; #line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Transaktionen warten darauf bestätigt zu werden.") ); responseStream << "\n"; responseStream << "\t\t"; #line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t"; #line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t"; #line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(state == PAGE_NO_TRANSACTIONS) { responseStream << "\n"; responseStream << "\t\t"; #line 96 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(sumTransactions == 0) { responseStream << "\n"; responseStream << "\t\t\t"; #line 97 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Es gibt zurzeit keine Transaktionen zum bestätigen") ); responseStream << "\n"; responseStream << "\t\t"; #line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } else { responseStream << "\n"; responseStream << "\t\t\t"; #line 99 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Transaktion(en) werden noch vorbereitet, bitte lade die Seite in wenigen Augenblicken erneut.") ); responseStream << "\n"; responseStream << "\t\t"; #line 100 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << " "; #line 101 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t\n"; responseStream << "
\n"; #line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(state != PAGE_NO_TRANSACTIONS) { responseStream << "\n"; responseStream << "
\n"; responseStream << "\t
\n"; responseStream << "\t

"; #line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Transaktion Unterzeichnen") ); responseStream << "

\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t"; #line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(state == PAGE_TRANSACTION_TRANSFER) { auto transferTransaction = processingTransaction->getTransferTransaction(); memo = transferTransaction->getMemo(); responseStream << "\n"; responseStream << "\t\t\t

"; #line 116 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Überweisung") ); responseStream << "

\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t "; #line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" for(int i = 0; i < transferTransaction->getKontoTableSize(); i++) { responseStream << "\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\t"; #line 125 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transferTransaction->getKontoNameCell(i) ); responseStream << "\n"; responseStream << "\t\t\t\t\t\t"; #line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transferTransaction->getAmountCell(i) ); responseStream << "\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t"; #line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t
"; #line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Konto") ); responseStream << ""; #line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Gradido") ); responseStream << "
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t \n"; responseStream << "\t\t\t "; #line 133 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } else if(state == PAGE_TRANSACTION_CREATION) { auto creationTransaction = processingTransaction->getCreationTransaction(); auto transactionUser = creationTransaction->getUser(); memo = creationTransaction->getMemo(); responseStream << "\n"; responseStream << "\t\t\t

"; #line 138 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Schöpfung") ); responseStream << "

\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\t"; #line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(transactionUser) { responseStream << "\n"; responseStream << "\t\t\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\t"; #line 148 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } else { responseStream << "\n"; responseStream << "\t\t\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\t"; #line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t
"; #line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Konto") ); responseStream << ""; #line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Gradido") ); responseStream << "
"; #line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transactionUser->getFirstName() ); responseStream << " "; #line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transactionUser->getLastName() ); responseStream << " <"; #line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transactionUser->getEmail() ); responseStream << ">0x"; #line 149 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( creationTransaction->getPublicHex() ); responseStream << ""; #line 151 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( creationTransaction->getAmountString() ); responseStream << " GDD
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t "; #line 156 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t
"; #line 159 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Aktives Konto") ); responseStream << "
"; #line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( accountUser->getFirstName() ); responseStream << " "; #line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( accountUser->getLastName() ); responseStream << " <"; #line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( accountUser->getEmail() ); responseStream << ">
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t\t \n"; responseStream << "\t\t\t\t
"; #line 165 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( gettext("Verwendungszweck") ); responseStream << "
"; #line 167 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( memo ); responseStream << "
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t "; #line 175 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" if(!accountUser->hasCryptoKey()) { responseStream << "\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t\t \n"; responseStream << "\t\t\t\t\t \n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t"; #line 180 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t \n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "
\n"; #line 196 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp" } // begin include footer_ripple.cpsp responseStream << "\t
\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << " \n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " Copyright © 2019 Gradido\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " "; #line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer_ripple.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << " \n"; responseStream << "\n"; responseStream << " "; // end include footer_ripple.cpsp if (_compressResponse) _gzipStream.close(); }