#include "CheckTransactionPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" #include "../SingletonManager/SessionManager.h" #include "../model/TransactionCreation.h" #include "../model/TransactionTransfer.h" enum PageState { PAGE_TRANSACTION_CREATION, PAGE_TRANSACTION_TRANSFER, PAGE_NO_TRANSACTIONS }; #line 1 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\header.cpsp" #include "../ServerConfig.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 19 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" const char* pageName = "Überprüfe Transaktion"; auto accountUser = mSession->getUser(); 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("Passwort", "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) { response.redirect(ServerConfig::g_php_serverPath); 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.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Login Server in Entwicklung
\n"; responseStream << "\tAlpha 0.5.1
\n"; responseStream << ""; #line 71 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( sumTransactions - notReadyTransactions ); responseStream << " von "; #line 71 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( sumTransactions ); responseStream << " Transaktionen sind bereit zum prüfen\n"; responseStream << "\t\t"; #line 72 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" } else { responseStream << "\n"; responseStream << "\t\t\t
"; #line 73 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( sumTransactions ); responseStream << " Transaktionen warten darauf überprüft zu werden.\n"; responseStream << "\t\t"; #line 74 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t"; #line 75 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t"; #line 76 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" if(state == PAGE_NO_TRANSACTIONS) { responseStream << "\n"; responseStream << "\t
"; #line 93 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( creationTransaction->getMemo() ); responseStream << "
\n"; responseStream << "\t\tEmpfänger: \n"; responseStream << "\t\t"; #line 95 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" if(transactionUser) { responseStream << "\n"; responseStream << "\t\t\t"; #line 96 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transactionUser->getFirstName() ); responseStream << " "; #line 96 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transactionUser->getLastName() ); responseStream << "
\n"; responseStream << "\t\t\t"; #line 97 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( transactionUser->getEmail() ); responseStream << "
\n"; responseStream << "\t\t"; #line 98 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" } else { responseStream << "\n"; responseStream << "\t\t\t"; #line 99 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( creationTransaction->getPublicHex() ); responseStream << "
\n"; responseStream << "\t\t"; #line 100 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" } responseStream << "\n"; responseStream << "\t\tSumme: \n"; responseStream << "\t\t"; #line 102 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkTransaction.cpsp" responseStream << ( creationTransaction->getAmountString() ); responseStream << " Gradido\n"; responseStream << "\t\t\n"; responseStream << "\t