adding impressum, datenschutzs, decodeTransaction, change search always search first_email, last_name or email instead email only if string is valid email

This commit is contained in:
Dario 2020-01-20 11:31:05 +01:00
parent 9a35b846dc
commit 8327d83d70
7 changed files with 104 additions and 12 deletions

View File

@ -498,8 +498,8 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
responseStream << " <div class=\"row\">\n";
responseStream << " <div class=\"col-sm-6 text-center text-sm-right order-sm-1\">\n";
responseStream << " <ul class=\"text-gray\">\n";
responseStream << " <li><a href=\"#\">Terms of use</a></li>\n";
responseStream << " <li><a href=\"#\">Privacy Policy</a></li>\n";
responseStream << "\t\t\t\t<li><a href=\"https://gradido.net/de/datenschutz/\" target=\"_blank\">Datenschutzerkl&auml;rung</a></li>\n";
responseStream << " <li><a href=\"https://gradido.net/de/impressum/\" target=\"_blank\">Impressum</a></li>\n";
responseStream << " </ul>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"col-sm-6 text-center text-sm-left mt-3 mt-sm-0\">\n";

View File

@ -19,6 +19,8 @@
#include "CheckTransactionPage.h"
#include "ResetPassword.h"
#include "DecodeTransactionPage.h"
#include "../SingletonManager/SessionManager.h"
@ -64,6 +66,13 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
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
Poco::Net::NameValueCollection cookies;
request.getCookies(cookies);

View File

@ -39,14 +39,14 @@ namespace controller {
std::vector<model::table::UserTuple> resultFromDB;
// check if search string is email
if (sm->isValid(searchString, VALIDATE_EMAIL)) {
/*if (sm->isValid(searchString, VALIDATE_EMAIL)) {
resultFromDB = db->loadFromDB <std::string, model::table::UserTuple>("email", globalSearch);
}
else {
std::vector<std::string> fieldNames = { "first_name", "last_name" };
std::vector<std::string> fieldValues = { globalSearch, globalSearch };
else {*/
std::vector<std::string> fieldNames = { "first_name", "last_name", "email" };
std::vector<std::string> fieldValues = { globalSearch, globalSearch, globalSearch };
resultFromDB = db->loadFromDB<std::string, model::table::UserTuple>(fieldNames, fieldValues, model::table::MYSQL_CONDITION_OR);
}
//}
db->release();
db = nullptr;

View File

@ -22,7 +22,7 @@ int main(int argc, char** argv)
printf("error initing sodium, early exit\n");
return -1;
}
ServerConfig::g_versionString = "0.11.0";
ServerConfig::g_versionString = "0.20.KW03.01";
printf("User size: %d Bytes, Session size: %d Bytes\n", sizeof(User), sizeof(Session));
printf("model sizes: User: %d Bytes, EmailOptIn: %d Bytes\n", sizeof(model::table::User), sizeof(model::table::EmailOptIn));

View File

@ -198,8 +198,6 @@ int SigningTransaction::run() {
sendErrorsAsEmail();
return -8;
}
//Poco::Thread::sleep(10000);
return 0;
}

View File

@ -0,0 +1,85 @@
<%@ page class="DecodeTransactionPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%!
#include "sodium.h"
#include "../proto/gradido/TransactionBody.pb.h"
%>
<%%
const char* pageName = "Decode Transaction";
model::messages::gradido::TransactionBody transactionBody;
bool decoded = false;
if(!form.empty()) {
auto base64 = form.get("transaction", "");
if(base64 != "") {
unsigned char* binBuffer = (unsigned char*)malloc(base64.size());
size_t resultingBinSize = 0;
size_t base64_size = base64.size();
if (sodium_base642bin(
binBuffer, base64_size,
base64.data(), base64_size,
nullptr, &resultingBinSize, nullptr,
sodium_base64_VARIANT_ORIGINAL))
{
free(binBuffer);
addError(new Error("ProcessingTransaction", "error decoding base64"));
} else {
std::string binString((char*)binBuffer, resultingBinSize);
free(binBuffer);
if (!transactionBody.ParseFromString(binString)) {
addError(new Error("ProcessingTransaction", "error creating Transaction from binary Message"));
} else {
decoded = true;
}
}
}
}
/*
char *sodium_bin2hex(char * const hex, const size_t hex_maxlen,
const unsigned char * const bin, const size_t bin_len);
*/
%><%@ include file="header_old.cpsp" %>
<div class="grd_container">
<h1>Transaktion dekodieren</h1>
<%= getErrorsHtml() %>
<form method="POST">
<fieldset class="grd_container_small">
<legend>Transaktion dekodieren</legend>
<textarea style="width:100%;height:100px" name="transaction"><%= !form.empty() ? form.get("transaction", "") : "" %></textarea>
</fieldset>
<input class="grd-form-bn grd-form-bn-succeed" type="submit" name="submit" value="Dekodieren">
</form>
<% if(decoded) { %>
<p><b>Verwendungszweck:</b></p>
<p><%= transactionBody.memo() %></p>
<% if(transactionBody.has_transfer()) {
auto transfer = transactionBody.transfer();
%>
<h3>Transfer</h3>
<b>Sender</b>
<% for(int i = 0; i < transfer.senderamounts_size(); i++) {
auto sender = transfer.senderamounts(i);
char hex[65]; memset(hex, 0, 65);
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
%>
<p>pubkey: <%= hex %></p>
<p>amount: <%= sender.amount() %></p>
<% } %>
<b>Receiver</b>
<% for(int i = 0; i < transfer.receiveramounts_size(); i++) {
auto receiver = transfer.receiveramounts(i);
char hex[65]; memset(hex, 0, 65);
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
%>
<p>pubkey: <%= hex %></p>
<p>amount: <%= receiver.amount() %></p>
<% } %>
<% } else if(transactionBody.has_creation()) { %>
<h3>Creation</h3>
<% } %>
<% } %>
</div>
<%@ include file="footer.cpsp" %>

View File

@ -6,8 +6,8 @@
<div class="row">
<div class="col-sm-6 text-center text-sm-right order-sm-1">
<ul class="text-gray">
<li><a href="#">Terms of use</a></li>
<li><a href="#">Privacy Policy</a></li>
<li><a href="https://gradido.net/de/datenschutz/" target="_blank">Datenschutzerkl&auml;rung</a></li>
<li><a href="https://gradido.net/de/impressum/" target="_blank">Impressum</a></li>
</ul>
</div>
<div class="col-sm-6 text-center text-sm-left mt-3 mt-sm-0">