mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
update decode transaction
This commit is contained in:
parent
68552262aa
commit
ee250e8bcf
@ -5,15 +5,23 @@
|
|||||||
#include "Poco/DeflatingStream.h"
|
#include "Poco/DeflatingStream.h"
|
||||||
|
|
||||||
|
|
||||||
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
|
||||||
#include "sodium.h"
|
#include "sodium.h"
|
||||||
#include "../proto/gradido/TransactionBody.pb.h"
|
#include "../proto/gradido/TransactionBody.pb.h"
|
||||||
|
#include "../controller/User.h"
|
||||||
|
#include "../model/TransactionBase.h"
|
||||||
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
|
|
||||||
#include "../ServerConfig.h"
|
#include "../ServerConfig.h"
|
||||||
|
|
||||||
|
|
||||||
|
DecodeTransactionPage::DecodeTransactionPage(Session* arg):
|
||||||
|
SessionHTTPRequestHandler(arg)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
|
void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
|
||||||
{
|
{
|
||||||
response.setChunkedTransferEncoding(true);
|
response.setChunkedTransferEncoding(true);
|
||||||
@ -22,11 +30,19 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||||
|
|
||||||
Poco::Net::HTMLForm form(request, request.stream());
|
Poco::Net::HTMLForm form(request, request.stream());
|
||||||
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
|
||||||
const char* pageName = "Decode Transaction";
|
const char* pageName = "Decode Transaction";
|
||||||
model::messages::gradido::TransactionBody transactionBody;
|
model::messages::gradido::TransactionBody transactionBody;
|
||||||
bool decoded = false;
|
bool decoded = false;
|
||||||
|
bool adminUser = false;
|
||||||
|
if(mSession && mSession->getNewUser()) {
|
||||||
|
auto user = mSession->getNewUser();
|
||||||
|
auto model = user->getModel();
|
||||||
|
if(model && model->getRole() == model::table::ROLE_ADMIN) {
|
||||||
|
adminUser = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!form.empty()) {
|
if(!form.empty()) {
|
||||||
auto base64 = form.get("transaction", "");
|
auto base64 = form.get("transaction", "");
|
||||||
if(base64 != "") {
|
if(base64 != "") {
|
||||||
@ -123,96 +139,121 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << ( ServerConfig::g_versionString );
|
responseStream << ( ServerConfig::g_versionString );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
|
||||||
responseStream << "\t\t<ul class=\"grd-no-style\">\n";
|
|
||||||
responseStream << "\t\t <li><a href=\"";
|
|
||||||
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
|
||||||
responseStream << "\" class=\"grd-nav-bn\">Startseite</a>\n";
|
|
||||||
responseStream << "\t\t <li><a href=\"./account/logout\" class=\"grd-nav-bn\">Logout</a></li>\n";
|
|
||||||
responseStream << "\t\t</ul>\n";
|
|
||||||
responseStream << "\t</div>\n";
|
|
||||||
responseStream << "</nav>-->";
|
|
||||||
// end include header_old.cpsp
|
// end include header_old.cpsp
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "<div class=\"grd_container\">\n";
|
responseStream << "<div class=\"grd_container\">\n";
|
||||||
responseStream << "\t<h1>Transaktion dekodieren</h1>\n";
|
responseStream << "\t<h1>Transaktion dekodieren</h1>\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 47 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( getErrorsHtml() );
|
responseStream << ( getErrorsHtml() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t<form method=\"POST\">\n";
|
responseStream << "\t<form method=\"POST\">\n";
|
||||||
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
|
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
|
||||||
responseStream << "\t\t\t<legend>Transaktion dekodieren</legend>\n";
|
responseStream << "\t\t\t<legend>Transaktion dekodieren</legend>\n";
|
||||||
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"transaction\">";
|
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"transaction\">";
|
||||||
#line 51 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 62 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( !form.empty() ? form.get("transaction", "") : "" );
|
responseStream << ( !form.empty() ? form.get("transaction", "") : "" );
|
||||||
responseStream << "</textarea>\n";
|
responseStream << "</textarea>\n";
|
||||||
responseStream << "\t\t</fieldset>\n";
|
responseStream << "\t\t</fieldset>\n";
|
||||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Dekodieren\">\n";
|
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Dekodieren\">\n";
|
||||||
responseStream << "\t</form>\n";
|
responseStream << "\t</form>\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 55 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 66 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
if(decoded) { responseStream << "\n";
|
if(decoded) { responseStream << "\n";
|
||||||
responseStream << "\t\t<p><b>Verwendungszweck:</b></p>\n";
|
responseStream << "\t\t<p><b>Verwendungszweck:</b></p>\n";
|
||||||
responseStream << "\t\t<p>";
|
responseStream << "\t\t<p>";
|
||||||
#line 57 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 68 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( transactionBody.memo() );
|
responseStream << ( transactionBody.memo() );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
if(transactionBody.has_transfer()) {
|
if(transactionBody.has_transfer()) {
|
||||||
auto transfer = transactionBody.transfer();
|
auto transfer = transactionBody.transfer();
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t<h3>Transfer</h3>\n";
|
responseStream << "\t\t<h3>Transfer</h3>\n";
|
||||||
responseStream << "\t\t<b>Sender</b>\n";
|
responseStream << "\t\t<b>Sender</b>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 63 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 74 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
for(int i = 0; i < transfer.senderamounts_size(); i++) {
|
for(int i = 0; i < transfer.senderamounts_size(); i++) {
|
||||||
auto sender = transfer.senderamounts(i);
|
auto sender = transfer.senderamounts(i);
|
||||||
char hex[65]; memset(hex, 0, 65);
|
char hex[65]; memset(hex, 0, 65);
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
|
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t\t<p>pubkey: ";
|
responseStream << "\t\t\t<p>pubkey: ";
|
||||||
#line 68 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 79 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( hex );
|
responseStream << ( hex );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t\t<p>amount: ";
|
responseStream << "\t\t\t<p>amount: ";
|
||||||
#line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( sender.amount() );
|
responseStream << ( TransactionBase::amountToString(sender.amount()) );
|
||||||
responseStream << "</p>\n";
|
responseStream << " GDD</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 70 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 81 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "\t\t<b>Receiver</b>\n";
|
responseStream << "\t\t<b>Receiver</b>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 72 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
for(int i = 0; i < transfer.receiveramounts_size(); i++) {
|
for(int i = 0; i < transfer.receiveramounts_size(); i++) {
|
||||||
auto receiver = transfer.receiveramounts(i);
|
auto receiver = transfer.receiveramounts(i);
|
||||||
char hex[65]; memset(hex, 0, 65);
|
char hex[65]; memset(hex, 0, 65);
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t\t<p>pubkey: ";
|
responseStream << "\t\t\t<p>pubkey: ";
|
||||||
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( hex );
|
responseStream << ( hex );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t\t<p>amount: ";
|
responseStream << "\t\t\t<p>amount: ";
|
||||||
#line 78 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 89 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( receiver.amount() );
|
responseStream << ( TransactionBase::amountToString(receiver.amount()) );
|
||||||
responseStream << "</p>\n";
|
responseStream << " GDD</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 79 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 91 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} else if(transactionBody.has_creation()) { responseStream << "\n";
|
} else if(transactionBody.has_creation()) {
|
||||||
|
auto creation = transactionBody.creation();
|
||||||
|
auto receiver = creation.receiveramount();
|
||||||
|
char hex[65]; memset(hex, 0, 65);
|
||||||
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
||||||
|
|
||||||
|
Poco::AutoPtr<controller::User> user = nullptr;
|
||||||
|
if(adminUser) {
|
||||||
|
user = controller::User::create();
|
||||||
|
if(!user->load((const unsigned char*)receiver.ed25519_receiver_pubkey().data())) {
|
||||||
|
user.assign(nullptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//pubkey
|
||||||
|
responseStream << "\n";
|
||||||
responseStream << "\t\t<h3>Creation</h3>\n";
|
responseStream << "\t\t<h3>Creation</h3>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
if(!adminUser || user.isNull() || !user->getModel()) { responseStream << "\n";
|
||||||
|
responseStream << "\t\t<p>pubkey: ";
|
||||||
|
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
responseStream << ( hex );
|
||||||
|
responseStream << "</p>\n";
|
||||||
|
responseStream << "\t\t";
|
||||||
|
#line 109 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
} else { responseStream << "\n";
|
||||||
|
responseStream << "\t\t<p>user: </p>\n";
|
||||||
|
responseStream << "\t\t<p>";
|
||||||
|
#line 111 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
responseStream << ( user->getModel()->toHTMLString() );
|
||||||
|
responseStream << "</p>\n";
|
||||||
|
responseStream << "\t\t";
|
||||||
|
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
} responseStream << "\n";
|
||||||
|
responseStream << "\t\t<p>amount: ";
|
||||||
|
#line 113 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
responseStream << ( TransactionBase::amountToString(receiver.amount()) );
|
||||||
|
responseStream << " GDD</p>\n";
|
||||||
|
responseStream << "\t\t";
|
||||||
|
#line 114 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
// begin include footer.cpsp
|
// begin include footer.cpsp
|
||||||
|
|||||||
@ -5,12 +5,14 @@
|
|||||||
#include "Poco/Net/HTTPRequestHandler.h"
|
#include "Poco/Net/HTTPRequestHandler.h"
|
||||||
|
|
||||||
|
|
||||||
#include "PageRequestMessagedHandler.h"
|
#include "SessionHTTPRequestHandler.h"
|
||||||
|
|
||||||
|
|
||||||
class DecodeTransactionPage: public PageRequestMessagedHandler
|
class DecodeTransactionPage: public SessionHTTPRequestHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
DecodeTransactionPage(Session*);
|
||||||
|
|
||||||
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
|
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -67,13 +67,6 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
|
|||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (url_first_part == "/decode_transaction") {
|
|
||||||
mLogging.information(dateTimeString + " decode");
|
|
||||||
auto pageRequestHandler = new DecodeTransactionPage;
|
|
||||||
pageRequestHandler->setProfiler(timeUsed);
|
|
||||||
return pageRequestHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if user has valid session
|
// check if user has valid session
|
||||||
Poco::Net::NameValueCollection cookies;
|
Poco::Net::NameValueCollection cookies;
|
||||||
request.getCookies(cookies);
|
request.getCookies(cookies);
|
||||||
@ -115,6 +108,13 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
|
|||||||
resetPassword->setProfiler(timeUsed);
|
resetPassword->setProfiler(timeUsed);
|
||||||
return resetPassword;
|
return resetPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (url_first_part == "/decode_transaction") {
|
||||||
|
mLogging.information(dateTimeString + " decode");
|
||||||
|
auto pageRequestHandler = new DecodeTransactionPage(s);
|
||||||
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
|
return pageRequestHandler;
|
||||||
|
}
|
||||||
if (s) {
|
if (s) {
|
||||||
if (externReferer != "") {
|
if (externReferer != "") {
|
||||||
s->setLastReferer(externReferer);
|
s->setLastReferer(externReferer);
|
||||||
|
|||||||
@ -192,6 +192,31 @@ namespace model {
|
|||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string User::toHTMLString()
|
||||||
|
{
|
||||||
|
auto mm = MemoryManager::getInstance();
|
||||||
|
auto pubkeyHex = mm->getFreeMemory(65);
|
||||||
|
|
||||||
|
memset(*pubkeyHex, 0, 65);
|
||||||
|
|
||||||
|
std::stringstream ss;
|
||||||
|
|
||||||
|
if (!mPublicKey.isNull()) {
|
||||||
|
sodium_bin2hex(*pubkeyHex, 65, mPublicKey.value().content().data(), mPublicKey.value().content().size());
|
||||||
|
}
|
||||||
|
|
||||||
|
ss << "<b>" << mFirstName << " " << mLastName << " <" << mEmail << "></b>" << "<br>";
|
||||||
|
ss << "public key: " << (char*)*pubkeyHex << "<br>";
|
||||||
|
ss << "created: " << Poco::DateTimeFormatter::format(mCreated, "%f.%m.%Y %H:%M:%S") << "<br>";
|
||||||
|
ss << "email checked: " << mEmailChecked << "<br>";
|
||||||
|
ss << "language key: " << mLanguageKey << "<br>";
|
||||||
|
ss << "role: " << UserRoles::typeToString(getRole()) << "<br>";
|
||||||
|
|
||||||
|
mm->releaseMemory(pubkeyHex);
|
||||||
|
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Poco::JSON::Object User::getJson()
|
Poco::JSON::Object User::getJson()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -40,6 +40,7 @@ namespace model {
|
|||||||
// generic db operations
|
// generic db operations
|
||||||
const char* getTableName() const { return "users"; }
|
const char* getTableName() const { return "users"; }
|
||||||
std::string toString();
|
std::string toString();
|
||||||
|
std::string toHTMLString();
|
||||||
|
|
||||||
|
|
||||||
// default getter unlocked
|
// default getter unlocked
|
||||||
|
|||||||
@ -1,16 +1,27 @@
|
|||||||
<%@ page class="DecodeTransactionPage" %>
|
<%@ page class="DecodeTransactionPage" %>
|
||||||
<%@ page form="true" %>
|
<%@ page form="true" %>
|
||||||
<%@ page compressed="true" %>
|
<%@ page compressed="true" %>
|
||||||
<%@ page baseClass="PageRequestMessagedHandler" %>
|
<%@ page baseClass="SessionHTTPRequestHandler" %>
|
||||||
<%@ header include="PageRequestMessagedHandler.h" %>
|
<%@ page ctorArg="Session*" %>
|
||||||
|
<%@ header include="SessionHTTPRequestHandler.h" %>
|
||||||
<%!
|
<%!
|
||||||
#include "sodium.h"
|
#include "sodium.h"
|
||||||
#include "../proto/gradido/TransactionBody.pb.h"
|
#include "../proto/gradido/TransactionBody.pb.h"
|
||||||
|
#include "../controller/User.h"
|
||||||
|
#include "../model/TransactionBase.h"
|
||||||
%>
|
%>
|
||||||
<%%
|
<%%
|
||||||
const char* pageName = "Decode Transaction";
|
const char* pageName = "Decode Transaction";
|
||||||
model::messages::gradido::TransactionBody transactionBody;
|
model::messages::gradido::TransactionBody transactionBody;
|
||||||
bool decoded = false;
|
bool decoded = false;
|
||||||
|
bool adminUser = false;
|
||||||
|
if(mSession && mSession->getNewUser()) {
|
||||||
|
auto user = mSession->getNewUser();
|
||||||
|
auto model = user->getModel();
|
||||||
|
if(model && model->getRole() == model::table::ROLE_ADMIN) {
|
||||||
|
adminUser = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!form.empty()) {
|
if(!form.empty()) {
|
||||||
auto base64 = form.get("transaction", "");
|
auto base64 = form.get("transaction", "");
|
||||||
if(base64 != "") {
|
if(base64 != "") {
|
||||||
@ -66,7 +77,7 @@
|
|||||||
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
|
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
|
||||||
%>
|
%>
|
||||||
<p>pubkey: <%= hex %></p>
|
<p>pubkey: <%= hex %></p>
|
||||||
<p>amount: <%= sender.amount() %></p>
|
<p>amount: <%= TransactionBase::amountToString(sender.amount()) %> GDD</p>
|
||||||
<% } %>
|
<% } %>
|
||||||
<b>Receiver</b>
|
<b>Receiver</b>
|
||||||
<% for(int i = 0; i < transfer.receiveramounts_size(); i++) {
|
<% for(int i = 0; i < transfer.receiveramounts_size(); i++) {
|
||||||
@ -75,13 +86,31 @@
|
|||||||
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
||||||
%>
|
%>
|
||||||
<p>pubkey: <%= hex %></p>
|
<p>pubkey: <%= hex %></p>
|
||||||
<p>amount: <%= receiver.amount() %></p>
|
<p>amount: <%= TransactionBase::amountToString(receiver.amount()) %> GDD</p>
|
||||||
<% } %>
|
<% } %>
|
||||||
<% } else if(transactionBody.has_creation()) {
|
<% } else if(transactionBody.has_creation()) {
|
||||||
auto creation = transactionBody.creation();
|
auto creation = transactionBody.creation();
|
||||||
|
auto receiver = creation.receiveramount();
|
||||||
|
char hex[65]; memset(hex, 0, 65);
|
||||||
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
||||||
|
|
||||||
|
Poco::AutoPtr<controller::User> user = nullptr;
|
||||||
|
if(adminUser) {
|
||||||
|
user = controller::User::create();
|
||||||
|
if(!user->load((const unsigned char*)receiver.ed25519_receiver_pubkey().data())) {
|
||||||
|
user.assign(nullptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//pubkey
|
||||||
%>
|
%>
|
||||||
<h3>Creation</h3>
|
<h3>Creation</h3>
|
||||||
<p>pubkey: <%= creation.
|
<% if(!adminUser || user.isNull() || !user->getModel()) { %>
|
||||||
|
<p>pubkey: <%= hex %></p>
|
||||||
|
<% } else { %>
|
||||||
|
<p>user: </p>
|
||||||
|
<p><%= user->getModel()->toHTMLString() %></p>
|
||||||
|
<% } %>
|
||||||
|
<p>amount: <%= TransactionBase::amountToString(receiver.amount()) %> GDD</p>
|
||||||
<% } %>
|
<% } %>
|
||||||
<% } %>
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user