parse cpsp files automatic in build

This commit is contained in:
einhorn_b 2021-05-20 13:45:47 +02:00
parent abdd28adb6
commit a4a12bb62b
96 changed files with 264 additions and 10185 deletions

View File

@ -24,6 +24,8 @@ include_directories(
"dependencies/grpc/third_party/googletest/googletest/include"
"build"
"build/proto"
"build/http_pages"
"src/cpp"
)
IF(UNIX)
@ -103,7 +105,9 @@ FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS})
)
# Optional, but that can show the user if something have gone wrong with the proto generation
IF(${rv})
MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}")
MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}")
ELSE()
MESSAGE("Parsed: src/proto/gradido/${proto_parsed}.proto")
ENDIF()
ENDIF()
@ -127,17 +131,59 @@ FOREACH(proto ${DATAMODEL_HEDERA_PROTOS})
)
# Optional, but that can show the user if something have gone wrong with the proto generation
IF(${rv})
MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}")
MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}")
ELSE()
MESSAGE("Parsed: src/proto/hedera/hedera-protobuf/src/main/proto/${proto_parsed}.proto")
ENDIF()
ENDIF()
ENDFOREACH(proto)
############################## parse cpsp Files ####################################
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/cpsp GRADIDO_CPSP_PAGE_SRC_PATH)
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/http_pages GRADIDO_HTTP_PAGES_PATH)
file(MAKE_DIRECTORY ${GRADIDO_HTTP_PAGES_PATH})
FILE(GLOB GRADIDO_HTTP_PAGES_SRC "${GRADIDO_CPSP_PAGE_SRC_PATH}/*.cpsp")
IF(WIN32)
find_program(POCO_PAGE_COMPILER cpspc.exe PATHS "${CONAN_POCO_ROOT}")
ELSE()
find_program(POCO_PAGE_COMPILER cpspc PATHS "${CMAKE_CURRENT_SOURCE_DIR}/build/bin")
ENDIF()
MESSAGE("Poco Page Compiler: ${POCO_PAGE_COMPILER}")
FOREACH(cpsp_file ${GRADIDO_HTTP_PAGES_SRC})
FILE(TO_NATIVE_PATH ${cpsp_file} cpsp_file_native)
get_filename_component(cpsp_file_parsed ${cpsp_file} NAME_WLE)
FILE(TO_NATIVE_PATH ${GRADIDO_HTTP_PAGES_PATH}/${cpsp_file_parsed}Page.cpp cpsp_file_parsed_native)
IF(${cpsp_file_native} IS_NEWER_THAN ${cpsp_file_parsed_native})
EXECUTE_PROCESS(
COMMAND
${POCO_PAGE_COMPILER}
--output-dir=${GRADIDO_HTTP_PAGES_PATH}
--header-output-dir=${GRADIDO_HTTP_PAGES_PATH}
--noline
${cpsp_file_native}
RESULT_VARIABLE rv
)
# Optional, but that can show the user if something have gone wrong with the proto generation
IF(${rv})
MESSAGE("Generation of HTTP Page return ${rv} for cpsp ${cpsp_file_native}")
ELSE()
MESSAGE("Parsed: src/cpsp/${cpsp_file_parsed}.cpsp")
ENDIF()
ENDIF()
ENDFOREACH(cpsp_file)
############################## bind source files ###################################
FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h")
FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h")
FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp")
FILE(GLOB COMPILED_PAGES "build/http_pages/*.h" "build/http_pages/*.cpp")
FILE(GLOB JSONInterface "src/cpp/JSONInterface/*.h" "src/cpp/JSONInterface/*.cpp")
FILE(GLOB TASKS "src/cpp/tasks/*.cpp" "src/cpp/tasks/*.h")
FILE(GLOB SINGLETON_MANAGER "src/cpp/SingletonManager/*.h" "src/cpp/SingletonManager/*.cpp")
@ -161,7 +207,7 @@ FILE(GLOB TEST_MODEL_TABLE "src/cpp/test/model/table/*.cpp" "src/cpp/test/model/
FILE(GLOB TEST_CONTROLLER "src/cpp/test/controller/*.cpp" "src/cpp/test/controller/*.h")
SET(LOCAL_SRCS
${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface}
${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface} ${COMPILED_PAGES}
${JSONInterface} ${CRYPTO}
${MODEL} ${MODEL_TABLE} ${MODEL_EMAIL} ${MODEL_HEDERA} ${MODEL_GRADIDO}
${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS}
@ -188,6 +234,7 @@ if(MSVC)
source_group("mysql" FILES ${MYSQL})
source_group("SingletonManager" FILES ${SINGLETON_MANAGER})
source_group("lib" FILES ${LIB_SRC})
source_group("HTTP-Interface\\pages" FILES ${COMPILED_PAGES})
source_group("HTTP-Interface" FILES ${HTTPInterface})
source_group("Json-Interface" FILES ${JSONInterface})
source_group("Test\\crypto" FILES ${TEST_CRYPTO})

View File

@ -3,6 +3,8 @@ Poco/1.9.4@pocoproject/stable
libsodium/1.0.18@bincrafters/stable
boost/1.71.0@conan/stable
[options]
Poco:enable_pagecompiler=True
[generators]
cmake

View File

@ -1,253 +0,0 @@
#include "AdminCheckUserBackup.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\\adminCheckUserBackup.cpsp"
#include "../Crypto/KeyPairEd25519.h"
#include "../Crypto/Passphrase.h"
#include "../SingletonManager/ConnectionManager.h"
#include "../controller/UserBackup.h"
#include "Poco/Data/Binding.h"
using namespace Poco::Data::Keywords;
typedef Poco::Tuple<int, Poco::Nullable<Poco::Data::BLOB>, std::string> UserBackupTuple;
struct SListEntry
{
Poco::AutoPtr<controller::User> user;
std::vector<Poco::AutoPtr<controller::UserBackup>> backups;
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
AdminCheckUserBackup::AdminCheckUserBackup(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void AdminCheckUserBackup::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 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
const char* pageName = "Admin Check User Backups";
auto cm = ConnectionManager::getInstance();
std::list<SListEntry> notMatchingEntrys;
auto con = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
Poco::Data::Statement select(con);
std::list<UserBackupTuple> userBackupEntrys;
select << "SELECT u.id, u.pubkey, b.passphrase FROM users as u LEFT JOIN user_backups as b on(u.id = b.user_id) order by u.id"
, into(userBackupEntrys);
size_t resultCount = 0;
try {
resultCount = select.execute();
int last_user_id = 0;
for(auto it = userBackupEntrys.begin(); it != userBackupEntrys.end(); it++) {
auto tuple = *it;
auto pubkey = tuple.get<1>();
if(pubkey.isNull()) {
continue;
}
auto passphrase = Passphrase::filter(tuple.get<2>());
auto user_id = tuple.get<0>();
KeyPairEd25519 key_pair(pubkey.value().content().data());
auto wordSource = Passphrase::detectMnemonic(passphrase);
if(!wordSource) {
addError(new Error("admin Check user backup", "invalid passphrase"), false);
addError(new ParamError("admin Check user backup", "passphrase", passphrase.data()), false);
addError(new ParamError("admin Check user backup", "user id", user_id), false);
continue;
}
auto passphrase_object = Passphrase::create(passphrase, wordSource);
auto key_pair_from_passhrase = KeyPairEd25519::create(passphrase_object);
bool matching = false;
if(key_pair_from_passhrase->isTheSame(key_pair)) {
matching = true;
}
delete key_pair_from_passhrase;
if(user_id != last_user_id) {
last_user_id = user_id;
if(matching) continue;
} else {
auto lastEntry = notMatchingEntrys.back();
if(lastEntry.user->getModel()->getID() == user_id && matching == true) {
notMatchingEntrys.pop_back();
continue;
}
}
SListEntry entry;
entry.user = controller::User::create();
entry.user->load(user_id);
entry.backups = controller::UserBackup::load(user_id);
notMatchingEntrys.push_back(entry);
}
}
catch (Poco::Exception& ex) {
addError(new ParamError("adminCheckUserBackup", "mysql error", ex.displayText().data()), false);
}
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Admin Check User Backup</h1>\n";
responseStream << "\t";
#line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<p><b>Unmatching count: ";
#line 96 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( notMatchingEntrys.size() );
responseStream << "</b></p>\n";
responseStream << "\t<table>\n";
responseStream << "\t\t<thead>\n";
responseStream << "\t\t\t<tr><th>id</th><th>Vorname</th><th>Nachname</th><th>E-Mail</th><th>backups count</tr>\n";
responseStream << "\t\t</thead>\n";
responseStream << "\t\t<tbody>\n";
responseStream << "\t\t\t";
#line 102 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
for(auto it = notMatchingEntrys.begin(); it != notMatchingEntrys.end(); it++) {
auto userModel = (*it).user->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t<tr>\n";
responseStream << "\t\t\t\t<td>";
#line 106 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( userModel->getID() );
responseStream << "</td>\n";
responseStream << "\t\t\t\t<td>";
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( userModel->getFirstName() );
responseStream << "</td>\n";
responseStream << "\t\t\t\t<td>";
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( userModel->getLastName() );
responseStream << "</td>\n";
responseStream << "\t\t\t\t<td>";
#line 109 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( userModel->getEmail() );
responseStream << "</td>\n";
responseStream << "\t\t\t\t<td>";
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
responseStream << ( (*it).backups.size() );
responseStream << "</td>\n";
responseStream << "\t\t\t\t</tr>\n";
responseStream << "\t\t\t";
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp"
} responseStream << "\n";
responseStream << "\t\t</tbody>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef AdminCheckUserBackup_INCLUDED
#define AdminCheckUserBackup_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class AdminCheckUserBackup: public SessionHTTPRequestHandler
{
public:
AdminCheckUserBackup(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminCheckUserBackup_INCLUDED

View File

@ -1,241 +0,0 @@
#include "AdminGroupsPage.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_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
#include "../controller/Group.h"
#line 1 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
AdminGroupsPage::AdminGroupsPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void AdminGroupsPage::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 10 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
const char* pageName = "Gruppen";
auto user = mSession->getNewUser();
// add
if(!form.empty()) {
auto alias = form.get("group-alias");
if(alias == "")
{
addError(new Error("Add Group", "Alias is empty!"));
}
else
{
auto newGroup = controller::Group::create(
alias,
form.get("group-name", ""),
form.get("group-url", ""),
form.get("group-host", ""),
form.get("group-home", ""),
form.get("group-desc", "")
);
newGroup->getModel()->insertIntoDB(false);
}
}
// select all
auto groups = controller::Group::listAll();
//auto groups = controller::Group::load("gdd1");
//std::vector<Poco::SharedPtr<controller::Group>> groups;
#line 3 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
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_large.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << "\t\t<div class=\"sidebar1 nav-menu initial\">\n";
responseStream << "\t\t\t<div class=\"nav-vertical\">\n";
responseStream << "\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t";
#line 22 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<li><a href=\"";
#line 23 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "/\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << "\t\t\t\t\t";
#line 24 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 25 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/groups\"><span class=\"link-title\">Gruppen</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 26 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Node Server</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 27 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/hedera_account\"><span class=\"link-title\">Hedera Accounts</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 28 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Hedera Topics</span></a></li>\n";
responseStream << "\t\t\t\t</ul>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
#line 42 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<div class=\"content-list\">\n";
responseStream << "\t\t<div class=\"content-list-title\">\n";
responseStream << "\t\t\t<h2>Alle Gruppen</h2>\n";
responseStream << "\t\t</div>\t\n";
responseStream << "\t\t<div class=\"content-list-table\">\n";
responseStream << "\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c0\">ID</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Name</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Alias</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Url</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\" title=\"Host for json request, needed for example for docker\">Host</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Home</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c5\">";
#line 56 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( gettext("Description") );
responseStream << "</div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 58 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t\t<div class=\"cell c0\">";
#line 61 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getID() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 62 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 63 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getAlias() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 64 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getUrl() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 65 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getHost() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 66 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getHome() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c5\">";
#line 67 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( group_model->getDescription());
responseStream << "</div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 69 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
} responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-title\">\n";
responseStream << "\t <h3>Eine neue Gruppe anlegen</h3>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-form\">\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"group-name\">Name</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"group-name\" type=\"text\" name=\"group-name\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"group-alias\">Alias</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"group-alias\" type=\"text\" name=\"group-alias\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"group-url\">Url</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"group-url\" type=\"text\" name=\"group-url\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"group-host\">Host</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"group-host\" type=\"text\" name=\"group-host\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"group-home\" title=\"Startpage link\">Home</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"group-home\" type=\"text\" name=\"group-home\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"group-desc\">";
#line 87 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( gettext("Description"));
responseStream << "</label>\n";
responseStream << "\t\t\t<textarea class=\"form-control\" name=\"group-desc\" rows=\"3\" maxlength=\"150\" id=\"group-desc\"></textarea>\n";
responseStream << "\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"";
#line 89 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( gettext("Add Group") );
responseStream << "\">\n";
responseStream << "\t</form>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef AdminGroupsPage_INCLUDED
#define AdminGroupsPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class AdminGroupsPage: public SessionHTTPRequestHandler
{
public:
AdminGroupsPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminGroupsPage_INCLUDED

View File

@ -1,548 +0,0 @@
#include "AdminHederaAccountPage.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\\adminHederaAccount.cpsp"
#include "../controller/HederaAccount.h"
#include "../controller/HederaId.h"
#include "../controller/CryptoKey.h"
#include "../lib/DataTypeConverter.h"
#include "../lib/Profiler.h"
#include "../lib/Success.h"
#include "../SingletonManager/SessionManager.h"
#include "../ServerConfig.h"
#include "Poco/URI.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
AdminHederaAccountPage::AdminHederaAccountPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void AdminHederaAccountPage::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\\adminHederaAccount.cpsp"
const char* pageName = "Hedera Account";
auto sm = SessionManager::getInstance();
auto mm = MemoryManager::getInstance();
auto user = mSession->getNewUser();
int auto_renew_period = 604800; // 7 Tage
int auto_renew_account = 0;
double initial_balance = 0.0;
Profiler hedera_time;
std::string hedera_time_string;
Poco::URI uri(request.getURI());
auto uri_query = uri.getQueryParameters();
std::string action = "";
Poco::AutoPtr<controller::HederaAccount> query_hedera_account;
// parsing get query params
if(uri_query.size() >= 2) {
if(uri_query[0].first == "action") {
action = uri_query[0].second;
}
if(uri_query[1].first == "account_id") {
std::string account_id_from_query;
int account_id = 0;
account_id_from_query = uri_query[1].second;
if(DataTypeConverter::strToInt(account_id_from_query, account_id) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting account_id_from_query to int"));
} else {
auto hedera_accounts = controller::HederaAccount::load("id", account_id);
if(!hedera_accounts.size() || hedera_accounts[0].isNull()) {
addError(new Error("Action", "hedera account not found"));
} else {
query_hedera_account = hedera_accounts[0];
}
}
}
}
// actions
if(!query_hedera_account.isNull())
{
if(action == "updateBalance")
{
hedera_time.reset();
if(query_hedera_account->hederaAccountGetBalance(user)) {
addNotification(new ParamSuccess("Hedera", "crypto get balance success in ", hedera_time.string()));
} else {
addError(new ParamError("Hedera", "crypto get balance failed in ", hedera_time.string()));
}
}
else if(action == "changeEncryption")
{
if(query_hedera_account->changeEncryption(user)) {
addNotification(new Success("Hedera Account", "success in changing encryption"));
}
}
}
else if(!form.empty()) // add or create
{
auto creationButton = form.get("create","");
if(creationButton != "") {
// collect
auto auto_renew_account_string = form.get("account-auto-renew-account", "0");
auto auto_renew_period_string = form.get("account-auto-renew-period", "604800");
auto account_initial_balance_string = form.get("account-initial-balance", "0");
if(!sm->isValid(auto_renew_account_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account", "auto renew account id not an integer"));
} else {
if(DataTypeConverter::strToInt(auto_renew_account_string, auto_renew_account) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int convert error", "Error converting auto renew account id to int"));
}
}
if(!sm->isValid(auto_renew_period_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account", "auto renew period not an integer"));
} else {
if(DataTypeConverter::strToInt(auto_renew_period_string, auto_renew_period) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int convert error", "Error converting auto renew period to int"));
}
}
if(!sm->isValid(account_initial_balance_string, VALIDATE_ONLY_DECIMAL)) {
addError(new Error("Account", "initial balance not an decimal"));
} else {
if(DataTypeConverter::strToDouble(account_initial_balance_string, initial_balance) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Double convert error", "Error converting initial balance to double"));
}
}
if(0 == errorCount())
{
}
} else {
// collect
auto shardNumString = form.get("account-shard-num", "0");
auto realmNumString = form.get("account-realm-num", "0");
auto numString = form.get("account-num", "0");
auto privateKeyString = form.get("account-private-key", "");
auto privateKeyEncryptedString = form.get("account-private-key-encrypted", "false");
auto publicKeyString = form.get("account-public-key", "");
auto networkTypeString = form.get("account-network-type", "0");
//printf("private key encrypted: %s\n", privateKeyEncryptedString.data());
int shardNum = 0;
int realmNum = 0;
int num = 0;
int networkType = 0;
MemoryBin* private_key = nullptr;
MemoryBin* public_key = nullptr;
// validate
if(!sm->isValid(shardNumString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account ID", "shard num not integer"));
} else {
if(DataTypeConverter::strToInt(shardNumString, shardNum) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting shardNumString to int"));
}
}
if(!sm->isValid(realmNumString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account ID", "realm num not integer"));
} else {
if(DataTypeConverter::strToInt(realmNumString, realmNum) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting realmNumString to int"));
}
}
if(!sm->isValid(numString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account ID", "num not integer"));
} else {
if(DataTypeConverter::strToInt(numString, num) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting num to int"));
}
}
if(!sm->isValid(privateKeyString, VALIDATE_ONLY_HEX)) {
addError(new Error("Account Keys", "private key not hex"));
}
if(!sm->isValid(publicKeyString, VALIDATE_ONLY_HEX)) {
addError(new Error("Account Keys", "public key not hex"));
}
if(!sm->isValid(networkTypeString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Network Type", "not integer"));
} else {
if(DataTypeConverter::strToInt(networkTypeString, networkType) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting network type to int"));
}
if(networkType < 0 || networkType >= (int)ServerConfig::HEDERA_NET_COUNT) {
addError(new Error("Network Type", "invalid value"));
}
}
if(0 == errorCount()) {
auto hedera_id = controller::HederaId::create(shardNum, realmNum, num);
private_key = DataTypeConverter::hexToBin(privateKeyString);
public_key = DataTypeConverter::hexToBin(publicKeyString);
KeyPairHedera key_pair(private_key, public_key);
auto crypto_key = controller::CryptoKey::load(key_pair.getPublicKey(), crypto_sign_PUBLICKEYBYTES);
if(crypto_key.isNull()) {
crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true");
if(!crypto_key->getModel()->insertIntoDB(true)) {
addError(new Error("DB Error", "Error saving crypto key in DB"));
}
} else {
printf("crypto key found in db\n");
}
if(0 == errorCount()) {
if(hedera_id->isExistInDB()) {
auto hedera_account = controller::HederaAccount::load(hedera_id);
if(hedera_account.isNull()) {
addError(new Error("DB Error", "Couldn't load hedera account from db, but it should exist"));
} else {
addError(new Error("Hedera Account", "Account already exist (same account id"));
}
} else {
auto hedera_account = controller::HederaAccount::create(
user->getModel()->getID(),
hedera_id->getModel()->getID(),
crypto_key->getModel()->getID(),
0,
(ServerConfig::HederaNetworkType)networkType
);
if(!hedera_account->getModel()->insertIntoDB(false)) {
addError(new Error("DB Error", "Error saving hedera account into DB"));
}
}
}
mm->releaseMemory(private_key);
mm->releaseMemory(public_key);
}
}
}
if(!query_hedera_account.isNull()) {
getErrors(query_hedera_account);
}
// list accounts
auto hedera_accounts = controller::HederaAccount::load("user_id", user->getModel()->getID());
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
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_large.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << "\t\t<div class=\"sidebar1 nav-menu initial\">\n";
responseStream << "\t\t\t<div class=\"nav-vertical\">\n";
responseStream << "\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t";
#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<li><a href=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "/\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << "\t\t\t\t\t";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/groups\"><span class=\"link-title\">Gruppen</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Node Server</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 27 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/hedera_account\"><span class=\"link-title\">Hedera Accounts</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 28 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Hedera Topics</span></a></li>\n";
responseStream << "\t\t\t\t</ul>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
responseStream << "<style type=\"text/css\">\n";
responseStream << "\t.center-form-form .input-40 {\n";
responseStream << "\t\tmargin-left:0;\n";
responseStream << "\t\twidth:40%;\n";
responseStream << "\t\tdisplay:inline-block;\n";
responseStream << "\t}\n";
responseStream << "\t\n";
responseStream << "</style>\n";
#line 238 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<div class=\"content-list\">\n";
responseStream << "\t\t<div class=\"content-list-title\">\n";
responseStream << "\t\t\t<h2>Deine Hedera Accounts</h2>\n";
responseStream << "\t\t</div>\t\n";
responseStream << "\t\t<div class=\"content-list-table\">\n";
responseStream << "\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Hedera Id</div>\t\t\t\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Balance</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Server Type</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Verschlüsselt?</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Last Updated</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c5\">Aktionen</div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 254 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
for(auto it = hedera_accounts.begin(); it != hedera_accounts.end(); it++) {
auto hedera_account_model = (*it)->getModel();
auto updateUrl = ServerConfig::g_serverPath + "/hedera_account?action=updateBalance&account_id=" + std::to_string(hedera_account_model->getID());
std::string changeEncryption("");
if(hedera_account_model->getUserId() == user->getModel()->getID()) {
changeEncryption = ServerConfig::g_serverPath + "/hedera_account?action=changeEncryption&account_id=" + std::to_string(hedera_account_model->getID());
}
auto isEncrypted = (*it)->getCryptoKey()->getModel()->isEncrypted();
//printf("change encryption: %s\n", changeEncryption.data());
std::string kabuto_url = "https://explorer.kabuto.sh/";;
if(hedera_account_model->getNetworkType() == ServerConfig::HEDERA_TESTNET) {
kabuto_url += "testnet/";
} else if(hedera_account_model->getNetworkType() == ServerConfig::HEDERA_MAINNET) {
kabuto_url += "mainnet/";
}
kabuto_url += "id/";
auto hedera_id_string = (*it)->getHederaId()->getModel()->toString();
kabuto_url += hedera_id_string;
responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\"><a href=\"";
#line 276 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( kabuto_url );
responseStream << "\" title=\"Hedera Block Explorer - Kabuto\" target=\"_blank\">";
#line 276 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( hedera_id_string );
responseStream << "</a></div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 277 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( hedera_account_model->getBalanceString() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 278 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( model::table::HederaAccount::hederaNetworkTypeToString(hedera_account_model->getNetworkType()) );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3 ";
#line 279 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( isEncrypted ? "success-color" : "alert-color");
responseStream << "\">";
#line 279 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( isEncrypted ? "Ja": "Nein" );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 280 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( hedera_account_model->getUpdatedString() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c5\">\n";
responseStream << "\t\t\t\t\t\t<button class=\"form-button\" title=\"Anfrage an Hedera, aktuell kostenlos\" onclick=\"window.location.href='";
#line 282 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( updateUrl );
responseStream << "'\" >\n";
responseStream << "\t\t\t\t\t\t\tUpdate Balance\n";
responseStream << "\t\t\t\t\t\t</button>\n";
responseStream << "\t\t\t\t\t\t";
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
if(changeEncryption != "") { responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<button class=\"form-button\" title=\"Ändere den Verschlüsselungsstatus des Private Keys in der Datenbank\" onclick=\"window.location.href='";
#line 286 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( changeEncryption );
responseStream << "'\">\n";
responseStream << "\t\t\t\t\t\t\t\tChange Encryption\n";
responseStream << "\t\t\t\t\t\t\t</button>\n";
responseStream << "\t\t\t\t\t\t";
#line 289 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 292 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
} responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-title\">\n";
responseStream << "\t <h3>Ein existierenden Account eintragen</h3>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-form\">\n";
responseStream << "\t\t<form method=\"POST\" action=\"";
#line 299 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/hedera_account\">\n";
responseStream << "\t\t\t<label class=\"form-label\">Hedera Account ID</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-shard-num\" placeholder=\"shard\" type=\"number\" name=\"account-shard-num\"/>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-realm-num\" placeholder=\"realm\" type=\"number\" name=\"account-realm-num\"/>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-num\" placeholder=\"num\" type=\"number\" name=\"account-num\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-private-key\">Private Key</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-private-key\" type=\"text\" name=\"account-private-key\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-private-key-encrypted\" title=\"Wenn er verschlüsselt ist, kannst nur du Hedera Transaktionen damit bezahlen, wenn er nicht verschlüsselt ist kann er für alle Hedera Transaktionen automatisch verwendet werden. Ich empfehle dafür ein separates Konto mit wenigen Hashbars anzulegen.\">Private Key verschlüsseln?</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-private-key-encrypted\" type=\"checkbox\" name=\"account-private-key-encrypted\" value=\"true\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-public-key\">Public Key</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-public-key\" type=\"text\" name=\"account-public-key\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-network-type\">Network Type</label>\n";
responseStream << "\t\t\t<select class=\"form-control\" name=\"account-network-type\" id=\"account-network-type\">\n";
responseStream << "\t\t\t";
#line 312 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
for(int i = 0; i < ServerConfig::HEDERA_NET_COUNT; i++) { responseStream << "\n";
responseStream << "\t\t\t\t<option value=\"";
#line 313 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( i );
responseStream << "\">";
#line 313 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( model::table::HederaAccount::hederaNetworkTypeToString((ServerConfig::HederaNetworkType)i) );
responseStream << "</option>\n";
responseStream << "\t\t\t";
#line 314 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t</select>\n";
responseStream << "\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"add\" value=\"";
#line 316 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( gettext("Add Account") );
responseStream << "\">\n";
responseStream << "\t\t</form>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-title\">\n";
responseStream << "\t\t<h3>Ein neuen Account anlegen</h3>\n";
responseStream << "\t\t<p>Bei Hedera einen neuen Account anlegen und zum Start Hashbars von einem existierenden Account überweisen.</p>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-form\">\n";
responseStream << "\t\t<form method=\"POST\" action=\"";
#line 324 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/hedera_account\">\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-auto-renew-account\">Auto Renew and Founding Hedera Account</label>\n";
responseStream << "\t\t\t<select name=\"account-auto-renew-account\" id=\"account-auto-renew-account\">\n";
responseStream << "\t\t\t\t";
#line 327 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
for(auto it = hedera_accounts.begin(); it != hedera_accounts.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t<option title=\"";
#line 330 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 330 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 330 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
if(auto_renew_account == model->getID()) { responseStream << "selected=\"selected\"";
#line 330 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
} responseStream << ">";
#line 330 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( (*it)->toShortSelectOptionName() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t";
#line 331 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t</select>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-auto-renew-period\">Auto Renew Period in seconds</label>\n";
responseStream << "\t\t\t<div><input class=\"form-control input-40\" id=\"account-auto-renew-period\" value=\"";
#line 334 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( auto_renew_period );
responseStream << "\" type=\"number\" name=\"account-auto-renew-period\"/><span style=\"margin-left:8px\" id=\"readable-auto-renew-period\"></span><div>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"account-initial-balance\">Initial Balance for new Account (taken from founding account)</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"account-initial-balance\" name=\"account-initial-balance\" type=\"number\" step=\"0.00000001\" value=\"";
#line 336 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( std::to_string(initial_balance) );
responseStream << "\" />\n";
responseStream << "\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"create\" value=\"";
#line 337 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( gettext("Create Account") );
responseStream << "\">\n";
responseStream << "\t\t</form>\n";
responseStream << "\t</div>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
responseStream << "<script type=\"text/javascript\" src=\"";
#line 342 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminHederaAccount.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/time_calculations.js\"></script>\n";
responseStream << "<script type=\"text/javascript\">\n";
responseStream << "\tvar input = document.getElementById(\"account-auto-renew-period\");\n";
responseStream << "\tvar span = document.getElementById(\"readable-auto-renew-period\");\n";
responseStream << "\tspan.innerHTML = '~ ' + getExactTimeDuration(input.value);\n";
responseStream << "\tinput.addEventListener('keyup', function(e) {\n";
responseStream << "\t\tspan.innerHTML = '~ ' + getExactTimeDuration(input.value);\n";
responseStream << "\t});\n";
responseStream << "\t\n";
responseStream << "</script>\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef AdminHederaAccountPage_INCLUDED
#define AdminHederaAccountPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class AdminHederaAccountPage: public SessionHTTPRequestHandler
{
public:
AdminHederaAccountPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminHederaAccountPage_INCLUDED

View File

@ -1,374 +0,0 @@
#include "AdminNodeServerPage.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\\adminNodeServer.cpsp"
#include "../controller/NodeServer.h"
#include "../controller/Group.h"
#include "../SingletonManager/SessionManager.h"
#include "../lib/DataTypeConverter.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
AdminNodeServerPage::AdminNodeServerPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void AdminNodeServerPage::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 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
const char* pageName = "Node Server";
auto sm = SessionManager::getInstance();
auto user = mSession->getNewUser();
// add
if(!form.empty()) {
// collect
auto url = form.get("node-server-url", "");
auto portString = form.get("node-server-port", "");
auto nodeServerTypeString = form.get("node-server-type", "0");
auto shardNumString = form.get("account-shard-num", "0");
auto realmNumString = form.get("account-realm-num", "0");
auto numString = form.get("account-num", "0");
auto nodeServerGroupString = form.get("node-server-group", "");
int port = 0;
int shardNum = 0;
int realmNum = 0;
int num = 0;
model::table::NodeServerType nodeServerType = model::table::NODE_SERVER_NONE;
int group_id = 0;
// validate
if(!sm->isValid(url, VALIDATE_ONLY_URL)) {
addError(new ParamError("Node Server", "Url not valid, must start with http or https", url));
}
if(!sm->isValid(portString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Node Server", "Port isn't valid integer"));
} else {
if(DataTypeConverter::strToInt(portString, port) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int convert error", "Error converting port to int"));
}
}
if(!sm->isValid(nodeServerTypeString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Node Server Type", "not integer"));
} else {
int node_server_type_int = 0;
if(DataTypeConverter::strToInt(nodeServerTypeString, node_server_type_int) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting node server type to int"));
}
if(node_server_type_int < 0 || node_server_type_int >= (int)model::table::NODE_SERVER_TYPE_COUNT) {
addError(new Error("Node Server Type", "invalid value"));
} else {
nodeServerType = (model::table::NodeServerType)node_server_type_int;
}
}
if(model::table::NodeServerIsHederaNode(nodeServerType)) {
if(!sm->isValid(shardNumString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account ID", "shard num not integer"));
} else {
if(DataTypeConverter::strToInt(shardNumString, shardNum) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting shardNumString to int"));
}
}
if(!sm->isValid(realmNumString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account ID", "realm num not integer"));
} else {
if(DataTypeConverter::strToInt(realmNumString, realmNum) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting realmNumString to int"));
}
}
if(!sm->isValid(numString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Account ID", "num not integer"));
} else {
if(DataTypeConverter::strToInt(numString, num) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting num to int"));
}
}
} else if(model::table::NodeServerHasGroup(nodeServerType)) {
if(!sm->isValid(nodeServerGroupString, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Group id", "group_id not integer"));
} else {
if(DataTypeConverter::strToInt(nodeServerGroupString, group_id) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting group_id to int"));
}
}
}
if(0 == errorCount()) {
int hedera_id_int = 0;
if(NodeServerIsHederaNode(nodeServerType)) {
auto hedera_id = controller::HederaId::create(shardNum, realmNum, num);
hedera_id_int = hedera_id->getModel()->getID();
}
auto node_server = controller::NodeServer::create(
url, port, group_id, (model::table::NodeServerType)nodeServerType, hedera_id_int
);
if(!node_server->getModel()->insertIntoDB(false)) {
addError(new Error("DB Error", "Error saving Node Server in DB"));
}
}
}
auto groups = controller::Group::listAll();
std::map<int, int> group_indices;
int count = 0;
for(auto it = groups.begin(); it != groups.end(); it++) {
group_indices.insert(std::pair<int, int>((*it)->getModel()->getID(), count));
count++;
}
auto node_servers = controller::NodeServer::listAll();
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
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_large.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << "\t\t<div class=\"sidebar1 nav-menu initial\">\n";
responseStream << "\t\t\t<div class=\"nav-vertical\">\n";
responseStream << "\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t";
#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<li><a href=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "/\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << "\t\t\t\t\t";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/groups\"><span class=\"link-title\">Gruppen</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Node Server</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 27 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/hedera_account\"><span class=\"link-title\">Hedera Accounts</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 28 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Hedera Topics</span></a></li>\n";
responseStream << "\t\t\t\t</ul>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
#line 127 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<div class=\"content-list\">\n";
responseStream << "\t\t<div class=\"content-list-title\">\n";
responseStream << "\t\t\t<h2>Alle Node Server</h2>\n";
responseStream << "\t\t</div>\t\n";
responseStream << "\t\t<div class=\"content-list-table\">\n";
responseStream << "\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c4\">Server Type</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c5\">Url:Port</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Group / Hedera Id</div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto node_server_model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t\t<div class=\"cell c4\">";
#line 143 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( model::table::NodeServer::nodeServerTypeToString(node_server_model->getNodeServerType()) );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c5\">";
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( node_server_model->getUrlWithPort() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">\n";
responseStream << "\t\t\t\t\t\t";
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
if(node_server_model->isHederaNode()) {
auto hedera_id_model = (*it)->getHederaId()->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t";
#line 148 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( hedera_id_model->toString() );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t";
#line 149 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} else if(node_server_model->hasGroup()){
auto groupIt = group_indices.find(node_server_model->getGroupId());
if(groupIt != group_indices.end()) {
auto group_model = groups[groupIt->second]->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t\t<span title=\"";
#line 153 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( group_model->getDescription() );
responseStream << "\">";
#line 153 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</span>\n";
responseStream << "\t\t\t\t\t\t\t";
#line 154 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t\t";
#line 155 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( node_server_model->getGroupId() );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t";
#line 156 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t\t";
#line 157 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-title\">\n";
responseStream << "\t <h3>Ein Node Server hinzufügen</h3>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-form\">\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"node-server-url\">URL</label>\n";
responseStream << "\t\t\t<input required class=\"form-control\" id=\"node-server-url\" name=\"node-server-url\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"node-server-port\">Port</label>\n";
responseStream << "\t\t\t<input required class=\"form-control\" id=\"node-server-port\" name=\"node-server-port\" type=\"number\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"node-server-type\">Network Type</label>\n";
responseStream << "\t\t\t<select class=\"form-control\" name=\"node-server-type\" id=\"node-server-type\">\n";
responseStream << "\t\t\t";
#line 174 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
for(int i = 1; i < model::table::NODE_SERVER_TYPE_COUNT; i++) { responseStream << "\n";
responseStream << "\t\t\t\t<option value=\"";
#line 175 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( i );
responseStream << "\">";
#line 175 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( model::table::NodeServer::nodeServerTypeToString((model::table::NodeServerType)i) );
responseStream << "</option>\n";
responseStream << "\t\t\t";
#line 176 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t</select>\n";
responseStream << "\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t<legend>Nur für Hedera Nodes</legend>\n";
responseStream << "\t\t\t\t<label class=\"form-label\">Hedera Account ID</label>\n";
responseStream << "\t\t\t\t<input class=\"form-control\" id=\"account-shard-num\" placeholder=\"shard\" type=\"number\" name=\"account-shard-num\"/>\n";
responseStream << "\t\t\t\t<input class=\"form-control\" id=\"account-realm-num\" placeholder=\"realm\" type=\"number\" name=\"account-realm-num\"/>\n";
responseStream << "\t\t\t\t<input class=\"form-control\" id=\"account-num\" placeholder=\"num\" type=\"number\" name=\"account-num\"/>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t<legend>Nur für Gradido Nodes</legend>\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"node-server-group\">Gradido Gruppe</label>\n";
responseStream << "\t\t\t\t<select class=\"form-control\" name=\"node-server-group\">\n";
responseStream << "\t\t\t\t\t<option value=\"-1\">Keine Gruppe</option>\n";
responseStream << "\t\t\t\t\t";
#line 190 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t\t\t<option title=\"";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( group_model->getDescription() );
responseStream << "\" value=\"";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( group_model->getID() );
responseStream << "\">";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t";
#line 193 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</select>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t\n";
responseStream << "\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"";
#line 197 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp"
responseStream << ( gettext("Add Node") );
responseStream << "\">\n";
responseStream << "\t</form>\n";
responseStream << "</div>\n";
responseStream << "\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef AdminNodeServerPage_INCLUDED
#define AdminNodeServerPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class AdminNodeServerPage: public SessionHTTPRequestHandler
{
public:
AdminNodeServerPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminNodeServerPage_INCLUDED

View File

@ -1,866 +0,0 @@
#include "AdminNodeServerTestPage.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#include "../controller/NodeServer.h"
#include "../controller/User.h"
#include "../controller/HederaTopic.h"
#include "../lib/DataTypeConverter.h"
#include "../lib/Profiler.h"
#include "../lib/JsonRPCRequest.h"
#include "../model/gradido/Transaction.h"
#include "Poco/Thread.h"
#include "Poco/DateTime.h"
#include "Poco/JSON/Stringifier.h"
enum PageType
{
PAGE_CHOOSE_TEST,
PAGE_RUN_4_SET_TEST,
PAGE_GET_TRANSACTION_RPC_CALL
};
#line 1 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
void AdminNodeServerTestPage::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 28 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
const char* pageName = "Node Server Test";
PageType page = PAGE_CHOOSE_TEST;
Poco::AutoPtr<controller::NodeServer> node_server;
Poco::AutoPtr<controller::NodeServer> node_server2;
Poco::AutoPtr<controller::User> user;
Poco::AutoPtr<controller::HederaTopic> hedera_topic;
Poco::AutoPtr<controller::HederaTopic> hedera_topic2;
int hedera_timeout = 4;
int sleep_ms_between_transactions = 1000;
bool steps[8]; memset(steps, 1, 8 * sizeof(bool));
if(!form.empty())
{
auto node_server_id_string = form.get("test-node-servers", "");
if(node_server_id_string != "") {
int node_server_id = 0;
if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(node_server_id_string, node_server_id )) {
node_server = controller::NodeServer::load(node_server_id);
}
}
node_server_id_string = form.get("test-node-servers2", "");
if(node_server_id_string != "") {
int node_server_id = 0;
if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(node_server_id_string, node_server_id )) {
node_server2 = controller::NodeServer::load(node_server_id);
}
}
auto topic_id_string = form.get("test-hedera-topic", "");
if(topic_id_string != "") {
int topic_id = 0;
if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(topic_id_string, topic_id)) {
hedera_topic = controller::HederaTopic::load(topic_id);
}
}
topic_id_string = form.get("test-hedera-topic2", "");
if(topic_id_string != "") {
int topic_id = 0;
if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(topic_id_string, topic_id)) {
hedera_topic2 = controller::HederaTopic::load(topic_id);
}
}
auto test_timeout_string = form.get("test-timeout", "");
if(test_timeout_string != "") {
DataTypeConverter::strToInt(test_timeout_string, hedera_timeout);
}
auto test_part_timeout_string = form.get("test-part-timeout", "");
if(test_part_timeout_string != "") {
DataTypeConverter::strToInt(test_part_timeout_string, sleep_ms_between_transactions);
}
auto submit = form.get("submit", "");
if(submit == "Run 6-Test") {
page = PAGE_RUN_4_SET_TEST;
} else if(submit == "json-rpc getTransactions") {
page = PAGE_GET_TRANSACTION_RPC_CALL;
}
std::string step_temp;
for(int i = 0; i < 8; i++) {
std::string name = "step-";
name += std::to_string(i+2);
step_temp = form.get(name, "");
if(step_temp == "1") {
steps[i] = true;
} else {
steps[i] = false;
}
}
}
auto node_servers = controller::NodeServer::load(model::table::NODE_SERVER_GRADIDO_NODE);
auto hedera_topics = controller::HederaTopic::listAll();
#line 3 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
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_large.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << "\t\t<div class=\"sidebar1 nav-menu initial\">\n";
responseStream << "\t\t\t<div class=\"nav-vertical\">\n";
responseStream << "\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t";
#line 22 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<li><a href=\"";
#line 23 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "/\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << "\t\t\t\t\t";
#line 24 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 25 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/groups\"><span class=\"link-title\">Gruppen</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 26 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Node Server</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 27 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/hedera_account\"><span class=\"link-title\">Hedera Accounts</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 28 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Hedera Topics</span></a></li>\n";
responseStream << "\t\t\t\t</ul>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
#line 103 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<!-- Tab links -->\n";
responseStream << "\t<div class=\"tab\">\n";
responseStream << "\t <button class=\"tablinks ";
#line 107 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_RUN_4_SET_TEST == page) { responseStream << " active ";
#line 107 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\" onclick=\"openTab(event, 'test-4')\">Test 6-Set (3 AddMember, Creation, 2 Transfer)</button>\n";
responseStream << "\t <button class=\"tablinks ";
#line 108 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_GET_TRANSACTION_RPC_CALL == page) { responseStream << " active ";
#line 108 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\" onclick=\"openTab(event, 'gn-jsonrpc')\" title=\"call via json-rpc to gradido node with getTransactions\">getTransactions</button>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div id=\"test-4\" class=\"tabcontent\" ";
#line 110 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_RUN_4_SET_TEST == page) { responseStream << " style=\"display:block\" ";
#line 110 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">\n";
responseStream << "\t\t<div class=\"center-form-title\">\n";
responseStream << "\t\t\t<h3>Test 6-Set (3 AddMember, Creation, 2 Transfer)</</h3>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"center-form-form\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 115 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/adminNodeServerTest\">\n";
responseStream << "\t\t\t\t<p>1. Create three new accounts and show user public keys for comparisation</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 117 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[0]) { responseStream << " checked=\"checked\" ";
#line 117 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-2\" value=\"1\"/> 2. Send a add-member transaction to hedera topic with one signature (first user)</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 118 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[1]) { responseStream << " checked=\"checked\" ";
#line 118 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-3\" value=\"1\"/> 3. Send a add-member transaction to hedera topic with two signatures (first user and second user)</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 119 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[2]) { responseStream << " checked=\"checked\" ";
#line 119 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-4\" value=\"1\"/> 4. Send a creation transaction to second user, signed by first user</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 120 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[3]) { responseStream << " checked=\"checked\" ";
#line 120 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-5\" value=\"1\"/> 5. Send a transfer transaction from second user to first user signed by second user</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 121 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[4]) { responseStream << " checked=\"checked\" ";
#line 121 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-6\" value=\"1\"/> 6. Send a add-member transaction to hedera topic 2 with one signature (third user)</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 122 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[5]) { responseStream << " checked=\"checked\" ";
#line 122 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-7\" value=\"1\"/> 7. Send a cross group transfer from second user to third user signed by second user</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 123 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[6]) { responseStream << " checked=\"checked\" ";
#line 123 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-8\" value=\"1\"/> 8. Wait x seconds to give hedera time to process transactions</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 124 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[7]) { responseStream << " checked=\"checked\" ";
#line 124 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-9\" value=\"1\"/> 9. Ask choosen node for transaction and print result</p>\n";
responseStream << "\t\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t\t<legend>Group 1 </legend>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-node-servers\">Node Server for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 128 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(node_servers.size() == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<a href=\"";
#line 129 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Edit Node-Servers</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 130 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-node-servers\" id=\"test-node-servers\">\n";
responseStream << "\t\t\t\t\t\t";
#line 132 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 135 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 135 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 135 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!node_server.isNull() && node_server->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 135 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 135 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getUrlWithPort() );
responseStream << ", group: ";
#line 135 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 136 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-hedera-topic\">Hedera Topic for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 139 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(hedera_topics.size() == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<a href=\"";
#line 140 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Edit Hedera-Topics</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 141 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-hedera-topic\" id=\"test-hedera-topic\">\n";
responseStream << "\t\t\t\t\t\t";
#line 143 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = hedera_topics.begin(); it != hedera_topics.end(); it++) {
auto model = (*it)->getModel();
auto hedera_account = (*it)->getAutoRenewAccount();
if(hedera_account->getModel()->getNetworkType() != ServerConfig::HEDERA_TESTNET) {
continue;
}
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 150 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 150 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 150 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!hedera_topic.isNull() && hedera_topic->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 150 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 150 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getName() );
responseStream << ", group: ";
#line 150 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 151 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t</fieldset>\n";
responseStream << "\t\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t\t<legend>Group 2 </legend>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-node-servers2\">Node Server for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 157 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(node_servers.size() == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<a href=\"";
#line 158 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Edit Node-Servers</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 159 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-node-servers2\" id=\"test-node-servers2\">\n";
responseStream << "\t\t\t\t\t\t";
#line 161 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 164 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 164 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 164 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!node_server2.isNull() && node_server2->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 164 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 164 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getUrlWithPort() );
responseStream << ", group: ";
#line 164 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 165 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-hedera-topic2\">Hedera Topic for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 168 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(hedera_topics.size() == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<a href=\"";
#line 169 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Edit Hedera-Topics</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 170 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-hedera-topic2\" id=\"test-hedera-topic2\">\n";
responseStream << "\t\t\t\t\t\t";
#line 172 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = hedera_topics.begin(); it != hedera_topics.end(); it++) {
auto model = (*it)->getModel();
auto hedera_account = (*it)->getAutoRenewAccount();
if(hedera_account->getModel()->getNetworkType() != ServerConfig::HEDERA_TESTNET) {
continue;
}
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 179 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 179 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 179 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!hedera_topic2.isNull() && hedera_topic2->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 179 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 179 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getName() );
responseStream << ", group: ";
#line 179 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 180 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t</fieldset>\n";
responseStream << "\t\t\t\t\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"test-timeout\">Timeout waiting for hedera in seconds</label>\n";
responseStream << "\t\t\t\t<input name=\"test-timeout\" id=\"test-timeout\" type=\"number\" value=\"";
#line 185 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( hedera_timeout );
responseStream << "\"> seconds \n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"test-part-timeout\">Timeout between transactions to prevent out-of-order</label>\n";
responseStream << "\t\t\t\t<input name=\"test-part-timeout\" id=\"test-part-timeout\" type=\"number\" value=\"";
#line 187 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( sleep_ms_between_transactions );
responseStream << "\"> ms\n";
responseStream << "\t\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"Run 6-Test\">\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div id=\"gn-jsonrpc\" class=\"tabcontent\" ";
#line 192 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_GET_TRANSACTION_RPC_CALL == page) { responseStream << " style=\"display:block\" ";
#line 192 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">\n";
responseStream << "\t\t<div class=\"center-form-title\">\n";
responseStream << "\t\t\t<h3>Test 4-Set (2 AddMember, Creation, Transfer)</</h3>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"center-form-form\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 197 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/adminNodeServerTest\">\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"test-node-servers\">Node Server to call</label>\n";
responseStream << "\t\t\t\t";
#line 199 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(node_servers.size() == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t<a href=\"";
#line 200 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Edit Node-Servers</span></a>\n";
responseStream << "\t\t\t\t";
#line 201 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t<select name=\"test-node-servers\" id=\"test-node-servers\">\n";
responseStream << "\t\t\t\t\t";
#line 203 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t<option title=\"";
#line 206 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 206 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 206 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!node_server.isNull() && node_server->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 206 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 206 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getUrlWithPort() );
responseStream << ", group: ";
#line 206 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t";
#line 207 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</select>\n";
responseStream << "\t\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"json-rpc getTransactions\">\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t";
#line 213 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_RUN_4_SET_TEST == page && !hedera_topic.isNull() && !node_server.isNull()) { responseStream << "\n";
responseStream << "\t<ul>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>1. Create three new accounts and show user public keys for comparisation: </p>\n";
responseStream << "\t\t\t";
#line 217 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
Profiler time2;
auto group_id = hedera_topic->getModel()->getGroupId();
auto group_id2 = hedera_topic2->getModel()->getGroupId();
auto user_group = controller::Group::load(group_id);
auto user_group2 = controller::Group::load(group_id2);
auto mnemonic_type = ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER;
std::string password1 = "hsaj(2askaslASlllak3wjjeudsaj";
auto user_1 = controller::User::create("testEmail@google.de", "Max", "Mustermann", group_id);
auto passphrase_1 = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[mnemonic_type]);
auto gradido_key_pair_1 = KeyPairEd25519::create(passphrase_1);
user_1->setGradidoKeyPair(gradido_key_pair_1);
user_1->login(password1);
std::string password2 = "uweia8saiSale,dsasA";
auto user_2 = controller::User::create("testEmail2@google.de", "MJax", "Mustrermann", group_id);
auto passphrase_2 = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[mnemonic_type]);
auto gradido_key_pair_2 = KeyPairEd25519::create(passphrase_2);
user_2->setGradidoKeyPair(gradido_key_pair_2);
user_2->login(password2);
std::string password3 = "jaue_skaiellasealaK";
auto user_3 = controller::User::create("testEmail3@gmail.com", "Morpheus", "Miaufull", group_id2);
auto passphrase_3 = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[mnemonic_type]);
auto gradido_key_pair_3 = KeyPairEd25519::create(passphrase_3);
user_3->setGradidoKeyPair(gradido_key_pair_3);
user_3->login(password3);
responseStream << "\t\t\t\n";
responseStream << "\t\t\t<fieldset><legend>";
#line 246 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_group->getModel()->getName() );
responseStream << "</legend>\n";
responseStream << "\t\t\t\t<p>User 1: ";
#line 247 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_1->getPublicHex() );
responseStream << "</p>\n";
responseStream << "\t\t\t\t<p>User 2: ";
#line 248 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_2->getPublicHex() );
responseStream << "</p>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<fieldset><legend>";
#line 250 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_group2->getModel()->getName() );
responseStream << "</legend>\n";
responseStream << "\t\t\t\t<p>User 3: ";
#line 251 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_3->getPublicHex() );
responseStream << "</p>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<p>Time: ";
#line 253 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>2. Send a add-member transaction to hedera topic with one signature (first user)</p>\n";
responseStream << "\t\t\t";
#line 257 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[0]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 261 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto transaction1 = model::gradido::Transaction::createGroupMemberUpdate(user_1, user_group);
transaction1->getTransactionBody()->getGroupMemberUpdate()->setMinSignatureCount(1);
transaction1->sign(user_1);
auto transaction1_json = transaction1->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 267 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction1_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 268 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 269 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>3. Send a add-member transaction to hedera topic with two signatures (first user and second user)</p>\n";
responseStream << "\t\t\t";
#line 273 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[1]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 277 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto transaction2 = model::gradido::Transaction::createGroupMemberUpdate(user_2, user_group);
transaction2->getTransactionBody()->getGroupMemberUpdate()->setMinSignatureCount(2);
transaction2->sign(user_2);
// wait before sending fourth transaction, gn seems to crash by more than 3 transaction at nearly the same time
Poco::Thread::sleep(sleep_ms_between_transactions);
transaction2->sign(user_1);
auto transaction2_json = transaction2->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 286 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction2_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 287 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 288 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>4. Send a creation transaction to second user, signed by first user</p>\n";
responseStream << "\t\t\t";
#line 292 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[2]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 296 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto transaction3 = model::gradido::Transaction::createCreation(user_2, 10000000, Poco::DateTime(), "Test Creation", model::gradido::BLOCKCHAIN_HEDERA);
// wait before sending fourth transaction, gn seems to crash by more than 3 transaction at nearly the same time
Poco::Thread::sleep(sleep_ms_between_transactions);
transaction3->sign(user_1);
auto transaction3_json = transaction3->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 303 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction3_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 304 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 305 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>5. Send a transfer transaction from second user to first user signed by second user</p>\n";
responseStream << "\t\t\t";
#line 309 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[3]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 313 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto user_1_pubkey = user_1->getModel()->getPublicKeyCopy();
auto transaction4 = model::gradido::Transaction::createTransfer(user_2, user_1_pubkey, user_group, 5000000, "Test Transfer", model::gradido::BLOCKCHAIN_HEDERA);
// wait before sending fourth transaction, gn seems to crash by more than 3 transaction at nearly the same time
Poco::Thread::sleep(sleep_ms_between_transactions);
transaction4->sign(user_2);
auto transaction4_json = transaction4->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 321 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction4_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 322 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 323 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>6. Send a add-member transaction to hedera topic 2 with one signature (third user)</p>\n";
responseStream << "\t\t\t";
#line 327 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[4]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 331 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto transaction5 = model::gradido::Transaction::createGroupMemberUpdate(user_3, user_group2);
transaction5->getTransactionBody()->getGroupMemberUpdate()->setMinSignatureCount(1);
Poco::Thread::sleep(sleep_ms_between_transactions);
transaction5->sign(user_3);
auto transaction5_json = transaction5->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 338 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction5_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 339 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 340 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>7. Send a cross group transfer from second user to third user signed by second user</p>\n";
responseStream << "\t\t\t";
#line 344 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[5]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 348 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto user_3_pubkey = user_3->getModel()->getPublicKeyCopy();
auto transaction6 = model::gradido::Transaction::createTransfer(user_2, user_3_pubkey, user_group2, 4000000, "Test Group Transfer", model::gradido::BLOCKCHAIN_HEDERA, false);
if(transaction6.isNull()) {
responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"alert alert-error\" role=\"alert\">\n";
responseStream << "\t\t\t\t\t<i class=\"material-icons-outlined\">report_problem</i>\n";
responseStream << "\t\t\t\t\t<span>Error creating Transaction</span>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t";
#line 357 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
Poco::Thread::sleep(sleep_ms_between_transactions);
transaction6->sign(user_2);
auto transaction6_json = transaction6->getTransactionAsJson(true);
auto paired_transaction = transaction6->getPairedTransaction();
responseStream << "\n";
responseStream << "\t\t\t\t\t<p>";
#line 364 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction6_json) );
responseStream << "</p>\t\t\n";
responseStream << "\t\t\t\t\t";
#line 365 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!paired_transaction.isNull()) {
auto transaction6_2_json = paired_transaction->getTransactionAsJson(true);
responseStream << "<p>";
#line 367 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction6_2_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t\t\t";
#line 368 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t";
#line 369 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t";
#line 370 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " \n";
responseStream << "\t\t\t<p>Time: ";
#line 371 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>8. Wait ";
#line 374 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( hedera_timeout );
responseStream << " seconds to give hedera time to process transactions</p>\n";
responseStream << "\t\t\t";
#line 375 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!steps[6]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 377 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
Poco::Thread::sleep(hedera_timeout * 1000);
} responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>9. Ask choosen node for transaction and print result</p>\n";
responseStream << "\t\t\t";
#line 383 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[7] || node_server.isNull()) {
responseStream << "<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 386 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
auto node_server_model = node_server->getModel();
JsonRPCRequest jsonrpc(node_server_model->getUrl(), node_server_model->getPort());
Poco::JSON::Object params;
params.set("groupAlias", user_group->getModel()->getAlias());
params.set("lastKnownSequenceNumber", 0);
auto gn_answear = jsonrpc.request("getTransactions", params);
if(!gn_answear.isNull()) {
std::stringstream ss;
Poco::JSON::Stringifier::stringify(gn_answear, ss, 4, -1, Poco::JSON_PRESERVE_KEY_ORDER);
std::string answear_string = ss.str(); responseStream << "\n";
responseStream << "\t\t\t\t\t";
#line 397 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(answear_string) );
#line 397 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
}
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 400 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t</ul>\n";
responseStream << "\t";
#line 403 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else if(PAGE_GET_TRANSACTION_RPC_CALL == page && !node_server.isNull()) {
Profiler time3;
auto node_server_model = node_server->getModel();
auto user_group = controller::Group::load(node_server_model->getGroupId());
JsonRPCRequest jsonrpc(node_server_model->getUrl(), node_server_model->getPort());
Poco::JSON::Object params;
params.set("groupAlias", user_group->getModel()->getAlias());
params.set("lastKnownSequenceNumber", 0);
auto gn_answear = jsonrpc.request("getTransactions", params);
if(!gn_answear.isNull()) {
std::stringstream ss;
Poco::JSON::Stringifier::stringify(gn_answear, ss, 4, -1, Poco::JSON_PRESERVE_KEY_ORDER);
std::string answear_string = ss.str(); responseStream << "\n";
responseStream << "\t\t\t";
#line 416 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(answear_string) );
#line 416 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
}
responseStream << "\n";
responseStream << "\t\t<p>Time: ";
#line 419 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time3.string() );
responseStream << "</p>\n";
responseStream << "\t";
#line 420 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\n";
responseStream << "</div>\n";
responseStream << "<script type=\"text/javascript\" src=\"";
#line 423 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/tabs.js\"></script>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,18 +0,0 @@
#ifndef AdminNodeServerTestPage_INCLUDED
#define AdminNodeServerTestPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "PageRequestMessagedHandler.h"
class AdminNodeServerTestPage: public PageRequestMessagedHandler
{
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminNodeServerTestPage_INCLUDED

View File

@ -1,558 +0,0 @@
#include "AdminTopicPage.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\\adminTopic.cpsp"
#include "../controller/HederaAccount.h"
#include "../controller/HederaTopic.h"
#include "../controller/Group.h"
#include "../SingletonManager/SessionManager.h"
#include "../ServerConfig.h"
#include "../lib/DataTypeConverter.h"
#include "../lib/Profiler.h"
#include "../lib/Success.h"
#include "Poco/Timespan.h"
#include "Poco/URI.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
AdminTopicPage::AdminTopicPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void AdminTopicPage::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 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
const char* pageName = "Topic";
auto user = mSession->getNewUser();
auto sm = SessionManager::getInstance();
Profiler hedera_time;
std::string name = "";
std::string topic_id_string = "";
int auto_renew_account = 0;
int auto_renew_period = 7890000; // 3 Monate
int group_id = 0;
Poco::URI uri(request.getURI());
auto uri_query = uri.getQueryParameters();
std::string action = "";
Poco::AutoPtr<controller::HederaTopic> query_hedera_topic;
// parsing get query params
if(uri_query.size() >= 2) {
if(uri_query[0].first == "action") {
action = uri_query[0].second;
}
if(uri_query[1].first == "topic_id") {
std::string topic_id_from_query;
int topic_id = 0;
topic_id_from_query = uri_query[1].second;
if(DataTypeConverter::strToInt(topic_id_from_query, topic_id) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting topic_id_from_query to int"));
} else {
auto hedera_topic = controller::HederaTopic::load(topic_id);
if(hedera_topic.isNull()) {
addError(new Error("Action", "hedera topic not found"));
} else {
query_hedera_topic = hedera_topic;
}
}
}
}
// actions
if(!query_hedera_topic.isNull())
{
if(action == "getTopicInfos")
{
hedera_time.reset();
if(query_hedera_topic->updateWithGetTopicInfos(user)) {
addNotification(new ParamSuccess("Hedera", "hedera get topic infos success in ", hedera_time.string()));
} else {
addError(new ParamError("Hedera", "hedera get topic infos failed in ", hedera_time.string()));
}
getErrors(query_hedera_topic);
}
}
else if(!form.empty())
{
name = form.get("topic-name", "");
topic_id_string = form.get("topic-id", "");
auto auto_renew_account_string = form.get("topic-auto-renew-account", "0");
auto auto_renew_period_string = form.get("topic-auto-renew-period", "7890000");
auto group_id_string = form.get("topic-group", "-1");
Poco::AutoPtr<controller::HederaId> topic_id;
if(topic_id_string != "" && sm->isValid(topic_id_string, VALIDATE_HEDERA_ID)) {
topic_id = controller::HederaId::create(topic_id_string);
if(topic_id.isNull()) {
addError(new Error("Hedera Id", "cannot parse hedera id"));
}
} else {
if(name != "" && !sm->isValid(name, VALIDATE_NAME)) {
addError(new Error("Topic", "Name not valid, at least 3 Character"));
}
if(!sm->isValid(auto_renew_account_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Topic", "auto renew account id not an integer"));
} else {
if(DataTypeConverter::strToInt(auto_renew_account_string, auto_renew_account) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int convert error", "Error converting auto renew account id to int"));
}
}
if(!sm->isValid(auto_renew_period_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Topic", "auto renew period not an integer"));
} else {
if(DataTypeConverter::strToInt(auto_renew_period_string, auto_renew_period) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int convert error", "Error converting auto renew period to int"));
}
}
}
if(!sm->isValid(group_id_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Topic", "group_id not an integer"));
} else {
if(DataTypeConverter::strToInt(group_id_string, group_id) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int convert error", "Error converting group_id to int"));
}
}
//const std::string& name, int autoRenewAccountId, int autoRenewPeriod, int groupId
// add or create topic?
// add topic
if(!topic_id.isNull()) {
if(topic_id->getModel()->insertIntoDB(true)) {
auto hedera_topic = controller::HederaTopic::loadFromHedera(topic_id, group_id, user);
if(!hedera_topic.isNull()) {
hedera_topic->getModel()->insertIntoDB(false);
} else {
addError(new Error("Hedera Topic", "error load topic from hedera"));
}
} else {
addError(new Error("Hedera Id", "Error saving hedera id"));
}
// create topic
} else {
auto hedera_topic = controller::HederaTopic::create(name, auto_renew_account, auto_renew_period, group_id);
if(!hedera_topic->getModel()->insertIntoDB(true)) {
addError(new Error("Topic", "error saving into db"));
} else {
auto payer = controller::HederaAccount::load(auto_renew_account);
if(payer.isNull()) {
addError(new Error("Payer", "payer account not found"));
} else {
auto hedera_task = hedera_topic->createTopic(payer, user);
if(hedera_task.isNull()) {
addError(new Error("Create Topic", "Failed"));
getErrors(hedera_topic);
}
}
}
}
}
auto hedera_accounts = controller::HederaAccount::load("user_id", user->getModel()->getID());
//std::vector<Poco::AutoPtr<controller::HederaAccount>> hedera_accounts;
auto groups = controller::Group::listAll();
std::map<int, int> group_indices;
int count = 0;
for(auto it = groups.begin(); it != groups.end(); it++) {
group_indices.insert(std::pair<int, int>((*it)->getModel()->getID(), count));
count++;
}
auto hedera_topics = controller::HederaTopic::listAll();
//std::vector<Poco::AutoPtr<controller::HederaTopic>> hedera_topics;
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
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_large.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << "\t\t<div class=\"sidebar1 nav-menu initial\">\n";
responseStream << "\t\t\t<div class=\"nav-vertical\">\n";
responseStream << "\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t";
#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<li><a href=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "/\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << "\t\t\t\t\t";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/groups\"><span class=\"link-title\">Gruppen</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Node Server</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 27 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/hedera_account\"><span class=\"link-title\">Hedera Accounts</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 28 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Hedera Topics</span></a></li>\n";
responseStream << "\t\t\t\t</ul>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
responseStream << "<style type=\"text/css\">\n";
responseStream << "\t.center-form-form .input-40 {\n";
responseStream << "\t\tmargin-left:0;\n";
responseStream << "\t\twidth:40%;\n";
responseStream << "\t\tdisplay:inline-block;\n";
responseStream << "\t}\n";
responseStream << "\t\n";
responseStream << "</style>\n";
#line 180 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"content-container info-container\">\n";
responseStream << "\t<h1>Topic Admin Page</h1>\n";
responseStream << "</div>\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<div class=\"content-list\">\n";
responseStream << "\t\t<div class=\"content-list-title\">\n";
responseStream << "\t\t\t<h2>Hedera Topics</h2>\n";
responseStream << "\t\t</div>\t\n";
responseStream << "\t\t<div class=\"content-list-table\">\n";
responseStream << "\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Topic ID</div>\t\t\t\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Name</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Network Type</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c4\">Auto Renew Account Balance</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c4\">Auto Renew Period</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Group ID</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\">Current Timeout</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Sequence Number</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c3\" title=\"Last Time Get update from Hedera\">Last Updated</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c5\">Aktionen</div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 202 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
for(auto it = hedera_topics.begin(); it != hedera_topics.end(); it++) {
auto hedera_topic_model = (*it)->getModel();
auto updateUrl = ServerConfig::g_serverPath + "/topic?action=getTopicInfos&topic_id=" + std::to_string(hedera_topic_model->getID());
std::string kabuto_url = "https://explorer.kabuto.sh/";//testnet/id/0.0.132132;
auto auto_renew_account = (*it)->getAutoRenewAccount();
auto renew_account_model = auto_renew_account->getModel();
if(renew_account_model->getNetworkType() == ServerConfig::HEDERA_TESTNET) {
kabuto_url += "testnet/";
} else if(renew_account_model->getNetworkType() == ServerConfig::HEDERA_MAINNET) {
kabuto_url += "mainnet/";
}
kabuto_url += "id/";
std::string timeout_color = "success-color";
if(hedera_topic_model->getCurrentTimeout() < Poco::DateTime()) {
timeout_color = "alert-color";
} else if((hedera_topic_model->getCurrentTimeout() - Poco::DateTime()) < Poco::Timespan(2,0,0,0,0)) {
timeout_color = "orange-color";
}
std::string topic_hedera_id_string = "";
auto topic_hedera_id = (*it)->getTopicHederaId();
if(!topic_hedera_id.isNull()) {
topic_hedera_id_string = topic_hedera_id->getModel()->toString();
kabuto_url += topic_hedera_id_string;
}
responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\"><a title=\"Hedera Block Explorer - Kabuto\" target=\"_blank\" href=\"";
#line 234 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( kabuto_url );
responseStream << "\">";
#line 234 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( topic_hedera_id_string );
responseStream << "</a></div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 235 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( hedera_topic_model->getName() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 236 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( model::table::HederaAccount::hederaNetworkTypeToString(renew_account_model->getNetworkType()) );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c4\">";
#line 237 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( renew_account_model->getBalanceString() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c4\">";
#line 238 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( hedera_topic_model->getAutoRenewPeriodString() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 239 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( hedera_topic_model->getGroupId() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3 ";
#line 240 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( timeout_color );
responseStream << "\">";
#line 240 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( hedera_topic_model->getCurrentTimeoutString() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 241 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( hedera_topic_model->getSequenceNumber() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c3\">";
#line 242 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( hedera_topic_model->getUpdatedString() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c5\">";
#line 243 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
if(!topic_hedera_id.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<button class=\"form-button\" title=\"Query on Hedera, cost some fees\" onclick=\"window.location.href='";
#line 244 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( updateUrl );
responseStream << "'\" >\n";
responseStream << "\t\t\t\t\t\t\tget topic infos\n";
responseStream << "\t\t\t\t\t\t</button>\n";
responseStream << "\t\t\t\t\t\t";
#line 247 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 250 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<!-- Tab links -->\n";
responseStream << "\t<div class=\"tab\">\n";
responseStream << "\t <button class=\"tablinks\" onclick=\"openTab(event, 'topic-create')\">New Topic</button>\n";
responseStream << "\t <button class=\"tablinks\" onclick=\"openTab(event, 'topic-add')\">Add Topic</button>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div id=\"topic-create\" class=\"tabcontent\">\n";
responseStream << "\t\t<div class=\"center-form-title\">\n";
responseStream << "\t\t\t<h3>Ein neues Topic anlegen</h3>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"center-form-form\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 263 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/topic\">\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"topic-name\">Name</label>\n";
responseStream << "\t\t\t\t<input type=\"text\" class=\"form-control\" id=\"topic-name\" name=\"topic-name\" value=\"";
#line 265 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( name );
responseStream << "\">\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"topic-auto-renew-account\">Auto Renew Hedera Account</label>\n";
responseStream << "\t\t\t\t<select name=\"topic-auto-renew-account\" id=\"topic-auto-renew-account\">\n";
responseStream << "\t\t\t\t\t";
#line 268 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
for(auto it = hedera_accounts.begin(); it != hedera_accounts.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t<option title=\"";
#line 271 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 271 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 271 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
if(auto_renew_account == model->getID()) { responseStream << "selected=\"selected\"";
#line 271 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << ">";
#line 271 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( (*it)->toShortSelectOptionName() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t";
#line 272 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</select>\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"topic-auto-renew-period\">Auto Renew Period in seconds</label>\n";
responseStream << "\t\t\t\t<div><input class=\"form-control input-40\" id=\"topic-auto-renew-period\" value=\"";
#line 275 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( auto_renew_period );
responseStream << "\" type=\"number\" name=\"topic-auto-renew-period\"/><span style=\"margin-left:8px\" id=\"readable-auto-renew-period\"></span></div>\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"topic-group\">Group</label>\n";
responseStream << "\t\t\t\t<select class=\"form-control\" name=\"topic-group\" id=\"topic-group\">\t\t\t\n";
responseStream << "\t\t\t\t\t<option value=\"-1\">Keine Gruppe</option>\n";
responseStream << "\t\t\t\t\t";
#line 279 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t\t\t<option title=\"";
#line 281 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( group_model->getDescription() );
responseStream << "\" value=\"";
#line 281 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( group_model->getID() );
responseStream << "\" ";
#line 281 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
if(group_id == group_model->getID()) { responseStream << "selected=\"selected\"";
#line 281 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << ">";
#line 281 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t";
#line 282 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</select>\n";
responseStream << "\t\t\t\t\n";
responseStream << "\t\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"";
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( gettext("Create Topic") );
responseStream << "\">\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div id=\"topic-add\" class=\"tabcontent\">\n";
responseStream << "\t\t<div class=\"center-form-title\">\n";
responseStream << "\t\t\t<h3>Ein bestehendes Topic eintragen</h3>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"center-form-form\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 294 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/topic\">\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"topic-id\">TopicId</label>\n";
responseStream << "\t\t\t\t<input type=\"text\" class=\"form-control\" id=\"topic-id\" name=\"topic-id\" value=\"";
#line 296 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( topic_id_string );
responseStream << "\" placeholder=\"0.0.XXXX\">\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"topic-group\">Group</label>\n";
responseStream << "\t\t\t\t<select class=\"form-control\" name=\"topic-group\" id=\"topic-group\">\t\t\t\n";
responseStream << "\t\t\t\t\t<option value=\"-1\">Keine Gruppe</option>\n";
responseStream << "\t\t\t\t\t";
#line 300 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t\t\t<option title=\"";
#line 302 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( group_model->getDescription() );
responseStream << "\" value=\"";
#line 302 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( group_model->getID() );
responseStream << "\" ";
#line 302 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
if(group_id == group_model->getID()) { responseStream << "selected=\"selected\"";
#line 302 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << ">";
#line 302 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t";
#line 303 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</select>\n";
responseStream << "\t\t\t\t\n";
responseStream << "\t\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"";
#line 306 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( gettext("Add Topic") );
responseStream << "\">\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
responseStream << "<script type=\"text/javascript\" src=\"";
#line 312 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/time_calculations.js\"></script>\n";
responseStream << "<script type=\"text/javascript\" src=\"";
#line 313 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminTopic.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/tabs.js\"></script>\n";
responseStream << "<script type=\"text/javascript\">\n";
responseStream << "\tvar input = document.getElementById(\"topic-auto-renew-period\");\n";
responseStream << "\tvar span = document.getElementById(\"readable-auto-renew-period\");\n";
responseStream << "\tspan.innerHTML = '~ ' + getExactTimeDuration(input.value);\n";
responseStream << "\tinput.addEventListener('keyup', function(e) {\n";
responseStream << "\t\tspan.innerHTML = '~ ' + getExactTimeDuration(input.value);\n";
responseStream << "\t});\n";
responseStream << "\t\n";
responseStream << "</script>";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef AdminTopicPage_INCLUDED
#define AdminTopicPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class AdminTopicPage: public SessionHTTPRequestHandler
{
public:
AdminTopicPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminTopicPage_INCLUDED

View File

@ -1,282 +0,0 @@
#include "AdminUserPasswordReset.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\\adminUserPasswordReset.cpsp"
// includes
#include "../controller/User.h"
#include "../controller/EmailVerificationCode.h"
#include "../controller/UserBackup.h"
enum PageState
{
PAGE_ASK_EMAIL,
PAGE_SHOW_EMAIL
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
AdminUserPasswordReset::AdminUserPasswordReset(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void AdminUserPasswordReset::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 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
// code
PageState state = PAGE_ASK_EMAIL;
Poco::AutoPtr<controller::User> user = controller::User::create();
Poco::AutoPtr<controller::EmailVerificationCode> code;
Poco::AutoPtr<controller::UserBackup> userBackup;
bool validUser = false;
std::string pageName = "Admin User Passwort Reset";
if(!form.empty()) {
auto email = form.get("user-email", "");
if("" != email) {
if(1 != user->load(email)) {
addError(new Error("Benutzer Email", "Konnte keinen passenden Benutzer finden!"));
} else {
validUser = true;
}
}
}
if(validUser) {
auto userId = user->getModel()->getID();
code = controller::EmailVerificationCode::load(userId, model::table::EMAIL_OPT_IN_RESET_PASSWORD);
if(code.isNull()) {
code = controller::EmailVerificationCode::create(userId, model::table::EMAIL_OPT_IN_RESET_PASSWORD);
if(!code->getModel()->insertIntoDB(false)) {
addError(new Error("E-Mail Verification Code", "Fehler beim speichern!"));
getErrors(code->getModel());
}
}
auto backups = controller::UserBackup::load(userId);
auto userPubkey = user->getModel()->getPublicKey();
for(auto it = backups.begin(); it != backups.end(); it++) {
auto keys = (*it)->getKeyPair();
if(keys->isTheSame(userPubkey)) {
userBackup = *it;
break;
}
}
if(userBackup.isNull()) {
addError(new Error("User Backup", "Kein passendes User Backup gefunden!"));
}
if(!userBackup.isNull() && !code.isNull()) {
state = PAGE_SHOW_EMAIL;
}
}
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t";
#line 70 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<h1>Admin User Passwort Reset</h1>\n";
responseStream << "\t<p>Ein Benutzer hat ein Passwort Reset angefordert, hat aber seine Passphrase nicht.</p>\n";
responseStream << "\t";
#line 73 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
if(PAGE_ASK_EMAIL == state) { responseStream << "\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"user-email\">Benutzer E-Mail</label>\n";
responseStream << "\t\t\t\t<input id=\"user-email\" type=\"text\" name=\"user-email\" value=\"";
#line 78 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( !form.empty() ? form.get("user-email") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<p><input type=\"submit\" style=\"width:auto\" value=\"Anzeigen\"></p>\n";
responseStream << "\t\t</form>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t";
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 84 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
if(validUser) {
auto userModel = user->getModel(); responseStream << "\n";
responseStream << "\t\t<h3>Benutzer gefunden</h3>\n";
responseStream << "\t\t<ul>\n";
responseStream << "\t\t\t<li>";
#line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( userModel->getFirstName() );
responseStream << " ";
#line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( userModel->getLastName() );
responseStream << "</li>\n";
responseStream << "\t\t\t<li>";
#line 89 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( userModel->getEmail() );
responseStream << "</li>\n";
responseStream << "\t\t\t<li>Public Key: ";
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( userModel->getPublicKeyHex() );
responseStream << "</li>\n";
responseStream << "\t\t\t<li>E-Mail überprüft: ";
#line 91 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( std::to_string(userModel->isEmailChecked()) );
responseStream << "</li>\n";
responseStream << "\t\t\t<li>Private Key verschlüsselt: ";
#line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( std::to_string(userModel->hasPrivateKeyEncrypted()) );
responseStream << "</li>\n";
responseStream << "\t\t\t<li>Passwort gesetzt: ";
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( std::to_string(userModel->getPasswordHashed() != 0) );
responseStream << "</li>\n";
responseStream << "\t\t</ul>\n";
responseStream << "\t";
#line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 96 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
if(PAGE_SHOW_EMAIL == state) { responseStream << "\n";
responseStream << "\t\t<fieldset><legend>E-Mail</legend>\n";
responseStream << "\t\t\t<p>An: ";
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( user->getEmailWithNames() );
responseStream << "\n";
responseStream << "\t\t\t<p><label style=\"width:auto\" for=\"memo-text\">E-Mail Text:</label></p>\n";
responseStream << "<pre>Liebe(r) ";
#line 100 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( user->getModel()->getFirstName() );
responseStream << ",\n";
responseStream << "\n";
responseStream << "hier findest du deine Passphrase mit dessen Hilfe du dir ein neues Passwort einstellen kannst.\n";
responseStream << "Bitte schreibe sie dir auf und packe sie gut weg.\n";
responseStream << "\n";
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( controller::UserBackup::formatPassphrase(userBackup->getPassphrase(ServerConfig::Mnemonic_Types::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER)) );
responseStream << "\n";
responseStream << " \n";
responseStream << "\n";
responseStream << "Unter diesem Link kannst du dir mit Hilfe der Passphrase ein neues Passwort setzen:\n";
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
responseStream << ( code->getLink() );
responseStream << "\n";
responseStream << " \n";
responseStream << "\n";
responseStream << "Liebe Grüße\n";
responseStream << "Dario, Softwareentwickler bei Gradido\n";
responseStream << "</pre>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t";
#line 117 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminUserPasswordReset.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
responseStream << "\t\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef AdminUserPasswordReset_INCLUDED
#define AdminUserPasswordReset_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class AdminUserPasswordReset: public SessionHTTPRequestHandler
{
public:
AdminUserPasswordReset(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // AdminUserPasswordReset_INCLUDED

View File

@ -1,287 +0,0 @@
#include "CheckEmailPage.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\\checkEmail.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/LanguageManager.h"
#include "../SingletonManager/EmailManager.h"
enum PageState
{
MAIL_NOT_SEND,
ASK_VERIFICATION_CODE,
EMAIL_ACTIVATED,
KONTO_ALREADY_EXIST
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
CheckEmailPage::CheckEmailPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void CheckEmailPage::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 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
const char* pageName = "Email Verification";
auto lm = LanguageManager::getInstance();
auto em = EmailManager::getInstance();
auto user = mSession->getNewUser();
auto lang = chooseLanguage(request);
auto langCatalog = lm->getFreeCatalog(lang);
unsigned long long verificationCode = 0;
PageState state = ASK_VERIFICATION_CODE;
if(mSession && model::table::EMAIL_OPT_IN_REGISTER_DIRECT == mSession->getEmailVerificationType())
{
state = EMAIL_ACTIVATED;
}
else
{
if(!form.empty()) {
auto langBtn = form.get("lang-btn", "");
auto verficationCodeStr = form.get("email-verification-code", "0");
try {
verificationCode = stoull(verficationCodeStr);
} catch(...) {
verificationCode = 0;
}
auto updatedLang = LANG_NULL;
if(langBtn != "") {
lang = chooseLanguage(request, langBtn);
langCatalog = lm->getFreeCatalog(lang);
}
}
// remove old cookies if exist
auto sm = SessionManager::getInstance();
sm->deleteLoginCookies(request, response, mSession);
if(mSession) {
getErrors(mSession);
if(mSession->getSessionState() < SESSION_STATE_EMAIL_VERIFICATION_SEND) {
//state = MAIL_NOT_SEND;
}
}
auto hasErrors = errorCount() > 0;
if(!verificationCode) {
verificationCode = getLastGetAsU64(request.getURI());
}
}
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
#line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << " ";
// begin include flags.cpsp
responseStream << "<div class=\"center-form-selectors\">\n";
responseStream << "<form method=\"GET\" action=\"\">\n";
responseStream << "\t<button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_EN) { responseStream << "class=\"flag-btn\"";
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 4 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-england\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "\t<button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_DE) { responseStream << "class=\"flag-btn\"";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 8 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-germany\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "</form>\n";
responseStream << "</div>";
// end include flags.cpsp
responseStream << "\n";
responseStream << " <div class=\"center-form-title\">\n";
responseStream << " <h1>";
#line 73 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("E-Mail verifizieren") );
responseStream << "</h1>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"center-form-form\">\n";
responseStream << " <form action=\"";
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "account/checkEmail\" method=\"GET\">\n";
responseStream << "\t";
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
if(EMAIL_ACTIVATED == state) { responseStream << "\n";
responseStream << "\t\t<p>";
#line 78 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden.") );
responseStream << "</p>\n";
responseStream << "\t\t<a class=\"link-button\" href=\"";
#line 79 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "\">";
#line 79 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Zur Startseite") );
responseStream << "</a>\n";
responseStream << "\t";
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
} else { responseStream << "\n";
responseStream << " <label class=\"form-label\" for=\"email-verification-code\">";
#line 81 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Bitte gib deinen E-Mail Verification Code ein:"));
responseStream << "</label>\n";
responseStream << " <input class=\"form-control\" type=\"number\" name=\"email-verification-code\" id=\"email-verification-code\" placeholder=\"";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Email Verification Code"));
responseStream << "\" ";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
if(verificationCode) { responseStream << "value=\"";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( verificationCode );
responseStream << "\" ";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
} responseStream << ">\n";
responseStream << " <button type=\"submit\" class=\"center-form-submit form-button\">";
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("&Uuml;berpr&uuml;fe Code"));
responseStream << "</button>\n";
responseStream << " </form>\n";
responseStream << " <!--<p>\n";
responseStream << "\t";
#line 86 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Du hast bisher keinen Code erhalten?"));
responseStream << "<br>\n";
responseStream << "\t";
#line 87 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("E-Mail erneut zuschicken (in Arbeit)"));
responseStream << "\n";
responseStream << " </p>-->\n";
responseStream << " <p>\n";
responseStream << "\t\t";
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Funktioniert dein E-Mail Verification Code nicht?"));
responseStream << "<br>\n";
responseStream << "\t\t";
#line 91 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("Schicke uns eine E-Mail und wir k&uuml;mmern uns darum: "));
responseStream << "<br>\n";
responseStream << " <b><a href=\"mailto:";
#line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( em->getAdminReceiver());
responseStream << "?subject=Invalid E-Mail Verification Code&amp;body=Hallo Dario,%0D%0A%0D%0Amein E-Mail Verification-Code: ";
#line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( verificationCode );
responseStream << " funktioniert nicht,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
#line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
responseStream << ( langCatalog->gettext("E-Mail an Support schicken"));
responseStream << "</a></b>\n";
responseStream << "\t </p>\n";
responseStream << " </form>\n";
responseStream << " ";
#line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef CheckEmailPage_INCLUDED
#define CheckEmailPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class CheckEmailPage: public SessionHTTPRequestHandler
{
public:
CheckEmailPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // CheckEmailPage_INCLUDED

View File

@ -1,763 +0,0 @@
#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_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/SingletonTaskObserver.h"
#include "../SingletonManager/EmailManager.h"
#include "../SingletonManager/PendingTasksManager.h"
#include "../model/gradido/TransactionCreation.h"
#include "../model/gradido/TransactionTransfer.h"
#include "../lib/DataTypeConverter.h"
#include "Poco/Thread.h"
enum PageState {
PAGE_TRANSACTION_CREATION,
PAGE_TRANSACTION_TRANSFER,
PAGE_TRANSACTION_GROUP_ADD_MEMBER,
PAGE_NO_TRANSACTIONS,
PAGE_USER_DATA_CORRUPTED
};
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 28 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
const char* pageName = gettext("&Uuml;berpr&uuml;fe Transaktion");
auto account_user = mSession->getNewUser();
auto user = account_user;
auto user_model = account_user->getModel();
auto em = EmailManager::getInstance();
auto pt = PendingTasksManager::getInstance();
auto userBalance = account_user->getBalance();
std::string memo = "";
bool hasErrors = false;
bool enableLogout = true;
bool enableSign = true;
int skip_count = 0;
int pending_task_id = 0;
std::string community_server_base_path = ServerConfig::g_php_serverPath;
if(user_model->getGroupId() != 0) {
community_server_base_path = user->getGroupBaseUrl();
}
PageState state = PAGE_NO_TRANSACTIONS;
Poco::AutoPtr<controller::PendingTask> pending_task;
model::gradido::Transaction* transaction = nullptr;
Poco::AutoPtr<model::gradido::TransactionBody> transaction_body;
if(!form.empty())
{
auto ok = form.get("ok", "");
auto abort = form.get("abort", "");
auto skip = form.get("skip", "");
auto skip_count_str = form.get("skip-count", "0");
auto pending_task_id_string = form.get("pending-task-id", "");
DataTypeConverter::strToInt(skip_count_str, skip_count);
if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(pending_task_id_string, pending_task_id))
{
// load transaction from pending task manager
pending_task = pt->getPendingTask(pending_task_id);
if(!pending_task.isNull() && pending_task->getModel()->isGradidoTransaction())
{
transaction = dynamic_cast<model::gradido::Transaction*>(pending_task.get());
if(transaction->hasSigned(account_user)) {
transaction = nullptr;
} else {
transaction_body = transaction->getTransactionBody();
}
if(abort != "")
{
//mSession->finalizeTransaction(false, true);
//
if(transaction && transaction->getModel()->getUserId() == user_model->getID())
{
transaction->deleteFromDB();
transaction = nullptr;
}
}
else if(ok != "")
{
if(!account_user->hasPassword()) {
auto pwd = form.get("sign-password", "");
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;
enableSign = false;
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) {
//mSession->finalizeTransaction(true, false);
if(transaction && transaction->sign(account_user)) {
transaction = nullptr;
}
}
}
else if(skip != "")
{
skip_count++;
transaction = nullptr;
}
} else {
addError(new Error(gettext("Input Error"), gettext("Task no found")));
}
} else {
addError(new Error(gettext("Form Error"), gettext("error with field")));
}
}
auto transactions_user_must_sign = pt->getTransactionsUserMustSign(account_user);
std::vector<Poco::AutoPtr<controller::PendingTask>> transactions_someone_must_sign;
// TODO: work with community server roles
if(user_model->getRole() == model::table::ROLE_ADMIN) {
transactions_someone_must_sign = pt->getTransactionSomeoneMustSign(account_user);
}
std::vector<Poco::AutoPtr<controller::PendingTask>> transactions_to_sign;
bool transaction_removeable = false;
int transaction_to_sign_index = 0;
if(!transaction)
{
if(transactions_user_must_sign.size() > skip_count) {
transactions_to_sign = transactions_user_must_sign;
transaction_to_sign_index = skip_count;
} else if(transactions_someone_must_sign.size() > (skip_count - transactions_user_must_sign.size())) {
transactions_to_sign = transactions_someone_must_sign;
transaction_to_sign_index = skip_count - transactions_user_must_sign.size();
}
if(transactions_to_sign.size() > transaction_to_sign_index)
{
transaction = dynamic_cast<model::gradido::Transaction*>(transactions_to_sign[transaction_to_sign_index].get());
transaction_body = transaction->getTransactionBody();
// user can only delete there own transactions
// TODO: Auto timeout for community transactions
if(transaction->getModel()->getUserId() == user_model->getID()) {
transaction_removeable = true;
}
}
}
size_t sumTransactions = transactions_user_must_sign.size() + transactions_someone_must_sign.size();
if(sumTransactions == 0)
{
auto lastExternReferer = mSession->getLastReferer();
auto callerUri = mSession->getCallerUri();
//lastExternReferer = "";
account_user->reload();
if(callerUri != "") {
response.redirect(callerUri);
} else if(lastExternReferer != "" && lastExternReferer.find("transaction-send-coins") == std::string::npos) {
response.redirect(lastExternReferer);
} else if(!account_user->getModel()->getGroupId()) {
response.redirect(getBaseUrl() + "/userUpdateGroup");
} else {
response.redirect(account_user->getGroupBaseUrl() + "/state-balances/overview");
}
return;
}
if(transactions_user_must_sign.size() > 0)
{
enableLogout = false;
}
if(PAGE_NO_TRANSACTIONS == state && transaction && !transaction_body.isNull())
{
auto transactionType = transaction_body->getType();
memo = transaction_body->getMemo();
switch(transactionType) {
case model::gradido::TRANSACTION_CREATION: state = PAGE_TRANSACTION_CREATION; break;
case model::gradido::TRANSACTION_TRANSFER: state = PAGE_TRANSACTION_TRANSFER; break;
case model::gradido::TRANSACTION_GROUP_MEMBER_UPDATE:
state = PAGE_TRANSACTION_GROUP_ADD_MEMBER;
//community_server_base_path
break;
}
if(model::gradido::TRANSACTION_GROUP_MEMBER_UPDATE != transactionType)
{
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;
enableSign = false;
}
}
}
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_chr.cpsp
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "\n";
responseStream << "<head>\n";
responseStream << " <meta charset=\"UTF-8\">\n";
responseStream << " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << " <title>Gradido Login Server: ";
#line 7 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << " <link href=\"";
#line 8 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/favicon.ico\" type=\"image/x-icon\" rel=\"icon\" />\n";
responseStream << " <link href=\"";
#line 9 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/favicon.ico\" type=\"image/x-icon\" rel=\"shortcut icon\" />\n";
responseStream << " <link rel=\"stylesheet\" href=\"";
#line 10 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/css/main.css\" />\n";
responseStream << " <script src=\"";
#line 11 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/js/basic.js\"></script>\n";
responseStream << "</head>\n";
responseStream << "\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"header-notify\">\n";
responseStream << " </div>\n";
responseStream << " <div class=\"sidebar1 nav-menu initial\">\n";
responseStream << " <a href=\"";
#line 19 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "\">\n";
responseStream << " <picture class=\"logo big visible\">\n";
responseStream << " <source srcset=\"";
#line 21 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/img/logo_schrift_half.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 22 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/img/logo_schrift_half.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 23 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/img/logo_schrift_half.png\" class=\"logo big visible\" alt=\"Logo\">\n";
responseStream << " </picture>\n";
responseStream << " <picture class=\"logo small\">\n";
responseStream << " <source srcset=\"";
#line 26 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/img/logo_half.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 27 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/img/logo_half.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 28 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/img/logo_half.png\" class=\"logo small\" alt=\"Logo\">\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " <div>\n";
responseStream << " <i class=\"material-icons-outlined nav-main-button\">menu</i>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"flash-messages\" onclick=\"this.classList.add('hidden')\">";
#line 34 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( getErrorsHtmlNewFormat() );
responseStream << "</div>\n";
responseStream << " <div class=\"nav-vertical\">\n";
responseStream << " <ul>\n";
responseStream << " <li><a href=\"";
#line 37 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/state-balances/overview\" class=\"\"><i class=\"material-icons-outlined nav-icon \" title=\"Kontoübersicht ( ";
#line 37 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( model::gradido::TransactionBase::amountToString(userBalance) );
responseStream << " GDD )\">account_balance_wallet</i><span\n";
responseStream << " class=\"link-title\">Kontoübersicht ( ";
#line 38 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( model::gradido::TransactionBase::amountToString(userBalance) );
responseStream << " GDD )</span></a></li>\n";
responseStream << " <li><a href=\"";
#line 39 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/dashboard/index\" class=\"\"><i class=\"material-icons-outlined nav-icon \" title=\"Startseite\">home</i><span\n";
responseStream << " class=\"link-title\">Startseite</span></a></li>\n";
responseStream << " <li class=' selected'><a href=\"";
#line 41 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "transaction-send-coins/create\" class=\"\"><i class=\"material-icons-outlined nav-icon \"\n";
responseStream << " title=\"Überweisung\">account_balance</i><span class=\"link-title\">Überweisung</span></a></li>\n";
responseStream << " <li><a href=\"https://elopage.com/s/gradido/sign_in\" class=\"\" target=\"_blank\"><i class=\"material-icons-outlined nav-icon \"\n";
responseStream << " title=\"Mitgliederbereich\">people_alt</i><span class=\"link-title\">Mitgliederbereich</span></a></li>\n";
responseStream << " </ul>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"content\">\n";
responseStream << " <div class=\"nav-content\">\n";
responseStream << " <ul class='nav-content-list'>\n";
responseStream << " <li><a href=\"";
#line 51 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( community_server_base_path );
responseStream << "/\" class=\"\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << " <li class='nav-content-separator'>-</li>\n";
responseStream << " <li class='selected'><span class=\"link-title\">";
#line 53 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_navi_chr.cpsp"
responseStream << ( pageName );
responseStream << "</span></li>\n";
responseStream << " </ul>\n";
responseStream << " </div>";
// end include header_navi_chr.cpsp
responseStream << "\n";
#line 209 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"col-md-10 equel-grid mb-3\">\n";
responseStream << "\t<small class=\"text-gray d-block mt-3\">\n";
responseStream << "\t";
#line 212 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(sumTransactions == 0) { responseStream << "\n";
responseStream << "\t\t";
#line 213 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Es gibt zurzeit keine Transaktionen zum best&auml;tigen") );
responseStream << "\n";
responseStream << " ";
#line 214 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\t\n";
responseStream << "\t\t<p>";
#line 215 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( sumTransactions );
responseStream << " ";
#line 215 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Transaktionen warten darauf best&auml;tigt zu werden.") );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 216 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(skip_count > 0) { responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 217 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( skip_count );
responseStream << " ";
#line 217 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Transaktionen &uuml;bersprungen.") );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 218 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 219 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t</small>\n";
responseStream << "</div>\n";
responseStream << "<div class=\"content-container main-container\">\n";
responseStream << "\t<div class=\"action-form\">\n";
responseStream << "\t\t<p class=\"form-header\">";
#line 224 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Transaktion Unterzeichnen") );
responseStream << "</p>\n";
responseStream << "\t\t<div class=\"form-content\">\n";
responseStream << "\t\t";
#line 226 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(state == PAGE_TRANSACTION_TRANSFER) {
auto transferTransaction = transaction_body->getTransferTransaction();
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 229 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("&Uuml;berweisung") );
responseStream << "</p>\n";
responseStream << "\t\t\t<div class=\"content-table\">\n";
responseStream << "\t\t\t <div class=\"content-row content-row-header\">\n";
responseStream << "\t\t\t\t<span class=\"content-cell\">";
#line 232 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Konto") );
responseStream << "</span>\n";
responseStream << "\t\t\t\t<span class=\"content-cell\">";
#line 233 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Gradido") );
responseStream << "</span>\n";
responseStream << "\t\t\t </div>\n";
responseStream << "\t\t\t ";
#line 235 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
for(int i = 0; i < transferTransaction->getKontoTableSize(); i++) { responseStream << "\t\t\t\t\t\n";
responseStream << "\t\t\t\t\t";
#line 236 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if((i+1) % 2 == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<div class=\"content-row content-row\">\n";
responseStream << "\t\t\t\t\t";
#line 238 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<div class=\"content-row content-row-bg\">\n";
responseStream << "\t\t\t\t\t";
#line 240 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t\t";
#line 241 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( transferTransaction->getKontoNameCell(i) );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t";
#line 242 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(((i+1) % 2) == 0 && transferTransaction->getTargetGroupAlias() != "") { responseStream << "\n";
responseStream << "\t\t\t\t\t\t (";
#line 243 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( transferTransaction->getTargetGroupAlias() );
responseStream << ")\n";
responseStream << "\t\t\t\t\t\t";
#line 244 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t\t";
#line 245 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( transferTransaction->getAmountCell(i) );
responseStream << "\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t ";
#line 247 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t ";
#line 249 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else if(PAGE_TRANSACTION_CREATION == state) {
auto creationTransaction = transaction_body->getCreationTransaction();
auto transactionUser = creationTransaction->getUser();
responseStream << "\n";
responseStream << "\t\t\t\t<p>";
#line 253 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Sch&ouml;pfung") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t<div class=\"content-table\">\n";
responseStream << "\t\t\t\t <div class=\"content-row content-row-header\">\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
#line 256 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Konto") );
responseStream << "</span>\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
#line 257 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Zieldatum") );
responseStream << "</span>\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
#line 258 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Gradido") );
responseStream << "</span>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t <div class=\"content-row content-row-bg\">\n";
responseStream << "\t\t\t\t\t";
#line 261 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(!transactionUser.isNull()) {
auto user_model = transactionUser->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t<span class=\"content-cell\">";
#line 264 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( user_model->getFirstName() );
responseStream << " ";
#line 264 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( user_model->getLastName() );
responseStream << " &lt;";
#line 264 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( user_model->getEmail() );
responseStream << "&gt;</span>\n";
responseStream << "\t\t\t\t\t";
#line 265 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<span class=\"content-cell\">0x";
#line 266 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( creationTransaction->getPublicHex() );
responseStream << "</span>\n";
responseStream << "\t\t\t\t\t";
#line 267 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
#line 268 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( creationTransaction->getTargetDateString() );
responseStream << "</span>\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell success-color\">";
#line 269 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( creationTransaction->getAmountString() );
responseStream << " GDD</span>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t ";
#line 272 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else if(PAGE_TRANSACTION_GROUP_ADD_MEMBER == state) {
auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate();
auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias());
Poco::AutoPtr<model::table::Group> group_model;
Poco::AutoPtr<controller::User> user;
if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel();
auto user_id = transaction->getModel()->getUserId();
if(user_id == user_model->getID()) {
user = account_user;
} else {
user = controller::User::sload(user_id);
}
responseStream << "\n";
responseStream << "\t\t\t <p>";
#line 285 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Benutzer zu einer Gruppe hinzufügen") );
responseStream << "</p>\n";
responseStream << "\t\t\t <div class=\"content-table\">\n";
responseStream << "\t\t\t\t<p>";
#line 287 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t<b>Benutzer:</b>&nbsp;";
#line 288 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( user->getEmailWithNames() );
responseStream << "\n";
responseStream << "\t\t\t\t";
#line 289 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t\t<b>Account public key:</b>&nbsp;";
#line 290 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( groupMemberUpdateTransaction->getPublicKeyHex() );
responseStream << "\n";
responseStream << "\t\t\t\t";
#line 291 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "</p>\n";
responseStream << "\t\t\t\t";
#line 292 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(!group_model.isNull()) { responseStream << "\n";
responseStream << "\t\t\t\t\t<p><b>";
#line 293 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Gruppe") );
responseStream << ":</b></p>\n";
responseStream << "\t\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t\t<li>";
#line 295 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Name") );
responseStream << ": ";
#line 295 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</li>\n";
responseStream << "\t\t\t\t\t\t<li>";
#line 296 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Alias") );
responseStream << ": ";
#line 296 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( group_model->getAlias() );
responseStream << "</li>\n";
responseStream << "\t\t\t\t\t\t<li>";
#line 297 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Url") );
responseStream << ": <a href=\"";
#line 297 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( group_model->getUrl() );
responseStream << "/pages/visitor\" target=\"_blank\">";
#line 297 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( group_model->getUrl() );
responseStream << "</a></li>\n";
responseStream << "\t\t\t\t\t\t<li>";
#line 298 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( group_model->getDescription() );
responseStream << "</li>\n";
responseStream << "\t\t\t\t\t</ul>\n";
responseStream << "\t\t\t\t";
#line 300 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t\t";
#line 301 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Unbekannte Gruppe") );
responseStream << "\n";
responseStream << "\t\t\t\t";
#line 302 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t";
#line 303 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Es haben bereits ") );
#line 303 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( std::to_string(transaction->getSignCount()) );
#line 303 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext(" unterzeichnet") );
responseStream << "\n";
responseStream << "\t\t\t </div>\n";
responseStream << "\t\t\t \n";
responseStream << "\t\t\t ";
#line 306 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else if(PAGE_USER_DATA_CORRUPTED == state) { responseStream << "\n";
responseStream << "\t\t\t\t<p class=\"alert-color\">";
#line 307 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Es gibt ein Problem mit deinen gespeicherten Daten, bitte wende dich an den"));
responseStream << "<a href=\"mailto:";
#line 307 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( em->getAdminReceiver());
responseStream << "?subject=Corrupt User Data&amp;body=Hallo Dario,%0D%0A%0D%0Ameine Benutzer Daten sind korrupt.%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
#line 307 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << (gettext("Support") );
responseStream << "</a></p>\n";
responseStream << "\t\t\t ";
#line 308 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t ";
#line 309 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(PAGE_NO_TRANSACTIONS == state) { responseStream << "\n";
responseStream << "\t\t\t\t<a href=\"";
#line 310 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\">";
#line 310 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Zur&uuml;ck") );
responseStream << "</a>\n";
responseStream << "\t\t\t ";
#line 311 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"content-table\">\n";
responseStream << "\t\t\t\t <div class=\"content-row content-row-header\">\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">Aktives Konto</span>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t <div class=\"content-row\">\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
#line 317 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( user_model->getNameWithEmailHtml() );
responseStream << "</span>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"content-table\">\n";
responseStream << "\t\t\t\t <div class=\"content-row content-row-header\">\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">Verwendungszweck</span>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t <div class=\"content-row content-row-bg\">\n";
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
#line 325 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( memo );
responseStream << "</span>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<form>\n";
responseStream << "\t\t\t\t\t";
#line 329 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(transaction) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<input type=\"hidden\" name=\"pending-task-id\" value=\"";
#line 330 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( transaction->getModel()->getID() );
responseStream << "\">\n";
responseStream << "\t\t\t\t\t";
#line 331 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<input type=\"hidden\" name=\"skip-count\" value=\"";
#line 332 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( skip_count );
responseStream << "\">\n";
responseStream << "\t\t\t\t\t";
#line 333 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(!account_user->hasPassword()) { responseStream << "\n";
responseStream << "\t\t\t\t\t <div class=\"form-group\">\n";
responseStream << "\t\t\t\t\t\t <label for=\"sign-password\">";
#line 335 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Ich brauche nochmal dein Passwort") );
responseStream << "</label>\n";
responseStream << "\t\t\t\t\t\t <input type=\"password\" class=\"form-control\" id=\"sign-password\" name=\"sign-password\" placeholder=\"";
#line 336 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Passwort") );
responseStream << "\">\n";
responseStream << "\t\t\t\t\t </div>\n";
responseStream << "\t\t\t\t\t";
#line 338 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t";
#line 339 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(enableSign && !hasErrors) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<button type=\"submit\" class=\"form-button\" name=\"ok\" value=\"ok\">\n";
responseStream << "\t\t\t\t\t\t\t<i class=\"material-icons-outlined\">verified_user</i>\n";
responseStream << "\t\t\t\t\t\t\t";
#line 342 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Transaktion unterzeichnen") );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t</button>\n";
responseStream << "\t\t\t\t\t";
#line 344 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t";
#line 345 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
if(transaction_removeable) { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<button type=\"submit\" class=\"form-button button-cancel\" name=\"abort\" value=\"abort\">\n";
responseStream << "\t\t\t\t\t\t\t<i class=\"material-icons-outlined\">delete</i>\n";
responseStream << "\t\t\t\t\t\t\t";
#line 348 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Transaktion verwerfen") );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t</button>\n";
responseStream << "\t\t\t\t\t";
#line 350 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t\t\t<button type=\"submit\" class=\"form-button button-cancel\" name=\"skip\" value=\"skip\">\n";
responseStream << "\t\t\t\t\t\t\t<i class=\"material-icons-outlined\">debug-step-over</i>\n";
responseStream << "\t\t\t\t\t\t\t";
#line 353 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
responseStream << ( gettext("Transaktion &uuml;berspringen") );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t</button>\n";
responseStream << "\t\t\t\t\t";
#line 355 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</form>\n";
responseStream << "\t\t\t";
#line 357 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\checkTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "</div>\n";
// begin include footer_chr.cpsp
responseStream << "</div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"footer\">\n";
responseStream << " <ul class=\"nav-horizontal\">\n";
responseStream << " <li><a href=\"https://gradido.net/de/datenschutz/\" target=\"_blank\">Datenschutzerklä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=\"nav-bottom\">\n";
responseStream << " <small class=\"\">Copyright © 2020 Gradido</small>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 13 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer_chr.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Community Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 17 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer_chr.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer_chr.cpsp
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef CheckTransactionPage_INCLUDED
#define CheckTransactionPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class CheckTransactionPage: public SessionHTTPRequestHandler
{
public:
CheckTransactionPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // CheckTransactionPage_INCLUDED

View File

@ -1,151 +0,0 @@
#include "ConfigPage.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 4 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\config.cpsp"
const char* pageName = "Config";
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
void ConfigPage::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 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
responseStream << "<h1>Config</h1>\n";
responseStream << "<form method=\"POST\">\n";
responseStream << "\t<div class=\"grd_container\">\n";
responseStream << "\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Server Admin Key</legend>\n";
responseStream << "\t\t\t<p>Möchtest du einen neuen Server Key generieren oder einen existierenden verwenden?</p>\n";
responseStream << "\t\t\t<p>Wenn du bereits einen besitzt kopiere bitte den Merksatz dafür in die Textarea.</p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<input id=\"server-admin-key-new-yes\" type=\"radio\" name=\"new-server-admin-key\" value=\"yes\" checked/>\n";
responseStream << "\t\t\t\t<label for=\"server-admin-key-new-yes\">Einen neuen generieren!</label>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<input id=\"server-admin-key-new-no\" type=\"radio\" name=\"new-server-admin-key\" value=\"no\"/>\n";
responseStream << "\t\t\t\t<label for=\"server-admin-key-new-no\">Einen existierenden verwenden!</label>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"server-admin-key-existing\"></textarea>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Login-Server (dieser Server)</legend>\n";
responseStream << "\t\t\t<p>Bitte gebe die Daten für diesen Server an. </p>\n";
responseStream << "\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t<legend>Datenbank</legend>\n";
responseStream << "\t\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t\t<label for=\"server-db-user\">Benutzernamen: </label>\n";
responseStream << "\t\t\t\t\t<input id=\"server-db-user\" type=\"text\" name=\"server-db-user\" value=\"root\">\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t\t<label for=\"server-db-pwd\">Passwort: </label>\n";
responseStream << "\t\t\t\t\t<input id=\"server-db-pwd\" type=\"password\" name=\"server-db-pwd\" value=\"\">\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t\t<label for=\"server-db-name\">Datenbank Name: </label>\n";
responseStream << "\t\t\t\t\t<input id=\"server-db-name\" name=\"server-db-name\" value=\"\">\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t<label for=\"server-domain\">Server Name (Domain)</label>\n";
responseStream << "\t\t\t\t<input id=\"server-domain\" name=\"server-domain\" type=\"text\">\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>PHP-Server</legend>\n";
responseStream << "\t\t\t<p>Bitte gebe hier die Daten des php-Servers an.</p>\n";
responseStream << "\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t<legend>Datenbank</legend>\n";
responseStream << "\t\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t\t<label for=\"php-server-db-user\">Benutzernamen: </label>\n";
responseStream << "\t\t\t\t\t<input id=\"php-server-db-user\" type=\"text\" name=\"php-server-db-user\" value=\"root\">\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t\t<label for=\"php-server-db-pwd\">Passwort: </label>\n";
responseStream << "\t\t\t\t\t<input id=\"php-server-db-pwd\" type=\"password\" name=\"php-server-db-pwd\" value=\"\">\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t\t<label for=\"php-server-db-name\">Datenbank Name: </label>\n";
responseStream << "\t\t\t\t\t<input id=\"php-server-db-name\" name=\"php-server-db-name\" value=\"\">\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<div class=\"grd-input\">\n";
responseStream << "\t\t\t\t<label for=\"php-server-url\">PHP-Server Url (mit Port)</label>\n";
responseStream << "\t\t\t\t<input id=\"php-server-url\" name=\"php-server-url\" type=\"text\">\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<input class=\"grd_bn_succeed\" type=\"submit\" name=\"submit\" value=\"Absenden\">\n";
responseStream << "\t</div>\n";
responseStream << "</form>\n";
responseStream << "</body>\n";
responseStream << "</html>\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,15 +0,0 @@
#ifndef ConfigPage_INCLUDED
#define ConfigPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
class ConfigPage: public Poco::Net::HTTPRequestHandler
{
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // ConfigPage_INCLUDED

View File

@ -1,200 +0,0 @@
#include "DashboardPage.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\\dashboard.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "Poco/Net/HTTPServerParams.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
DashboardPage::DashboardPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void DashboardPage::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 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
const char* pageName = "Dashboard";
auto user = mSession->getNewUser();
auto user_model = user->getModel();
//Poco::Net::NameValueCollection cookies;
//request.getCookies(cookies);
if(!form.empty()) {
//form.get("email-verification-code")
}
auto uri_start = getBaseUrl();
//response.redirect(ServerConfig::g_php_serverPath);
response.redirect(user->getGroupBaseUrl());
return;
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Willkommen ";
#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( user_model->getFirstName() );
responseStream << "&nbsp;";
#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( user_model->getLastName() );
responseStream << "</h1>\n";
responseStream << "\t";
#line 27 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( mSession->getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<h3>Status</h3>\n";
responseStream << "\t<p>";
#line 29 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( mSession->getSessionStateString() );
responseStream << "</p>\n";
responseStream << "\t";
#line 30 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
if(mSession->getSessionState() == SESSION_STATE_EMAIL_VERIFICATION_SEND) { responseStream << "\n";
responseStream << "\t<p>Verification Code E-Mail wurde erfolgreich an dich verschickt, bitte schaue auch in dein Spam-Verzeichnis nach wenn du sie nicht findest und klicke auf den Link den du dort findest oder kopiere den Code hier her:</p>\n";
responseStream << "\t<form method=\"GET\" action=\"";
#line 32 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( uri_start );
responseStream << "/checkEmail\">\n";
responseStream << "\t\t<input type=\"number\" name=\"email-verification-code\">\n";
responseStream << "\t\t<input class=\"grd-form-bn-succeed grd_clickable\" type=\"submit\" value=\"&Uuml;berpr&uuml;fe Code\">\n";
responseStream << "\t</form>\n";
responseStream << "\t";
#line 36 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
} else if(mSession->getSessionState() == SESSION_STATE_EMAIL_VERIFICATION_WRITTEN) { responseStream << "\n";
responseStream << "\t<p>Hast du schon eine E-Mail mit einem Verification Code erhalten? Wenn ja kannst du ihn hier hinein kopieren:</p>\n";
responseStream << "\t<form method=\"GET\" action=\"checkEmail\">\n";
responseStream << "\t\t<input type=\"number\" name=\"email-verification-code\">\n";
responseStream << "\t\t<input class=\"grd-form-bn-succeed grd_clickable\" type=\"submit\" value=\"&Uuml;berpr&uuml;fe Code\">\n";
responseStream << "\t</form>\n";
responseStream << "\t";
#line 42 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
} responseStream << "\n";
responseStream << "\t<a class=\"grd-form-bn\" href=\"";
#line 43 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( uri_start );
responseStream << "/logout\">Abmelden</a>\n";
responseStream << "\t<a class=\"grd-form-bn\" href=\"";
#line 44 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( uri_start );
responseStream << "/user_delete\">Account l&ouml;schen</a>\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 49 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "\" class=\"grd-nav-bn\">Startseite</a>\n";
responseStream << "\t\t <li><a href=\"";
#line 50 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
responseStream << ( uri_start );
responseStream << "/logout\" class=\"grd-nav-bn\">Logout</a></li>\n";
responseStream << "\t\t</ul>\n";
responseStream << "\t</div>\n";
responseStream << "</nav>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef DashboardPage_INCLUDED
#define DashboardPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class DashboardPage: public SessionHTTPRequestHandler
{
public:
DashboardPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // DashboardPage_INCLUDED

View File

@ -1,276 +0,0 @@
#include "DebugMnemonicPage.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\\debugMnemonic.cpsp"
#include "../ServerConfig.h"
#include "../Crypto/Passphrase.h"
struct WordChecked {
WordChecked() : index(0), bSet(false) {};
int index;
std::string word;
std::string language;
bool bSet;
std::string print()
{
std::string str;
str = std::to_string(index);
str += ": ";
str += word;
str += " (";
str += language;
str += ")";
return str;
}
};
const char* getLanguageByMnemonicListIndex(ServerConfig::Mnemonic_Types type)
{
switch(type) {
case ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER: return "de";
case ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES: return "de";
case ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER: return "en";
}
return "unknown";
}
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
DebugMnemonicPage::DebugMnemonicPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void DebugMnemonicPage::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 42 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
const char* pageName = "Debug Mnemonic";
WordChecked checkedWord;
WordChecked checkedIndex[ServerConfig::Mnemonic_Types::MNEMONIC_MAX];
if(!form.empty())
{
if("" != form.get("check_word", ""))
{
auto word = Passphrase::filter(form.get("word", ""));
if("" != word) {
checkedWord.bSet = true;
checkedWord.word = word;
for (int i = ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++)
{
Mnemonic& m = ServerConfig::g_Mnemonic_WordLists[i];
if (word != "\0" && word != "" && word.size() > 3) {
if(m.isWordExist(word)) {
checkedWord.index = m.getWordIndex(word.data());
checkedWord.language = getLanguageByMnemonicListIndex((ServerConfig::Mnemonic_Types)i);
break;
}
}
else {
addError(new Error("Word", "Ungültiges Wort, es sollte länger als 3 Zeichen sein"));
checkedWord.bSet = false;
break;
}
}
}
}
if("" != form.get("check_index", ""))
{
try {
auto index = stoi(form.get("index", ""));
if(index < 0 || index >= 2048) {
addError(new Error("Index", "Ung&uuml;ltiger Index, muss sich im Bereich [0:2047] bewegen"));
} else {
for (int i = ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++)
{
Mnemonic& m = ServerConfig::g_Mnemonic_WordLists[i];
checkedIndex[i].bSet = true;
checkedIndex[i].index = index;
checkedIndex[i].word = m.getWord(index);
checkedIndex[i].language = getLanguageByMnemonicListIndex((ServerConfig::Mnemonic_Types)i);
}
}
} catch(...) {
addError(new Error("Index", "Ung&uuml;ltiger Index, keine Nummer"));
}
}
}
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Debug Mnemonic</h1>\n";
responseStream << "\t";
#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<form method=\"POST\">\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Wort prüfen</legend>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"word\">Word</label>\n";
responseStream << "\t\t\t\t<input id=\"word\" type=\"text\" name=\"word\" value=\"";
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
responseStream << ( form.get("word", "") );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<input type=\"submit\" name=\"check_word\" value=\"Wort &uuml;berpr&uuml;fen\"/>\n";
responseStream << "\t\t\t";
#line 113 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
if(checkedWord.bSet) { responseStream << "\n";
responseStream << "\t\t\t\t<p>";
#line 114 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
responseStream << ( checkedWord.print() );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
} responseStream << "\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Index prüfen</legend>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"index\">Index</label>\n";
responseStream << "\t\t\t\t<input id=\"index\" type=\"text\" name=\"index\" value=\"";
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
responseStream << ( form.get("index", "") );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<input type=\"submit\" name=\"check_index\" value=\"Index &uuml;berpr&uuml;fen\"/>\n";
responseStream << "\t\t\t";
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
if(checkedIndex[0].bSet) { responseStream << "\n";
responseStream << "\t\t\t\t<ul class=\"grd-no-style\">\n";
responseStream << "\t\t\t\t";
#line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
for (int i = ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++) { responseStream << "\n";
responseStream << "\t\t\t\t\t<li>\n";
responseStream << "\t\t\t\t\t";
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
responseStream << ( checkedIndex[i].print() );
responseStream << "\n";
responseStream << "\t\t\t\t\t</li>\n";
responseStream << "\t\t\t\t";
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</ul>\n";
responseStream << "\t\t\t";
#line 132 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
} responseStream << "\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t</form>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef DebugMnemonicPage_INCLUDED
#define DebugMnemonicPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class DebugMnemonicPage: public SessionHTTPRequestHandler
{
public:
DebugMnemonicPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // DebugMnemonicPage_INCLUDED

View File

@ -1,212 +0,0 @@
#include "DebugPassphrasePage.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\\debugPassphrase.cpsp"
#include "../Crypto/KeyPairEd25519.h"
#include "../controller/User.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
DebugPassphrasePage::DebugPassphrasePage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void DebugPassphrasePage::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 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
const char* pageName = "Debug Passphrase";
KeyPairEd25519* keys = nullptr;
std::string privKeyCryptedHex = "";
Poco::UInt64 pwdHashed = 0;
Poco::AutoPtr<controller::User> existingUser;
if(!form.empty()) {
auto passphrase_string = form.get("passphrase", "");
auto wordSource = Passphrase::detectMnemonic(passphrase_string);
if(!wordSource) {
addError(new Error("debug Passphrase", "invalid passphrase"), false);
} else {
keys = KeyPairEd25519::create(Passphrase::create(passphrase_string, wordSource));
}
auto email = form.get("email", "");
if(email != "") {
existingUser = controller::User::create();
if(1 == existingUser->load(email)) {
auto user_model = existingUser->getModel();
pwdHashed = user_model->getPasswordHashed();
if(user_model->hasPrivateKeyEncrypted()) {
privKeyCryptedHex = user_model->getPrivateKeyEncryptedHex();
}
}
}
}
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Debug Passphrase</h1>\n";
responseStream << "\t";
#line 44 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<form method=\"POST\">\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Userdata</legend>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"email\">E-Mail</label>\n";
responseStream << "\t\t\t\t<input id=\"email\" type=\"email\" name=\"email\" value=\"";
#line 50 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( !form.empty() ? form.get("email") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"passphrase\">";
#line 52 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( !form.empty() ? form.get("passphrase", "") : "" );
responseStream << "</textarea>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Debug\">\n";
responseStream << "\t</form>\n";
responseStream << "\t";
#line 56 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
if(keys) { responseStream << "\n";
responseStream << "\t\t<p>Public key:<br>";
#line 57 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( keys->getPublicKeyHex() );
responseStream << "</p>\n";
responseStream << "\t\t<p>Private key crypted:<br>";
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( privKeyCryptedHex );
responseStream << "</p>\n";
responseStream << "\t\t<p>Passwort Hashed:<br>";
#line 59 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( std::to_string(pwdHashed) );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 60 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
if(!existingUser.isNull()) {
auto userModel = existingUser->getModel();
auto dbPubkey = userModel->getPublicKey();
responseStream << "\n";
responseStream << "\t\t\t<p>user Public: <br>";
#line 64 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
responseStream << ( keys->getPublicKeyHex() );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 65 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 66 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
#line 68 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp"
if(keys) delete keys; responseStream << "\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef DebugPassphrasePage_INCLUDED
#define DebugPassphrasePage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class DebugPassphrasePage: public SessionHTTPRequestHandler
{
public:
DebugPassphrasePage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // DebugPassphrasePage_INCLUDED

View File

@ -1,338 +0,0 @@
#include "DecodeTransactionPage.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_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
#include "sodium.h"
#include "../proto/gradido/GradidoTransaction.pb.h"
#include "../proto/gradido/TransactionBody.pb.h"
#include "../controller/User.h"
#include "../model/gradido/TransactionBase.h"
#include "../model/gradido/TransactionCreation.h"
#include "../lib/DataTypeConverter.h"
#line 1 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
DecodeTransactionPage::DecodeTransactionPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void DecodeTransactionPage::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 16 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
const char* pageName = "Decode Transaction";
proto::gradido::TransactionBody transactionBody;
proto::gradido::GradidoTransaction transaction;
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()) {
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();
bool encodingValid = false;
bool encodedTransaction = false;
if (!sodium_base642bin(
binBuffer, base64_size,
base64.data(), base64_size,
nullptr, &resultingBinSize, nullptr,
sodium_base64_VARIANT_ORIGINAL))
{
encodingValid = true;
} else if(!sodium_base642bin(
binBuffer, base64_size,
base64.data(), base64_size,
nullptr, &resultingBinSize, nullptr,
sodium_base64_VARIANT_URLSAFE_NO_PADDING)) {
encodingValid = true;
//free(binBuffer);
//addError(new Error("ProcessingTransaction", "it is maybe a Transaction, but I support only TransactionBodys"), false);
encodedTransaction = true;
}
if(false == encodingValid) {
free(binBuffer);
addError(new Error("ProcessingTransaction", "error decoding base64"), false);
} else {
std::string binString((char*)binBuffer, resultingBinSize);
free(binBuffer);
if(!encodedTransaction) {
if (!transactionBody.ParseFromString(binString)) {
addError(new Error("ProcessingTransaction", "error creating Transaction Body from binary Message"), false);
} else {
decoded = true;
}
} else {
if(!transaction.ParseFromString(binString)) {
addError(new Error("ProcessingTransaction", "error creating Transaction from binary Message"), false);
} else {
if(!transactionBody.ParseFromString(transaction.body_bytes())) {
addError(new Error("ProcessingTransaction", "error creating Transaction Body from Transaction body bytes"), false);
} else {
decoded = true;
}
}
}
}
}
}
/*
char *sodium_bin2hex(char * const hex, const size_t hex_maxlen,
const unsigned char * const bin, const size_t bin_len);
*/
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Transaktion dekodieren</h1>\n";
responseStream << "\t";
#line 90 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<form method=\"POST\">\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Transaktion dekodieren</legend>\n";
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"transaction\">";
#line 94 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( !form.empty() ? form.get("transaction", "") : "" );
responseStream << "</textarea>\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</form>\n";
responseStream << "\t";
#line 98 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
if(decoded) { responseStream << "\n";
responseStream << "\t\t<p><b>Verwendungszweck:</b></p>\n";
responseStream << "\t\t<p>";
#line 100 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( transactionBody.memo() );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 101 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
if(transactionBody.has_transfer()) {
auto transfer = transactionBody.transfer();
char hex[65]; memset(hex, 0, 65);
responseStream << "\n";
responseStream << "\t\t\t";
#line 105 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
if(transfer.has_local()) {
auto local_transfer = transfer.local();
auto sender_pubkey = local_transfer.sender().pubkey();
auto receiver_pubkey = local_transfer.receiver();
sodium_bin2hex(hex, 65, (const unsigned char*)sender_pubkey.data(), sender_pubkey.size());
responseStream << "\n";
responseStream << "\t\t\t\t<h3>Local Transfer</h3>\n";
responseStream << "\t\t\t\t<b>From: </b>";
#line 112 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( hex );
responseStream << "\n";
responseStream << "\t\t\t\t";
#line 113 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
sodium_bin2hex(hex, 65, (const unsigned char*)receiver_pubkey.data(), receiver_pubkey.size()); responseStream << "\n";
responseStream << "\t\t\t\t<b>To: </b>";
#line 114 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( hex );
responseStream << "\n";
responseStream << "\t\t\t\t<b>Amount: </b>";
#line 115 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( model::gradido::TransactionBase::amountToString(local_transfer.sender().amount()) );
responseStream << "\n";
responseStream << "\t\t\t";
#line 116 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t\t<h3>- Not implemented yet (Group Transfer) -</h3>\n";
responseStream << "\t\t\t";
#line 118 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t";
#line 120 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} else if(transactionBody.has_creation()) {
auto creation = transactionBody.creation();
model::gradido::TransactionCreation creationObject("", creation);
//TransactionCreation creationObject("", creation);
auto receiver = creation.receiver();
char hex[65]; memset(hex, 0, 65);
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.pubkey().data(), receiver.pubkey().size());
Poco::AutoPtr<controller::User> user = nullptr;
if(adminUser) {
user = controller::User::create();
if(!user->load((const unsigned char*)receiver.pubkey().data())) {
user.assign(nullptr);
}
}
//pubkey
responseStream << "\n";
responseStream << "\t\t<h3>Creation</h3>\n";
responseStream << "\t\t";
#line 138 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
if(!adminUser || user.isNull() || !user->getModel()) { responseStream << "\n";
responseStream << "\t\t<p>pubkey: ";
#line 139 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( hex );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 140 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t<p>user: </p>\n";
responseStream << "\t\t<p>";
#line 142 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( user->getModel()->toHTMLString() );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 143 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t\t<p>amount: ";
#line 144 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( model::gradido::TransactionBase::amountToString(receiver.amount()) );
responseStream << " GDD</p>\n";
responseStream << "\t\t<p>target date: ";
#line 145 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( creationObject.getTargetDateString() );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 146 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} else if(transactionBody.has_group_member_update()) {
auto group_member_update = transactionBody.group_member_update();
auto paired_transaction_id = group_member_update.paired_transaction_id();
std::string paired_transaction_string = std::to_string(paired_transaction_id.seconds()) + "." + std::to_string(paired_transaction_id.nanos());
responseStream << "\n";
responseStream << "\t\t\t<h3>Group Member Update</h3>\n";
responseStream << "\t\t\t<p><b>Target group alias: </b>";
#line 152 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( group_member_update.target_group() );
responseStream << "</p>\n";
responseStream << "\t\t\t<p><b>Paired transaction id: </b>";
#line 153 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( paired_transaction_string );
responseStream << "</p>\n";
responseStream << "\t\t\t<p><b>Member Update Type: </b>";
#line 154 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( proto::gradido::GroupMemberUpdate_MemberUpdateType_Name(group_member_update.member_update_type()) );
responseStream << "</p>\n";
responseStream << "\t\t\t<p><b>User Public Key Hex: </b>";
#line 155 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
responseStream << ( DataTypeConverter::pubkeyToHex((const unsigned char*)group_member_update.user_pubkey().data()) );
responseStream << "</p>\n";
responseStream << "\t\t";
#line 156 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 157 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\decodeTransaction.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef DecodeTransactionPage_INCLUDED
#define DecodeTransactionPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class DecodeTransactionPage: public SessionHTTPRequestHandler
{
public:
DecodeTransactionPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // DecodeTransactionPage_INCLUDED

View File

@ -1,155 +0,0 @@
#include "Error500Page.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
#include <Poco/Net/HTTPResponse.h>
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
Error500Page::Error500Page(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void Error500Page::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());
std::ostream& _responseStream = response.send();
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
responseStream << "\n";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
const char* pageName = "Error";
response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_INTERNAL_SERVER_ERROR);
Poco::AutoPtr<controller::User> user;
if(mSession) {
auto user = mSession->getNewUser();
}
// begin include header_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h2>Ein Fehler auf dem Server trat ein, der Admin bekam eine E-Mail.</h2>\n";
responseStream << "\t";
#line 20 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
if(mSession) { responseStream << "\n";
responseStream << "\t\t";
#line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
responseStream << ( mSession->getErrorsHtmlNewFormat() );
responseStream << "\n";
responseStream << "\t";
#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
if(!user.isNull()) { responseStream << "\n";
responseStream << "\t\t";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
responseStream << ( user->getModel()->getErrorsHtmlNewFormat() );
responseStream << " \n";
responseStream << "\t";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\Error500.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef Error500Page_INCLUDED
#define Error500Page_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class Error500Page: public SessionHTTPRequestHandler
{
public:
Error500Page(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // Error500Page_INCLUDED

View File

@ -1,474 +0,0 @@
#include "LoginPage.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_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
#include "../gettext.h"
#include "Poco/Net/HTTPCookie.h"
#include "Poco/Net/HTTPServerParams.h"
#include "Poco/URI.h"
#include "Poco/Logger.h"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/LanguageManager.h"
#include "../SingletonManager/ErrorManager.h"
#include "../lib/JsonRequest.h"
#line 1 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
LoginPage::LoginPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void LoginPage::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_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
const char* pageName = "Login";
auto sm = SessionManager::getInstance();
auto lm = LanguageManager::getInstance();
auto em = ErrorManager::getInstance();
auto uri = Poco::URI(request.getURI());
auto query_parameter = uri.getQueryParameters();
std::string caller_uri = "";
auto lang = chooseLanguage(request);
//printf("choose language return: %d\n", lang);
auto langCatalog = lm->getFreeCatalog(lang);
std::string presetEmail("");
if(mSession && mSession->getNewUser()) {
presetEmail = mSession->getNewUser()->getModel()->getEmail();
}
if(!form.empty()) {
caller_uri = form.get("caller_uri", "");
//printf("form.get: caller_uri: %s\n", caller_uri.data());
bool langUpdatedByBtn = false;
auto langBtn = form.get("lang", "");
if(langBtn != "") {
langUpdatedByBtn = true;
}
/*
auto langInput = form.get("lang", "");
auto updatedLang = LANG_NULL;
if(langBtn != "") {
updatedLang = chooseLanguage(request, langBtn);
langUpdatedByBtn = true;
} else if(langInput != "") {
updatedLang = chooseLanguage(request, langInput);
}
if(updatedLang != LANG_NULL && updatedLang != lang) {
lang = updatedLang;
langCatalog = lm->getFreeCatalog(lang);
}
*/
auto email = form.get("login-email", "");
auto password = form.get("login-password", "");
/*
if(email != "" && password != "") {
//auto session = sm->getSession(request);
//if(!mSession) mSession = sm->findByEmail(email);
if(!mSession) {
mSession = sm->getNewSession();
mSession->setLanguageCatalog(langCatalog);
// get language
// first check url, second check language header
// for debugging client ip
auto client_host = request.clientAddress().host();
//auto client_ip = request.clientAddress();
// X-Real-IP forwarded ip from nginx config
auto client_host_string = request.get("X-Real-IP", client_host.toString());
std::string clientIpString = "client ip: ";
client_host = Poco::Net::IPAddress(client_host_string);
clientIpString += client_ip.toString();
// clientIpString += client_host_string;
Poco::Logger::get("requestLog").information(clientIpString);
// debugging end
auto user_host = request.clientAddress().host();
mSession->setClientIp(user_host);
// mSession->setClientIp(client_host);
response.addCookie(mSession->getLoginCookie());
} else {
langCatalog = mSession->getLanguageCatalog();
*/
/*if(mSession) {
printf("start with session: %d\n", mSession->getHandle());
} else {
printf("start without session\n");
}*/
if(!mSession) {
mSession = sm->getNewSession();
mSession->setLanguageCatalog(langCatalog);
// get language
// first check url, second check language header
// for debugging client ip
auto client_host = request.clientAddress().host();
//auto client_ip = request.clientAddress();
// X-Real-IP forwarded ip from nginx config
auto client_host_string = request.get("X-Real-IP", client_host.toString());
std::string clientIpString = "client ip: ";
client_host = Poco::Net::IPAddress(client_host_string);
clientIpString += client_host_string;
Poco::Logger::get("requestLog").information(clientIpString);
// debugging end
mSession->setClientIp(client_host);
// TODO: check for valid url
if(caller_uri != "") {
mSession->setCallerUri(caller_uri);
}
response.addCookie(mSession->getLoginCookie());
} else {
langCatalog = mSession->getLanguageCatalog();
if(caller_uri == "") {
caller_uri = mSession->getCallerUri();
}
}
//printf("after session: caller_uri: %s\n", caller_uri.data());
if(email != "" && password != "") {
UserState user_state;
auto host = request.find("Host");
std::string host_string = "";
if (host != request.end()) {
host_string = host->second;
}
try {
user_state = mSession->loadUser(email, password);
} catch (Poco::Exception& ex) {
addError(new ParamError("login", "exception by calling loadUser: ", ex.displayText()));
sendErrorsAsEmail();
addError(new Error("Error", "Intern Server error, please try again later"));
}
auto user = mSession->getNewUser();
if(user_state >= USER_LOADED_FROM_DB && !user.isNull() && !user->getModel()->getPublicKey()) {
if(mSession->generateKeys(true, true)) {
user_state = USER_COMPLETE;
if(user->getModel()->isDisabled()) {
user_state = USER_DISABLED;
}
}
}
// check if user group belong to host
if(!user.isNull() && host_string != "") {
auto group = user->getGroup();
if(!group.isNull()) {
if(group->getHost() != host_string) {
printf("group host: %s, host string: %s\n", group->getHost().data(), host_string.data());
user_state = USER_WRONG_HOST;
}
}
}
getErrors(mSession);
auto lastExternReferer = mSession->getLastReferer();
//printf("user_state: %d\n", user_state);
switch(user_state) {
case USER_EMPTY:
case USER_PASSWORD_INCORRECT:
case USER_WRONG_HOST:
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")), false);
if(mSession) {
getErrors(mSession);
sm->releaseSession(mSession);
mSession = nullptr;
}
sm->deleteLoginCookies(request, response);
break;
case USER_PASSWORD_ENCRYPTION_IN_PROCESS:
addError(new Error(langCatalog->gettext("Passwort"), langCatalog->gettext("Passwort wird noch berechnet, bitte versuche es in etwa 1 Minute erneut.")), false);
break;
case USER_KEYS_DONT_MATCH:
addError(new Error(langCatalog->gettext("User"), langCatalog->gettext("Error in saved data, the server admin will look at it.")));
break;
case USER_DISABLED:
addError(new Error(langCatalog->gettext("User"), langCatalog->gettext("Benutzer ist deaktiviert, kein Login möglich!")));
if(mSession) {
getErrors(mSession);
sm->releaseSession(mSession);
mSession = nullptr;
}
sm->deleteLoginCookies(request, response);
break;
case USER_NO_GROUP:
response.redirect(getBaseUrl() + "/userUpdateGroup");
return;
case USER_NO_PRIVATE_KEY:
case USER_COMPLETE:
case USER_EMAIL_NOT_ACTIVATED:
for(auto it = query_parameter.begin(); it != query_parameter.end(); it++) {
printf("query parameter: %s: %s\n", it->first.data(), it->second.data());
if(it->first == "caller_uri") {
std::string redirect_url = it->second;
redirect_url += "?session_id=" + std::to_string(mSession->getHandle());
response.redirect(redirect_url);
}
}
auto referer = request.find("Referer");
std::string refererString;
if (referer != request.end()) {
refererString = referer->second;
}
if(caller_uri != "")
{
std::string redirect_url = caller_uri;
redirect_url += "?session_id=" + std::to_string(mSession->getHandle());
response.redirect(redirect_url);
}
else if(lastExternReferer != "") {
printf("redirect to: %s (last extern referer)\n", lastExternReferer.data());
response.redirect(lastExternReferer);
}
else if(refererString != "" && refererString != "/" &&
refererString.find("login") == std::string::npos &&
refererString.find("logout") == std::string::npos &&
refererString.find("user_delete") == std::string::npos &&
refererString != getBaseUrl() + request.getURI() &&
refererString != user->getGroupBaseUrl() + request.getURI())
{
std::string uri = request.getURI();
printf("request uri: %s, redirect to: %s\n", uri.data(), refererString.data());
response.redirect(refererString);
}
else
{
if(user->getModel()->getGroupId() != 0) {
printf("redirect to: %s/\n", user->getGroupBaseUrl().data());
auto group = controller::Group::load(user->getModel()->getGroupId());
response.redirect(user->getGroupBaseUrl() + "/");
} else {
response.redirect("https://" + request.getHost() + "/");
}
}
return;
}
} else if(!langUpdatedByBtn && caller_uri == "") {
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")), false);
}
} else {
// on enter login page with empty form
//auto session = sm->getSession(request);
// remove old cookies and session if exist
if(mSession) {
getErrors(mSession);
sm->releaseSession(mSession);
mSession = nullptr;
}
sm->deleteLoginCookies(request, response);
}
std::string form_action_url = ServerConfig::g_serverPath + "/";
if(mSession && !mSession->getNewUser().isNull()) {
form_action_url = mSession->getNewUser()->getGroupBaseUrl() + "/";
} else {
form_action_url = getBaseUrl() + "/";
}
#line 3 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
#line 284 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<!--<input type=\"hidden\" name=\"lang\" value=\"";
#line 285 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( LanguageManager::keyForLanguage(lang) );
responseStream << "\">-->\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << " ";
// begin include flags.cpsp
responseStream << "<div class=\"center-form-selectors\">\n";
responseStream << "<form method=\"GET\" action=\"\">\n";
responseStream << "\t<button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 3 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_EN) { responseStream << "class=\"flag-btn\"";
#line 3 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 4 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-england\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "\t<button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 7 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_DE) { responseStream << "class=\"flag-btn\"";
#line 7 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 8 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-germany\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "</form>\n";
responseStream << "</div>";
// end include flags.cpsp
responseStream << "\n";
responseStream << " <div class=\"center-form-form\">\n";
responseStream << "\t\t<form action=\"";
#line 289 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( form_action_url );
responseStream << "\" method=\"POST\">\n";
responseStream << "\t\t\t<input class=\"form-control\" type=\"text\" name=\"login-email\" placeholder=\"";
#line 290 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("E-Mail") );
responseStream << "\" value=\"";
#line 290 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( presetEmail );
responseStream << "\"/>\n";
responseStream << "\t\t\t<input class=\"form-control\" type=\"password\" name=\"login-password\" placeholder=\"";
#line 291 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("Password") );
responseStream << "\" />\n";
responseStream << "\t\t <button type=\"submit\" name=\"submit\" class=\"center-form-submit form-button\">";
#line 292 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext(" Login ") );
responseStream << "</button>\n";
responseStream << "\t\t</form>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"center-form-bottom\">\n";
responseStream << " <div class=\"signup-link\">\n";
responseStream << "\t <p>";
#line 297 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("You haven't any account yet? Please follow the link to create one.") );
responseStream << "</p>\n";
responseStream << "\t <a href=\"https://elopage.com/s/gradido/registration-de/payment?locale=de\">\n";
responseStream << "\t\t\t";
#line 299 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("Create New Account") );
responseStream << "\n";
responseStream << "\t\t </a>\n";
responseStream << "\t </div>\n";
responseStream << "\t\t<div class=\"reset-pwd-link\">\n";
responseStream << "\t\t\t<a href=\"";
#line 303 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/resetPassword\">";
#line 303 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("Passwort vergessen") );
responseStream << "</a>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "</div>\n";
responseStream << "<p>&nbsp;</p>\n";
responseStream << "<div class=\"container\">\n";
responseStream << "\t<a href=\"https://docs.google.com/document/d/1jZp-DiiMPI9ZPNXmjsvOQ1BtnfDFfx8BX7CDmA8KKjY/edit?usp=sharing\" target=\"_blank\">Zum Whitepaper</a>\n";
responseStream << "\t<br>\n";
responseStream << "\t<br>\n";
responseStream << "\t<a href=\"https://docs.google.com/document/d/1kcX1guOi6tDgnFHD9tf7fB_MneKTx-0nHJxzdN8ygNs/edit?usp=sharing\" target=\"_blank\">To the Whitepaper</a>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef LoginPage_INCLUDED
#define LoginPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class LoginPage: public SessionHTTPRequestHandler
{
public:
LoginPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // LoginPage_INCLUDED

View File

@ -7,7 +7,6 @@
#include "ConfigPage.h"
#include "LoginPage.h"
//#include "RegisterPage.h"
#include "HandleFileRequest.h"
#include "DashboardPage.h"
#include "CheckEmailPage.h"
@ -19,14 +18,14 @@
#include "UserUpdateGroupPage.h"
#include "Error500Page.h"
#include "CheckTransactionPage.h"
#include "ResetPassword.h"
#include "ResetPasswordPage.h"
#include "RegisterAdminPage.h"
#include "DebugPassphrasePage.h"
#include "DebugMnemonicPage.h"
#include "AdminCheckUserBackup.h"
#include "TranslatePassphrase.h"
#include "PassphrasedTransaction.h"
#include "AdminUserPasswordReset.h"
#include "AdminCheckUserBackupPage.h"
#include "TranslatePassphrasePage.h"
#include "PassphrasedTransactionPage.h"
#include "AdminUserPasswordResetPage.h"
#include "RegisterDirectPage.h"
#include "AdminGroupsPage.h"
#include "AdminTopicPage.h"
@ -35,7 +34,7 @@
#include "AdminNodeServerTestPage.h"
#include "DecodeTransactionPage.h"
#include "RepairDefectPassphrase.h"
#include "RepairDefectPassphrasePage.h"
#include "../SingletonManager/SessionManager.h"
@ -141,7 +140,7 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
return basicSetup(new RegisterDirectPage, request, timeUsed);
}
if (url_first_part == "/resetPassword") {
return basicSetup(new ResetPassword, request, timeUsed);
return basicSetup(new ResetPasswordPage, request, timeUsed);
}
if (url_first_part == "/decode_transaction") {
@ -149,7 +148,7 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
return basicSetup(new DecodeTransactionPage(s), request, timeUsed);
}
if (url_first_part == "/passphrased_transaction") {
return basicSetup(new PassphrasedTransaction, request, timeUsed);
return basicSetup(new PassphrasedTransactionPage, request, timeUsed);
}
if (url_first_part == "/adminNodeServerTest") {
return basicSetup(new AdminNodeServerTestPage, request, timeUsed);
@ -177,10 +176,10 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
}
if (url_first_part == "/transform_passphrase") {
return basicSetup(new TranslatePassphrase(s), request, timeUsed);
return basicSetup(new TranslatePassphrasePage(s), request, timeUsed);
}
if (url_first_part == "/repairPassphrase") {
return basicSetup(new RepairDefectPassphrase(s), request, timeUsed);
return basicSetup(new RepairDefectPassphrasePage(s), request, timeUsed);
}
if (userModel && userModel->getRole() == model::table::ROLE_ADMIN) {
if (url_first_part == "/adminRegister") {
@ -193,10 +192,10 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
return basicSetup(new DebugMnemonicPage(s), request, timeUsed);
}
if (url_first_part == "/checkUserBackups") {
return basicSetup(new AdminCheckUserBackup(s), request, timeUsed);
return basicSetup(new AdminCheckUserBackupPage(s), request, timeUsed);
}
if (url_first_part == "/adminUserPasswordReset") {
return basicSetup(new AdminUserPasswordReset(s), request, timeUsed);
return basicSetup(new AdminUserPasswordResetPage(s), request, timeUsed);
}
if (url_first_part == "/groups") {
return basicSetup(new AdminGroupsPage(s), request, timeUsed);

View File

@ -1,678 +0,0 @@
#include "PassphrasePage.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\\passphrase.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/LanguageManager.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
//#include "Poco/Net/HTTPServerParams.h"
enum PageState
{
PAGE_ASK_PASSPHRASE,
PAGE_SHOW_PASSPHRASE,
PAGE_ASK_ENSURE_PASSPHRASE,
PAGE_FORCE_ASK_PASSPHRASE
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
PassphrasePage::PassphrasePage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void PassphrasePage::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\\passphrase.cpsp"
chooseLanguage(request);
const char* pageName = gettext("Passphrase");
std::string pageTitle = gettext("Neues Konto anlegen");
std::string pageSubtitle = gettext("2/3");
PageState state = PAGE_ASK_PASSPHRASE;
// variable needed for flags
auto lang = mSession->getLanguage();
auto sm = SessionManager::getInstance();
auto lm = LanguageManager::getInstance();
auto uri_start = ServerConfig::g_serverPath;//request.serverParams().getServerName();
//Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER];
Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER];
if(lang == LANG_DE) {
wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER];
}
// remove old cookies if exist
sm->deleteLoginCookies(request, response, mSession);
// save login cookie, because maybe we've get an new session
response.addCookie(mSession->getLoginCookie());
if(mSession->getSessionState() == SESSION_STATE_RESET_PASSWORD_REQUEST) {
state = PAGE_FORCE_ASK_PASSPHRASE;
}
if (!form.empty()) {
auto btnNext = form.get("nextEnsure", "");
auto btnChecked = form.get("btnChecked", "");
auto langBtn = form.get("lang", "");
if(btnChecked != "") {
mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN);
response.redirect(ServerConfig::g_serverPath + "/passphrase");
return;
}
if(btnNext != "") {
state = PAGE_ASK_ENSURE_PASSPHRASE;
} else if(langBtn == "") {
auto registerKeyChoice = form.get("passphrase", "no");
std::string oldPassphrase = "";
if (registerKeyChoice == "no") {
auto oldPassphrase = Passphrase::filter(form.get("passphrase-existing", ""));
if(oldPassphrase != "") {
auto word_source = Passphrase::detectMnemonic(oldPassphrase);
if (word_source) {
// passphrase is valid
if(PAGE_FORCE_ASK_PASSPHRASE == state) {
auto compareResult = mSession->comparePassphraseWithSavedKeys(oldPassphrase, word_source);
if(-2 == compareResult) {
response.redirect(ServerConfig::g_serverPath + "/error500");
return;
} else if(1 == compareResult) {
response.redirect(ServerConfig::g_serverPath + "/updateUserPassword");
return;
}
} else {
mSession->setPassphrase(oldPassphrase);
mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN);
response.redirect(ServerConfig::g_serverPath + "/saveKeys");
return;
//state = PAGE_SHOW_PASSPHRASE;
}
}
else {
addError(new Error(gettext("Passphrase"), gettext("Diese Passphrase ist ung&uuml;ltig, bitte &uuml;berpr&uuml;fen oder neu generieren (lassen).")), false);
}
}
}
else if (registerKeyChoice == "yes") {
auto passphrase = Passphrase::generate(wordSource);
mSession->setPassphrase(passphrase);
}
}
}
// double check passphrase
auto passphrase = mSession->getOldPassphrase();
auto langWordSource = wordSource;
if("" != passphrase && !Passphrase::detectMnemonic(passphrase)) {
addError(new Error("PassphrasePage", "Invalid Passphrase after double check"));
addError(new ParamError("PassphrasePage", "passphrase", passphrase.data()));
if(!mSession->getNewUser().isNull()) {
addError(new ParamError("PassphrasePage", "user email", mSession->getNewUser()->getModel()->getEmail()));
}
sendErrorsAsEmail();
addError(new Error(gettext("Passphrase"), gettext("intern error please try again later")), false);
//response.redirect(ServerConfig::g_serverPath + "/error500");
//return;
}
//printf("wordSource: %d, langWordSource: %d\n", (int)wordSource, (int)langWordSource);
if(wordSource != langWordSource) {
//mSession->generatePassphrase();
mSession->setPassphrase(Passphrase::generate(wordSource));
}
if(mSession->getSessionState() == SESSION_STATE_PASSPHRASE_GENERATED && state != PAGE_ASK_ENSURE_PASSPHRASE) {
state = PAGE_SHOW_PASSPHRASE;
//mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN);
}
if(state == PAGE_ASK_ENSURE_PASSPHRASE) {
pageSubtitle = gettext("3/3");
}
else if(state == PAGE_ASK_PASSPHRASE) {
pageSubtitle = gettext("1/3");
} else if(state == PAGE_FORCE_ASK_PASSPHRASE) {
pageTitle = gettext("Neues Passwort anlegen");
pageSubtitle = gettext("1/3");
}
getErrors(mSession);
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
#line 141 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
withMaterialIcons = true; std::ostream& _responseStream = response.send();
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
responseStream << "\n";
// begin include login_header.cpsp
// begin include header.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
responseStream << "<div class=\"authentication-theme auth-style_1\">\n";
responseStream << " <div class=\"row\">\n";
responseStream << " <div class=\"col-12 logo-section\">\n";
responseStream << " <a href=\"";
#line 5 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"logo\">\n";
responseStream << " <picture>\n";
responseStream << "\t\t\t\t<source srcset=\"";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << "\t\t\t\t<source srcset=\"";
#line 8 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\"> \n";
responseStream << "\t\t\t\t<img src=\"";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << "\t\t\t</picture>\n";
responseStream << " </a>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"row\">\n";
responseStream << " <div class=\"col-lg-5 col-md-7 col-sm-9 col-11 mx-auto\">\n";
responseStream << " <div class=\"grid\">\n";
responseStream << " <div class=\"center-ul-container\">\n";
responseStream << " ";
#line 18 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"grid-body\">";
// end include login_header.cpsp
responseStream << "\n";
#line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
if(state == PAGE_ASK_ENSURE_PASSPHRASE) { responseStream << "<div style=\"display:none\"> ";
#line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} responseStream << "\n";
responseStream << "\t";
// begin include flags.cpsp
responseStream << "<div class=\"center-form-selectors\">\n";
responseStream << "<form method=\"GET\" action=\"\">\n";
responseStream << "\t<button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_EN) { responseStream << "class=\"flag-btn\"";
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 4 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-england\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "\t<button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_DE) { responseStream << "class=\"flag-btn\"";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 8 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-germany\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "</form>\n";
responseStream << "</div>";
// end include flags.cpsp
responseStream << "\n";
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
if(state == PAGE_ASK_ENSURE_PASSPHRASE) { responseStream << "</div> ";
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} responseStream << "\n";
responseStream << "<div class=\"row mb-3\" ";
#line 145 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
if(state != PAGE_ASK_ENSURE_PASSPHRASE) { responseStream << " style=\"margin-top:70px;\" ";
#line 145 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} responseStream << ">\n";
responseStream << "\t<h2 class=\"mx-auto\">";
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( pageTitle );
responseStream << ": ";
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( pageSubtitle );
responseStream << "</h2>\n";
responseStream << "\t";
#line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
if(state == PAGE_SHOW_PASSPHRASE) { responseStream << "\n";
responseStream << "\t\t<h4 class=\"mx-auto\">";
#line 148 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Passphrase abschreiben") );
responseStream << "</h4>\n";
responseStream << "\t";
#line 149 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
responseStream << "<div class=\"item-wrapper\">\n";
responseStream << "\t<div class=\"row mb-3\">\n";
responseStream << "\t";
#line 153 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
if(state == PAGE_SHOW_PASSPHRASE) { responseStream << "\n";
responseStream << "\t <div class=\"col-md-10 mx-auto\">\n";
responseStream << "\t\t<div class=\"form-group row showcase_row_area\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 156 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/passphrase\">\n";
responseStream << "\t\t\t <div class=\"col-md-12 col-lg-12 \">\n";
responseStream << "\t\t\t\t<div class=\"alert\">\n";
responseStream << "\t\t\t\t <h5 class=\"alert-heading\">";
#line 159 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Was ist eine Passphrase?") );
responseStream << "</h5>\n";
responseStream << "\t\t\t\t <p>";
#line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Deine Passphrase besteht aus den im grünen Feld angezeigten Wörtern.") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t <p>";
#line 161 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Sie dient deiner Sicherheit.") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t <p>";
#line 162 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Du brauchst deine Passphrase um dein Konto wiederherzustellen, wenn du mal dein Passwort vergessen haben solltest.") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<h5 class=\"alert-heading\">";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Deine Passphrase (Groß/Kleinschreibung beachten)") );
responseStream << ":</h5>\n";
responseStream << "\t\t\t\t<div class=\"col-lg-12 col-md-12 mx-auto alert alert-primary\" style=\"text-align:center\">\n";
responseStream << "\t\t\t\t <p>";
#line 166 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( mSession->getPassphrase()->getString() );
responseStream << "</p>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"alert\">\n";
responseStream << "\t\t\t\t <h5 class=\"alert-heading\">";
#line 169 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Was zu tun ist:") );
responseStream << "</h5>\n";
responseStream << "\t\t\t\t <p>";
#line 170 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Schreibe dir die obenstehende Passphrase <b>von Hand</b> auf ein Blatt Papier!") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t <p>";
#line 171 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Speichere sie auf keinen Fall auf deinem Rechner oder Mobilgerät!!") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t <p>";
#line 172 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Bewahre sie an einem sicheren Ort auf!") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<input type=\"submit\" class=\"btn btn-sm btn-primary pull-right\" name=\"nextEnsure\" value=\"";
#line 174 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Weiter") );
responseStream << "\"/>\n";
responseStream << "\t\t\t </div>\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t </div>\n";
responseStream << "\t ";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} else if(state == PAGE_ASK_ENSURE_PASSPHRASE) { responseStream << "\n";
responseStream << "\t <style type=\"text/css\">\n";
responseStream << "\t\tbutton:disabled {\n";
responseStream << "\t\t\tcursor:default;\n";
responseStream << "\t\t}\n";
responseStream << "\t\t.visible-modal {\n";
responseStream << "\t\t\tbackground-color: rgba(0,0,0,0.4)\n";
responseStream << "\t\t}\n";
responseStream << "\t\t</style>\n";
responseStream << "\t <div class=\"\">\n";
responseStream << "\t\t <div class=\"item-wrapper\">\n";
responseStream << "\t\t\t<div class=\"row mb-3\">\n";
responseStream << "\t\t\t <div class=\"col-md-10 mx-auto\">\n";
responseStream << "\t\t\t\t<form method=\"POST\" action=\"";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/passphrase\">\n";
responseStream << "\t\t\t\t <div class=\"form-group row showcase_row_area\">\n";
responseStream << "\t\t\t\t\t<form method=\"POST\" action=\"";
#line 194 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/passphrase\">\n";
responseStream << "\t\t\t\t\t\t<div class=\"col-md-12 col-lg-12 \">\n";
responseStream << "\t\t\t\t\t\t <div class=\"alert\">\n";
responseStream << "\t\t\t\t\t\t\t<h5 class=\"alert-heading\">";
#line 197 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Was zu tun ist:") );
responseStream << "</h5>\n";
responseStream << "\t\t\t\t\t\t\t<p>";
#line 198 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Hast du dir deine Passphrase gemerkt?") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t\t\t\t<p>";
#line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Dann zeig es mir. Zur Unterstützung gebe ich dir deine Wörter aber in anderer Reihenfolge.") );
responseStream << "<p>\n";
responseStream << "\t\t\t\t\t\t\t<p>";
#line 200 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Klicke sie an um sie einzusetzen.") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t\t\t\t<p>";
#line 201 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Überprüfe dabei, ob du alle Wörter richtig geschrieben hast!") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t\t\t </div>\n";
responseStream << "\t\t\t\t\t\t <div id=\"gradido-mithril-passphrase\"></div>\n";
responseStream << "\t\t\t\t\t\t <noscript>\n";
responseStream << "\t\t\t\t\t\t\t<p>";
#line 205 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Weil du kein Javascript verwendest geht es direkt weiter. Hast du dir deine Passphrase gemerkt oder aufgeschrieben?") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t\t\t\t<input type=\"submit\" class=\"btn btn-sm btn-primary pull-right\" name=\"btnChecked\" value=\"";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Ja") );
responseStream << "\"/>\n";
responseStream << "\t\t\t\t\t\t </noscript>\n";
responseStream << "\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t</form>\n";
responseStream << "\t\t\t\t </div>\n";
responseStream << "\t\t\t\t</form>\n";
responseStream << "\t\t\t </div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t </div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<script type=\"text/javascript\">\n";
responseStream << "\t\t\tvar mnemonicWords = ";
#line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
wordSource->getSortedWordList().stringify(responseStream); responseStream << ";\n";
responseStream << "\t\t\tvar passphrase = \"";
#line 218 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( mSession->getPassphrase()->getString() );
responseStream << "\";\n";
responseStream << "\t\t\tlanguage = \"";
#line 219 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( lm->keyForLanguage(lang) );
responseStream << "\";\n";
responseStream << "\t\t</script>\n";
responseStream << "\t\t<script src=\"";
#line 221 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "js/ensurePassphrase.min.js\" type=\"text/javascript\"></script>\n";
responseStream << "\t ";
#line 222 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} else if(state == PAGE_ASK_PASSPHRASE) { responseStream << "\n";
responseStream << "\t <style type=\"text/css\">\n";
responseStream << "\t\t.hidden-on-load {\n";
responseStream << "\t\t\tdisplay:none;\n";
responseStream << "\t\t}\n";
responseStream << "\t </style>\n";
responseStream << "\t <noscript>\n";
responseStream << "\t\t <script type=\"text/css\">\n";
responseStream << "\t\t\t.hidden-on-load {\n";
responseStream << "\t\t\t\tdisplay:block;\n";
responseStream << "\t\t\t}\n";
responseStream << "\t\t </script>\n";
responseStream << "\t </noscript>\n";
responseStream << " <script type=\"text/javascript\">\n";
responseStream << "\t\tfunction showHidePassphraseCointainer(the) {\n";
responseStream << "\t\t\tvar passphraseContainer = document.getElementById('passphrase-existing-container');\n";
responseStream << "\t\t\t//console.log(the.value);\n";
responseStream << "\t\t\tif(the.value === 'no') {\n";
responseStream << "\t\t\t\tpassphraseContainer.classList.remove('hidden-on-load');\n";
responseStream << "\t\t\t} else if(the.value === 'yes') {\n";
responseStream << "\t\t\t\tpassphraseContainer.classList.add('hidden-on-load');\n";
responseStream << "\t\t\t}\n";
responseStream << "\t\t\t//passphrase-existing-container\n";
responseStream << "\t\t\t//var radioNewOn = document.getElementById('passphrase-new-no');\n";
responseStream << "\t\t}\n";
responseStream << "\t </script>\n";
responseStream << "\t <div class=\"col-md-10 mx-auto\">\n";
responseStream << "\t\t<div class=\"form-group row showcase_row_area\">\n";
responseStream << "\t\t <div class=\"col-md-12 col-lg-12 \">\n";
responseStream << "\t\t\t<div class=\"col-lg-12 col-md-12 mx-auto alert alert-primary\" style=\"text-align:center\">\n";
responseStream << "\t\t\t <p>";
#line 252 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Deine E-Mail Adresse wurde erfolgreich bestätigt.") );
responseStream << "</p>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 254 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/passphrase\">\n";
responseStream << "\t\t\t\t<div class=\"alert\">\n";
responseStream << "\t\t\t\t <h5 class=\"alert-heading\">";
#line 256 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Neue Gradido Adresse anlegen / wiederherstellen") );
responseStream << "</h5>\n";
responseStream << "\t\t\t\t <p>";
#line 257 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Möchtest du ein neues Gradido-Konto anlegen oder ein bestehendes wiederherstellen?") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t \n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t\t<div class=\"col-md-9\">\n";
responseStream << "\t\t\t\t\t\t<div class=\"form-group\">\n";
responseStream << "\t\t\t\t\t\t\t<div class=\"radio\">\n";
responseStream << "\t\t\t\t\t\t\t\t<label for=\"passphrase-new-yes\" class=\"radio-label mr-4\">\n";
responseStream << "\t\t\t\t\t\t\t\t\t<input id=\"passphrase-new-yes\" name=\"passphrase\" type=\"radio\" value=\"yes\" onchange=\"showHidePassphraseCointainer(this);\" checked/>\n";
responseStream << "\t\t\t\t\t\t\t\t\t";
#line 266 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Neues Konto anlegen") );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t\t\t<i class=\"input-frame\"></i>\n";
responseStream << "\t\t\t\t\t\t\t\t</label>\n";
responseStream << "\t\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t\t\t<div class=\"radio\">\n";
responseStream << "\t\t\t\t\t\t\t\t<label for=\"passphrase-new-no\" class=\"radio-label mr-4\">\n";
responseStream << "\t\t\t\t\t\t\t\t\t<input id=\"passphrase-new-no\" name=\"passphrase\" type=\"radio\" value=\"no\" onchange=\"showHidePassphraseCointainer(this);\"/>\n";
responseStream << "\t\t\t\t\t\t\t\t\t";
#line 273 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Bestehendes Konto wiederherstellen") );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t\t\t<i class=\"input-frame\"></i>\n";
responseStream << "\t\t\t\t\t\t\t\t</label>\n";
responseStream << "\t\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t\t<div id=\"passphrase-existing-container\" class=\"hidden-on-load\">\n";
responseStream << "\t\t\t\t\t\t\t<label for=\"passphrase-existing\">\n";
responseStream << "\t\t\t\t\t\t\t\t";
#line 280 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Falls du ein bestehendes Konto wiederherstellen willst, gib hier deine Passphrase ein:") );
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t\t<i class=\"input-frame\"></i>\n";
responseStream << "\t\t\t\t\t\t\t</label>\n";
responseStream << "\t\t\t\t\t\t\t<textarea id=\"passphrase-existing\" class=\"form-control\" name=\"passphrase-existing\" cols=\"12\" rows=\"5\">";
#line 283 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( !form.empty() ? form.get("passphrase-existing", "") : "" );
responseStream << "</textarea>\n";
responseStream << "\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-sm btn-primary pull-right\" name=\"submit\">";
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Weiter") );
responseStream << "</button>\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t </div>\n";
responseStream << "\t\t <!--<a href=\"";
#line 290 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/passphrase\" class=\"btn btn-sm btn-primary pull-right\" name=\"next\">";
#line 290 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Weiter") );
responseStream << "</a>-->\n";
responseStream << "\t\t</div>\n";
responseStream << "\t </div>\n";
responseStream << "\t ";
#line 293 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} else if(state == PAGE_FORCE_ASK_PASSPHRASE) { responseStream << "\n";
responseStream << "\t <div class=\"col-md-10 mx-auto\">\n";
responseStream << "\t\t<div class=\"form-group row showcase_row_area\">\n";
responseStream << "\t\t <div class=\"col-md-12 col-lg-12 \">\n";
responseStream << "\t\t\t<h5 class=\"alert-heading\">";
#line 297 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Konto wiederherstellen / Neues Passwort anlegen") );
responseStream << "</h5>\n";
responseStream << "\t\t\t<div class=\"col-lg-12 col-md-12 mx-auto alert alert-primary\" style=\"text-align:center\">\n";
responseStream << "\t\t\t <p>";
#line 299 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Um dein Konto wiederherzustellen und dir ein Neues Passwort auswählen zu können, tippe hier bitte die Wörter deiner Passphrase in der richtigen Reihenfolge ein, welche du dir aufgeschrieben hast.") );
responseStream << "</p>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 301 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/passphrase\">\n";
responseStream << "\t\t\t\t<textarea class=\"form-control\" name=\"passphrase-existing\" cols=\"12\" rows=\"5\">";
#line 302 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( !form.empty() ? form.get("passphrase-existing", "") : "" );
responseStream << "</textarea>\n";
responseStream << "\t\t\t\t<button type=\"submit\" class=\"btn btn-sm btn-primary pull-right\" name=\"submit\">";
#line 303 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Weiter") );
responseStream << "</button>\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t </div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t </div>\n";
responseStream << "\t ";
#line 308 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t<div class=\"col-md-10 mx-auto\">\n";
responseStream << "\t\t\t<div class=\"form-group row showcase_row_area\">\n";
responseStream << "\t\t\t <div class=\"col-md-12 col-lg-12 \">\n";
responseStream << "\t\t\t\t<div class=\"col-lg-8 col-md-10 mx-auto alert alert-danger\" style=\"text-align:center\">\n";
responseStream << "\t\t\t\t <h5 class=\"alert-heading\">";
#line 313 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Fehler") );
responseStream << "</h5>\n";
responseStream << "\t\t\t\t <p>";
#line 314 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
responseStream << ( gettext("Ungültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende dich an den Server-Admin.") );
responseStream << "</p>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t </div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t ";
#line 319 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\passphrase.cpsp"
} responseStream << "\n";
responseStream << "\t</div>\n";
responseStream << "</div>\n";
// begin include footer_ripple.cpsp
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << " <!-- content viewport ends -->\n";
responseStream << " <!-- partial:partials/_footer.html -->\n";
responseStream << " <footer class=\"footer\">\n";
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 << "\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";
responseStream << " <small class=\"text-muted d-block\">Copyright © 2020 Gradido</small>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " </footer>\n";
responseStream << " <!-- partial -->\n";
responseStream << " </div>\n";
responseStream << " <!-- page content ends -->\n";
responseStream << " </div>\n";
responseStream << " <div class=\"grd-time-used dev-info\">\n";
responseStream << " ";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer_ripple.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <!--page body ends -->\n";
responseStream << " <!-- SCRIPT LOADING START FORM HERE /////////////-->\n";
responseStream << " <!-- plugins:js -->\n";
responseStream << " <!--<script src=\"../../../assets/vendors/js/core.js\"></script>-->\n";
responseStream << " <!--<script src=\"../../../assets/vendors/js/vendor.addons.js\"></script>-->\n";
responseStream << " <!-- endinject -->\n";
responseStream << " <!-- Vendor Js For This Page Ends-->\n";
responseStream << " <!--<script src=\"../../../assets/vendors/chartjs/Chart.min.js\"></script>-->\n";
responseStream << " <!-- Vendor Js For This Page Ends-->\n";
responseStream << " <!-- build:js -->\n";
responseStream << " <!--<script src=\"../../../assets/js/template.js\"></script>-->\n";
responseStream << " <script src=\"";
#line 36 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer_ripple.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/basic.js\"></script>\n";
responseStream << " <!--<script src=\"../../../assets/js/dashboard.js\"></script>-->\n";
responseStream << " <!-- endbuild -->\n";
responseStream << " </body>\n";
responseStream << "</html>\n";
responseStream << " ";
// end include footer_ripple.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef PassphrasePage_INCLUDED
#define PassphrasePage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class PassphrasePage: public SessionHTTPRequestHandler
{
public:
PassphrasePage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // PassphrasePage_INCLUDED

View File

@ -1,298 +0,0 @@
#include "PassphrasedTransaction.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
#include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/SessionManager.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
#include "Poco/JSON/Object.h"
#include "Poco/JSON/Parser.h"
#include "Poco/Net/HTTPSClientSession.h"
#include "Poco/Net/HTTPRequest.h"
#include "Poco/Net/HTTPResponse.h"
enum PageState {
PAGE_STATE_INPUT,
PAGE_STATE_SUCCESS
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
void PassphrasedTransaction::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 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
std::string pageName = "Gradidos mit Passphrase überweisen";
PageState state = PAGE_STATE_INPUT;
Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES];
auto sm = SessionManager::getInstance();
auto mm = MemoryManager::getInstance();
std::string errorString ="";
if(!form.empty()) {
auto passphrase = form.get("passphrase", "");
auto passphrase_obj = Passphrase::create(passphrase, wordSource);
bool keysGenerated = false;
KeyPairEd25519* keys = nullptr;
if(!passphrase_obj.isNull()) {
addError(new Error("Passphrase", "Fehler beim validieren der Passphrase"));
}
else {
keys = KeyPairEd25519::create(passphrase_obj);
if(!keys)
{
addError(new Error("Passphrase", "Konnte keine Keys aus der Passphrase generieren"));
}
}
if(keys)
{
// create session only for transaction
int session_id = 0;
auto session = sm->getNewSession(&session_id);
// create payload
Poco::JSON::Object requestJson;
Poco::JSON::Object pubkeys;
pubkeys.set("sender", keys->getPublicKeyHex());
pubkeys.set("receiver", form.get("recevier", ""));
requestJson.set("method", "moveTransaction");
requestJson.set("pubkeys", pubkeys);
requestJson.set("memo", form.get("memo", ""));
requestJson.set("session_id", session_id);
printf("[PassphrasedTransaction] prepare request\n");
// send to php server
Poco::Net::HTTPSClientSession httpsClientSession(ServerConfig::g_php_serverHost, 443);
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/JsonRequestHandler");
request.setChunkedTransferEncoding(true);
std::ostream& requestStream = httpsClientSession.sendRequest(request);
requestJson.stringify(requestStream);
Poco::Net::HTTPResponse response;
std::istream& request_stream = httpsClientSession.receiveResponse(response);
std::stringstream responseStringStream;
for (std::string line; std::getline(request_stream, line); ) {
responseStringStream << line << std::endl;
}
// extract parameter from request
Poco::JSON::Parser jsonParser;
Poco::Dynamic::Var parsedJson;
printf("[PassphrasedTransaction] parse request result\n");
try {
parsedJson = jsonParser.parse(responseStringStream);
Poco::JSON::Object object = *parsedJson.extract<Poco::JSON::Object::Ptr>();
auto jsonState = object.get("state");
std::string stateString = jsonState.convert<std::string>();
if (stateString == "error") {
addError(new Error("Transfer", "php server return error"));
if (!object.isNull("msg")) {
addError(new ParamError("php server", "msg:", object.get("msg").convert<std::string>().data()));
}
if (!object.isNull("details")) {
addError(new ParamError("php server", "details:", object.get("details").convert<std::string>().data()));
}
} else if(stateString == "success") {
printf("[PassphrasedTransaction] request success, wait on transaction ready\n");
auto currentActiveTransaction = session->getNextReadyTransaction();
while(currentActiveTransaction.isNull()) {
Poco::Thread::sleep(10);
currentActiveTransaction = session->getNextReadyTransaction();
}
auto transaction_body = currentActiveTransaction->getTransactionBody();
if(transaction_body.isNull() || !transaction_body->isTransfer()) {
addError(new Error("Transaction", "Falsche Transaktion, bitte erst alle anderen Transaktionen abschließen und dann Seite neuladen"));
} else {
//auto signing = new SigningTransaction(currentActiveTransaction, user);
printf("[PassphrasedTransaction] cannot sign, implementation missing\n");
/*if(!signing->run()) {
} else {
addError(new Error("Transaction", "Fehler beim signieren, bitter erneut versuchen"));
}*/
// remove transaction from list
//mSession->finalizeTransaction(true, true);
}
}
}
catch (Poco::Exception& ex) {
//printf("[JsonRequestHandler::handleRequest] Exception: %s\n", ex.displayText().data());
addError(new ParamError("Transfer", "Fehler beim erstellen der Transaktion, bitte erneut versuchen", ex.displayText().data()));
errorString = responseStringStream.str();
sm->releaseSession(session);
session = nullptr;
}
if(session) {
sm->releaseSession(session);
}
delete keys;
keys = nullptr;
}
}
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
if("" == errorString) { responseStream << "\n";
responseStream << "\t";
#line 140 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
responseStream << ( errorString );
responseStream << "\n";
#line 141 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
} responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t";
#line 143 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t";
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
if(PAGE_STATE_INPUT == state) { responseStream << "\n";
responseStream << "\t\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<p><label style=\"width:auto\" for=\"passphrase\">Sender Passphrase</label></p>\n";
responseStream << "\t\t\t<p><textarea style=\"width:100%;height:100px\" name=\"passphrase\">";
#line 149 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
responseStream << ( !form.empty() ? form.get("passphrase", "") : "" );
responseStream << "</textarea></p>\n";
responseStream << "\t\t\t<p><label style=\"width:auto\" for=\"memo-text\">Verwendungszweck für Überweisung:</label></p>\n";
responseStream << "\t\t\t<p><textarea name=\"memo\" id=\"memo-text\" rows=\"4\">";
#line 151 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
responseStream << ( !form.empty() ? form.get("memo-text", "") : "" );
responseStream << "</textarea></p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"recevier\">Empfänger Public Key Hex</label>\n";
responseStream << "\t\t\t\t<input id=\"recevier\" type=\"recevier\" recevier=\"email\" value=\"";
#line 154 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
responseStream << ( !form.empty() ? form.get("recevier") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<p><input type=\"submit\" style=\"width:auto\" name=\"transfer\" value=\"Guthaben auf neue Adresse &uuml;berweisen!\"></p>\n";
responseStream << "\t\t</form>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t";
#line 159 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
} else if(PAGE_STATE_SUCCESS == state) { responseStream << "\n";
responseStream << "\t\t<p>Gradidos wurden erfolgreich überwiesen.</p>\n";
responseStream << "\t\t<a href=\"";
#line 161 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/passphrased_transaction\">Weitere Gradidos überweisen</a>\n";
responseStream << "\t";
#line 162 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\PassphrasedTransaction.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,164 +0,0 @@
<%@ page class="PassphrasedTransaction" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%!
#include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/SessionManager.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
#include "Poco/JSON/Object.h"
#include "Poco/JSON/Parser.h"
#include "Poco/Net/HTTPSClientSession.h"
#include "Poco/Net/HTTPRequest.h"
#include "Poco/Net/HTTPResponse.h"
enum PageState {
PAGE_STATE_INPUT,
PAGE_STATE_SUCCESS
};
%>
<%%
std::string pageName = "Gradidos mit Passphrase überweisen";
PageState state = PAGE_STATE_INPUT;
Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES];
auto sm = SessionManager::getInstance();
auto mm = MemoryManager::getInstance();
std::string errorString ="";
if(!form.empty()) {
auto passphrase = form.get("passphrase", "");
auto passphrase_obj = Passphrase::create(passphrase, wordSource);
bool keysGenerated = false;
KeyPairEd25519* keys = nullptr;
if(!passphrase_obj.isNull()) {
addError(new Error("Passphrase", "Fehler beim validieren der Passphrase"));
}
else {
keys = KeyPairEd25519::create(passphrase_obj);
if(!keys)
{
addError(new Error("Passphrase", "Konnte keine Keys aus der Passphrase generieren"));
}
}
if(keys)
{
// create session only for transaction
int session_id = 0;
auto session = sm->getNewSession(&session_id);
// create payload
Poco::JSON::Object requestJson;
Poco::JSON::Object pubkeys;
pubkeys.set("sender", keys->getPublicKeyHex());
pubkeys.set("receiver", form.get("recevier", ""));
requestJson.set("method", "moveTransaction");
requestJson.set("pubkeys", pubkeys);
requestJson.set("memo", form.get("memo", ""));
requestJson.set("session_id", session_id);
printf("[PassphrasedTransaction] prepare request\n");
// send to php server
Poco::Net::HTTPSClientSession httpsClientSession(ServerConfig::g_php_serverHost, 443);
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/JsonRequestHandler");
request.setChunkedTransferEncoding(true);
std::ostream& requestStream = httpsClientSession.sendRequest(request);
requestJson.stringify(requestStream);
Poco::Net::HTTPResponse response;
std::istream& request_stream = httpsClientSession.receiveResponse(response);
std::stringstream responseStringStream;
for (std::string line; std::getline(request_stream, line); ) {
responseStringStream << line << std::endl;
}
// extract parameter from request
Poco::JSON::Parser jsonParser;
Poco::Dynamic::Var parsedJson;
printf("[PassphrasedTransaction] parse request result\n");
try {
parsedJson = jsonParser.parse(responseStringStream);
Poco::JSON::Object object = *parsedJson.extract<Poco::JSON::Object::Ptr>();
auto jsonState = object.get("state");
std::string stateString = jsonState.convert<std::string>();
if (stateString == "error") {
addError(new Error("Transfer", "php server return error"));
if (!object.isNull("msg")) {
addError(new ParamError("php server", "msg:", object.get("msg").convert<std::string>().data()));
}
if (!object.isNull("details")) {
addError(new ParamError("php server", "details:", object.get("details").convert<std::string>().data()));
}
} else if(stateString == "success") {
printf("[PassphrasedTransaction] request success, wait on transaction ready\n");
auto currentActiveTransaction = session->getNextReadyTransaction();
while(currentActiveTransaction.isNull()) {
Poco::Thread::sleep(10);
currentActiveTransaction = session->getNextReadyTransaction();
}
auto transaction_body = currentActiveTransaction->getTransactionBody();
if(transaction_body.isNull() || !transaction_body->isTransfer()) {
addError(new Error("Transaction", "Falsche Transaktion, bitte erst alle anderen Transaktionen abschließen und dann Seite neuladen"));
} else {
//auto signing = new SigningTransaction(currentActiveTransaction, user);
printf("[PassphrasedTransaction] cannot sign, implementation missing\n");
/*if(!signing->run()) {
} else {
addError(new Error("Transaction", "Fehler beim signieren, bitter erneut versuchen"));
}*/
// remove transaction from list
//mSession->finalizeTransaction(true, true);
}
}
}
catch (Poco::Exception& ex) {
//printf("[JsonRequestHandler::handleRequest] Exception: %s\n", ex.displayText().data());
addError(new ParamError("Transfer", "Fehler beim erstellen der Transaktion, bitte erneut versuchen", ex.displayText().data()));
errorString = responseStringStream.str();
sm->releaseSession(session);
session = nullptr;
}
if(session) {
sm->releaseSession(session);
}
delete keys;
keys = nullptr;
}
}
%><%@ include file="header_old.cpsp" %>
<% if("" == errorString) { %>
<%= errorString %>
<% } %>
<div class="grd_container">
<%= getErrorsHtml() %>
<% if(PAGE_STATE_INPUT == state) { %>
<fieldset class="grd_container_small">
<form method="POST">
<p><label style="width:auto" for="passphrase">Sender Passphrase</label></p>
<p><textarea style="width:100%;height:100px" name="passphrase"><%= !form.empty() ? form.get("passphrase", "") : "" %></textarea></p>
<p><label style="width:auto" for="memo-text">Verwendungszweck für Überweisung:</label></p>
<p><textarea name="memo" id="memo-text" rows="4"><%= !form.empty() ? form.get("memo-text", "") : "" %></textarea></p>
<p class="grd_small">
<label for="recevier">Empfänger Public Key Hex</label>
<input id="recevier" type="recevier" recevier="email" value="<%= !form.empty() ? form.get("recevier") : "" %>"/>
</p>
<p><input type="submit" style="width:auto" name="transfer" value="Guthaben auf neue Adresse &uuml;berweisen!"></p>
</form>
</fieldset>
<% } else if(PAGE_STATE_SUCCESS == state) { %>
<p>Gradidos wurden erfolgreich überwiesen.</p>
<a href="<%= ServerConfig::g_serverPath %>/passphrased_transaction">Weitere Gradidos überweisen</a>
<% } %>
</div>
<%@ include file="footer.cpsp" %>

View File

@ -1,18 +0,0 @@
#ifndef PassphrasedTransaction_INCLUDED
#define PassphrasedTransaction_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "PageRequestMessagedHandler.h"
class PassphrasedTransaction: public PageRequestMessagedHandler
{
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // PassphrasedTransaction_INCLUDED

View File

@ -1,236 +0,0 @@
#include "RegisterAdminPage.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\\registerAdmin.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "../controller/Group.h"
#include "../lib/DataTypeConverter.h"
#include "Poco/Net/HTTPCookie.h"
#include "../ServerConfig.h"
#line 1 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
RegisterAdminPage::RegisterAdminPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void RegisterAdminPage::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 18 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
const char* pageName = "Admin Registrieren";
auto sm = SessionManager::getInstance();
bool userReturned = false;
if(!form.empty()) {
auto group_id_string = form.get("register-group", "0");
int group_id = 0;
if(!sm->isValid(group_id_string, VALIDATE_ONLY_INTEGER)) {
addError(new Error("Group id", "group_id not integer"));
} else {
if(DataTypeConverter::strToInt(group_id_string, group_id) != DataTypeConverter::NUMBER_PARSE_OKAY) {
addError(new Error("Int Convert Error", "Error converting group_id to int"));
}
}
if(!errorCount()) {
userReturned = mSession->adminCreateUser(
form.get("register-first-name", ""),
form.get("register-last-name", ""),
form.get("register-email", ""),
group_id,
getBaseUrl()
);
getErrors(mSession);
}
}
auto groups = controller::Group::listAll();
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Einen neuen Account anlegen</h1>\n";
responseStream << "\t";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t";
#line 54 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
if(!form.empty() && userReturned) { responseStream << "\n";
responseStream << "\t\t<div class=\"grd_text-max-width\">\n";
responseStream << "\t\t\t<div class=\"grd_text\">\n";
responseStream << "\t\t\t\tDie Anmeldung wird verarbeitet und es wird dem Benutzer eine Aktivierungs-E-Mail zugeschickt. \n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<a href=\"";
#line 60 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( ServerConfig::g_php_serverHost );
responseStream << "\">Zur&uuml;ck</a>\n";
responseStream << "\t";
#line 61 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
} else { responseStream << "\n";
responseStream << "\t<form method=\"POST\">\n";
responseStream << "\t\t\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
responseStream << "\t\t\t<legend>Account anlegen</legend>\n";
responseStream << "\t\t\t<p>Bitte gebe die Benutzer-Daten ein um einen Account anzulegen</p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"register-first-name\">Vorname</label>\n";
responseStream << "\t\t\t\t<input id=\"register-first-name\" type=\"text\" name=\"register-first-name\" value=\"";
#line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( !form.empty() ? form.get("register-first-name") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"register-last-name\">Nachname</label>\n";
responseStream << "\t\t\t\t<input id=\"register-last-name\" type=\"text\" name=\"register-last-name\" value=\"";
#line 73 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( !form.empty() ? form.get("register-last-name") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<label for=\"register-email\">E-Mail</label>\n";
responseStream << "\t\t\t\t<input id=\"register-email\" type=\"email\" name=\"register-email\" value=\"";
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( !form.empty() ? form.get("register-email") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<select class=\"form-control\" name=\"register-group\">\n";
responseStream << "\t\t\t\t";
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t\t<option title=\"";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( group_model->getDescription() );
responseStream << "\" value=\"";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( group_model->getID() );
responseStream << "\">";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t";
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t</select>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Anmelden\">\n";
responseStream << "\t\t\n";
responseStream << "\t</form>\n";
responseStream << "\t";
#line 89 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerAdmin.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef RegisterAdminPage_INCLUDED
#define RegisterAdminPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class RegisterAdminPage: public SessionHTTPRequestHandler
{
public:
RegisterAdminPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // RegisterAdminPage_INCLUDED

View File

@ -1,211 +0,0 @@
#include "RegisterDirectPage.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\registerDirect.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "../controller/Group.h"
#include "../lib/DataTypeConverter.h"
#include "Poco/Net/HTTPCookie.h"
#line 1 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
void RegisterDirectPage::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 13 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\registerDirect.cpsp"
const char* pageName = "Registrieren";
auto sm = SessionManager::getInstance();
bool userReturned = false;
std::string caller_uri;
if(!form.empty()) {
caller_uri = form.get("caller_uri", "");
if(form.get("register-password2", "") != form.get("register-password", "")) {
addError(new Error("Passwort", "Passw&ouml;rter sind nicht identisch."), false);
} else {
auto session = sm->getSession(request);
if(!session) {
session = sm->getNewSession();
auto user_host = request.clientAddress().host();
session->setClientIp(user_host);
session->setCallerUri(caller_uri);
response.addCookie(session->getLoginCookie());
}
printf("caller uri after session: %s\n", caller_uri.data());
auto email = form.get("register-email", "");
auto password = form.get("register-password", "");
if(email != "" && password != "") {
userReturned = session->createUserDirect(
form.get("register-first-name", ""),
form.get("register-last-name", ""),
email,
password,
getBaseUrl()
);
}
getErrors(session);
if(!errorCount() && userReturned) {
auto user_host = request.clientAddress().host();
session->setClientIp(user_host);
response.addCookie(session->getLoginCookie());
if(caller_uri == "") {
caller_uri = session->getCallerUri();
}
if(caller_uri != "") {
std::string redirect_url = caller_uri;
redirect_url += "?session_id=" + std::to_string(session->getHandle());
response.redirect(redirect_url);
return;
}
auto user = session->getNewUser();
if(user->getModel()->getGroupId() == 0) {
response.redirect(getBaseUrl() + "/userUpdateGroup");
} else {
response.redirect(user->getGroupBaseUrl());
}
return;
}
}
} else {
// on enter login page with empty form
// remove old cookies if exist
sm->deleteLoginCookies(request, response);
}
#line 3 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
#line 82 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\registerDirect.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<div class=\"center-form-title\">\n";
responseStream << "\t <h1>Einen neuen Account anlegen</h1>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div class=\"center-form-form\">\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<p>Bitte gib deine Daten um einen Account anzulegen:</p>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-first-name\">Vorname</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-first-name\" type=\"text\" name=\"register-first-name\" value=\"";
#line 91 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\registerDirect.cpsp"
responseStream << ( !form.empty() ? form.get("register-first-name", "") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-last-name\">Nachname</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-last-name\" type=\"text\" name=\"register-last-name\" value=\"";
#line 93 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\registerDirect.cpsp"
responseStream << ( !form.empty() ? form.get("register-last-name", "") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-email\">E-Mail</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-email\" type=\"email\" name=\"register-email\" value=\"";
#line 95 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\registerDirect.cpsp"
responseStream << ( !form.empty() ? form.get("register-email", "") : "" );
responseStream << "\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-password\">Passwort</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-password\" type=\"password\" name=\"register-password\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-password\">Passwort Best&auml;tigung</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-password2\" type=\"password\" name=\"register-password2\"/>\n";
responseStream << "\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"Anmelden\">\n";
responseStream << "\t</form>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,18 +0,0 @@
#ifndef RegisterDirectPage_INCLUDED
#define RegisterDirectPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "PageRequestMessagedHandler.h"
class RegisterDirectPage: public PageRequestMessagedHandler
{
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // RegisterDirectPage_INCLUDED

View File

@ -1,365 +0,0 @@
#include "RepairDefectPassphrase.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\\repairDefectPassphrase.cpsp"
#include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/EmailManager.h"
#include "../Crypto/Passphrase.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../lib/DataTypeConverter.h"
#include "../controller/UserBackup.h"
#include "../tasks/SigningTransaction.h"
#include "../ServerConfig.h"
#include "Poco/JSON/Object.h"
#include "Poco/JSON/Parser.h"
#include "Poco/Net/HTTPSClientSession.h"
#include "Poco/Net/HTTPRequest.h"
#include "Poco/Net/HTTPResponse.h"
#include <memory>
enum PageState
{
GENERATE_PASSPHRASE,
SHOW_PASSPHRASE,
CREATE_TRANSACTION,
CHECK_TRANSACTION,
FINISH
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
RepairDefectPassphrase::RepairDefectPassphrase(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void RepairDefectPassphrase::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 35 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
auto mm = MemoryManager::getInstance();
auto em = EmailManager::getInstance();
auto new_user = mSession->getNewUser();
auto user_model = new_user->getModel();
auto adminEmail = em->getAdminReceiver();
Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES];
std::string pageName = "Repariere Defekte Passphrase";
std::string errorString = "";
PageState state = GENERATE_PASSPHRASE;
if(!form.empty())
{
printf("form not empty\n");
auto btn = form.get("generate", "");
auto btn2 = form.get("transfer", "");
printf("btn: %s\n", btn.data());
printf("btn2: %s\n", btn2.data());
if(btn == "Neue Passphrase generieren!")
{
auto passphrase = Passphrase::generate(wordSource);
if(!passphrase->checkIfValid())
{
addError(new Error("Passphrase", "Fehler beim generieren oder validieren der Passphrase, evt. erneut versuchen!"));
}
else
{
mSession->setPassphrase(passphrase);
auto newPassphraseModel = controller::UserBackup::create(
user_model->getID(),
passphrase->getString(),
ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES
);
auto result = newPassphraseModel->getModel()->insertIntoDB(false);
//state = SHOW_PASSPHRASE;
if(result) {
state = SHOW_PASSPHRASE;
} else {
addError(new Error("Speichern", "Fehler beim speichern der neuen Passphrase, evt. erneut versuchen!"));
}
}
}
else if("" != btn2)
{
auto passphrase = mSession->getPassphrase();
auto new_gradido_key_pair = std::unique_ptr<KeyPairEd25519>(KeyPairEd25519::create(passphrase));
if(passphrase.isNull() || !passphrase->checkIfValid()) {
addError(new Error("Passphrase", "Ungültige Passphrase, bitte neuladen"));
}
if(!new_gradido_key_pair) {
addError(new Error("Keys", "Konnte keine Keys erstellen, bitte neuladen"));
}
// create payload
Poco::JSON::Object requestJson;
Poco::JSON::Object pubkeys;
pubkeys.set("sender", user_model->getPublicKeyHex());
pubkeys.set("receiver", DataTypeConverter::pubkeyToHex(new_gradido_key_pair->getPublicKey()));
requestJson.set("method", "moveTransaction");
requestJson.set("pubkeys", pubkeys);
requestJson.set("memo", form.get("memo", ""));
requestJson.set("session_id", mSession->getHandle());
printf("[repairDefectPassphrase] prepare request\n");
// send to php server
Poco::Net::HTTPSClientSession httpsClientSession(ServerConfig::g_php_serverHost, 443);
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/JsonRequestHandler");
request.setChunkedTransferEncoding(true);
std::ostream& requestStream = httpsClientSession.sendRequest(request);
requestJson.stringify(requestStream);
Poco::Net::HTTPResponse response;
std::istream& request_stream = httpsClientSession.receiveResponse(response);
std::stringstream responseStringStream;
for (std::string line; std::getline(request_stream, line); ) {
responseStringStream << line << std::endl;
}
// extract parameter from request
Poco::JSON::Parser jsonParser;
Poco::Dynamic::Var parsedJson;
printf("[repairDefectPassphrase] parse request result\n");
try {
parsedJson = jsonParser.parse(responseStringStream);
Poco::JSON::Object object = *parsedJson.extract<Poco::JSON::Object::Ptr>();
auto jsonState = object.get("state");
std::string stateString = jsonState.convert<std::string>();
if (stateString == "error") {
addError(new Error("Transfer", "php server return error"));
if (!object.isNull("msg")) {
addError(new ParamError("php server", "msg:", object.get("msg").convert<std::string>().data()));
}
if (!object.isNull("details")) {
addError(new ParamError("php server", "details:", object.get("details").convert<std::string>().data()));
}
} else if(stateString == "success") {
printf("[repairDefectPassphrase] request success, wait on transaction ready\n");
auto currentActiveTransaction = mSession->getNextReadyTransaction();
while(currentActiveTransaction.isNull() || currentActiveTransaction->getTransactionBody().isNull()) {
Poco::Thread::sleep(10);
currentActiveTransaction = mSession->getNextReadyTransaction();
}
if(!currentActiveTransaction->getTransactionBody()->isTransfer()) {
addError(new Error("Transaction", "Falsche Transaktion, bitte erst alle anderen Transaktionen abschließen und dann Seite neuladen"));
} else {
auto signing = new SigningTransaction(currentActiveTransaction, new_user);
printf("[repairDefectPassphrase] before running sign\n");
if(!signing->run()) {
if(new_user->setGradidoKeyPair(new_gradido_key_pair.release()) != 1) {
addError(new Error("Neues Schl&uuml;sselpaar", "Neuer Private Key konnte nicht verschlüsselt werden!"));
} else {
if(user_model->updatePubkeyAndPrivkey() != 1) {
addError(new Error("Speichern", "Fehler beim speichern der neuen Keys in die Datenbank, bitte erneut versuchen (Seite neuladen)"));
} else {
//printf("[repairDefectPassphrase] set state to FINISH\n");
state = FINISH;
}
}
} else {
addError(new Error("Transaction", "Fehler beim signieren, bitter erneut versuchen"));
}
// remove transaction from list
mSession->finalizeTransaction(true, true);
}
}
}
catch (Poco::Exception& ex) {
//printf("[JsonRequestHandler::handleRequest] Exception: %s\n", ex.displayText().data());
addError(new ParamError("Transfer", "Fehler beim erstellen der Transaktion, bitte erneut versuchen", ex.displayText().data()));
errorString = responseStringStream.str();
}
//state = CREATE_TRANSACTION;
}
}
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
#line 184 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
if("" != errorString) { responseStream << "\n";
responseStream << "\t";
#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( errorString );
responseStream << "\n";
#line 186 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t";
#line 188 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t<h1>Konto reparieren</h1>\n";
responseStream << "\t<p>Der Login-Server hat festgestellt das die gespeicherte Passphrase nicht zu deinem Konto passt.</p>\n";
responseStream << "\t";
#line 191 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
if(GENERATE_PASSPHRASE == state) { responseStream << "\n";
responseStream << "\t\t";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
if(new_user->canDecryptPrivateKey()) { responseStream << "\n";
responseStream << "\t\t\t<p>Dein Privat Key konnte noch entschlüsselt werden. Es könnte also eine neue Passphrase generiert werden und dein aktueller Kontostand\n";
responseStream << "\t\t\tauf die neue Adresse transferiert werden. </p>\n";
responseStream << "\t\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t\t<input type=\"submit\" style=\"width:auto;\" name=\"generate\" value=\"Neue Passphrase generieren!\">\n";
responseStream << "\t\t\t</form>\n";
responseStream << "\t\t";
#line 198 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} else { responseStream << "\n";
responseStream << "\t\t\t<p>Dein Privat Key konnte nicht entschlüsselt werden. Bitte wende dich an den Admin: <a href=\"mailto:";
#line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( adminEmail);
responseStream << "\">";
#line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( adminEmail );
responseStream << "</a></p>\n";
responseStream << "\t\t";
#line 200 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} responseStream << "\n";
responseStream << "\t";
#line 201 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} else if(SHOW_PASSPHRASE == state) { responseStream << "\n";
responseStream << "\t\t<p>Deine neue Passphrase, bitte schreibe sie dir auf (am besten auf einen Zettel) und hebe sie gut auf. \n";
responseStream << "\t\tDu brauchst sie wenn du dein Passwort vergessen hast oder dein Konto umziehen möchtest:</p>\n";
responseStream << "\t\t<fieldset><legend>Deine neue Passphrase:</legend>\n";
responseStream << "\t\t\t<div class=\"grd_container_small grd_container\">\n";
responseStream << "\t\t\t\t";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( mSession->getPassphrase()->getString() );
responseStream << "\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<p><label style=\"width:auto\" for=\"memo-text\">Verwendungszweck für Überweisung:</label></p>\n";
responseStream << "\t\t\t<p><textarea name=\"memo\" id=\"memo-text\" rows=\"4\"></textarea></p>\n";
responseStream << "\t\t\t<p><input type=\"submit\" style=\"width:auto\" name=\"transfer\" value=\"Guthaben auf neue Adresse &uuml;berweisen!\"></p>\n";
responseStream << "\t\t</form>\n";
responseStream << "\t";
#line 214 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} else if(FINISH == state) { responseStream << "\n";
responseStream << "\t\t<p>Neue Daten erfolgreich gespeichert, bitte logge dich nun aus. Danach kannst du dich gerne wieder einloggen und müsstest dein Guthaben wieder auf deinem Konto haben.</p>\n";
responseStream << "\t\t<a class=\"grd-nav-bn\" href=\"";
#line 216 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( ServerConfig::g_serverPath + "/logout" );
responseStream << "\">Ausloggen</a>\n";
responseStream << "\t";
#line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef RepairDefectPassphrase_INCLUDED
#define RepairDefectPassphrase_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class RepairDefectPassphrase: public SessionHTTPRequestHandler
{
public:
RepairDefectPassphrase(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // RepairDefectPassphrase_INCLUDED

View File

@ -1,366 +0,0 @@
#include "ResetPassword.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
#include "../SingletonManager/LanguageManager.h"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/EmailManager.h"
#include "../controller/User.h"
#include "../controller/UserBackup.h"
enum PageState {
PAGE_EMAIL_ASK,
PAGE_ASK,
PAGE_WAIT_EMAIL,
PAGE_WAIT_ADMIN,
PAGE_EMAIL_ALREADY_SEND
};
#line 1 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
void ResetPassword::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 20 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
PageState state = PAGE_EMAIL_ASK;
auto lm = LanguageManager::getInstance();
auto sm = SessionManager::getInstance();
auto adminReceiver = EmailManager::getInstance()->getAdminReceiver();
const char* pageName = "Passwort vergessen";
auto lang = chooseLanguage(request);
// class="btn btn-outline-secondary flag-btn"
// class="btn btn-secondary disabled flag-btn" disabled
std::string eng_btn_classes = "";
std::string de_btn_classes = "";
auto langCatalog = lm->getFreeCatalog(lang);
std::string emailInputClass = "form-control";
std::string passphraseRadioClass = "group";
std::string email = "";
if(!form.empty()) {
auto session = sm->getNewSession();
email = form.get("email", "");
auto passphraseMemorized = form.get("passphrase_memorized", "");
auto user = controller::User::create();
auto ask = form.get("ask_passphrase", "");
if(email != "")
{
bool user_exist = false;
bool sendUserEmail = false;
if(!sm->isValid(email, VALIDATE_EMAIL)) {
addError(new Error(gettext(session, "E-Mail"), gettext(session, "Das ist keine g&uuml;ltige E-Mail Adresse")), false);
emailInputClass += " is-invalid";
}
user_exist = user->load(email) == 1;
if(ask == "true")
{
if(passphraseMemorized == "") {
addError(new Error(gettext(session, "Passphrase"), gettext(session, "Bitte w&auml;hle eine Option aus.")), false);
passphraseRadioClass += " group-is-invalid";
} else if(passphraseMemorized == "true") {
sendUserEmail = true;
}
}
else
{
if(user_exist && (!user->tryLoadPassphraseUserBackup() || !user->hasPublicKey())) {
sendUserEmail = true;
}
}
if(!errorCount())
{
// send reset password email
int result = 0;
if(user_exist) {
result = session->sendResetPasswordEmail(user, sendUserEmail, ServerConfig::g_serverPath + "/checkEmail");
}
if(2 == result) {
state = PAGE_EMAIL_ALREADY_SEND;
} else if(sendUserEmail) {
state = PAGE_WAIT_EMAIL;
} else {
state = PAGE_WAIT_ADMIN;
}
}
}
else
{
addError(new Error(gettext(session, "E-Mail"), gettext(session, "E-Mail Adresse nicht angegeben.")), false);
emailInputClass += " is-invalid";
}
}
#line 3 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
responseStream << " ";
#line 103 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t <div class=\"center-form-container\">\n";
responseStream << "\t <div class=\"center-form-title\">\n";
responseStream << "\t <h1>Passwort zurücksetzen</h1>\n";
responseStream << "\t </div>\n";
responseStream << " ";
#line 108 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
if(state == PAGE_EMAIL_ASK) { responseStream << "\n";
responseStream << " <div class=\"center-form-form\">\n";
responseStream << "\t\t\t\t<form action=\"";
#line 110 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/resetPassword\">\n";
responseStream << "\t\t\t\t\t<div class=\"item-wrapper\">\n";
responseStream << "\t\t\t\t\t <div class=\"form-group\">\n";
responseStream << "\t\t\t\t\t\t<label class=\"form-label\" for=\"email\">";
#line 113 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Gib bitte hier deine E-Mail Adresse an:") );
responseStream << "</label>\n";
responseStream << "\t\t\t\t\t\t<input class=\"form-control\" type=\"text\" class=\"";
#line 114 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( emailInputClass );
responseStream << "\" name=\"email\" id=\"email\" placeholder=\"E-Mail\" value=\"";
#line 114 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( email );
responseStream << "\">\n";
responseStream << "\t\t\t\t\t </div>\n";
responseStream << "\t\t\t\t\t <button type=\"submit\" class=\"center-form-submit form-button\" >";
#line 116 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Bestätigen") );
responseStream << "</button>\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t</form>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t";
#line 120 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
} else if(state == PAGE_ASK) { responseStream << "\n";
responseStream << " <div class=\"center-form-form\">\n";
responseStream << "\t\t\t\t";
// begin include flags.cpsp
responseStream << "<div class=\"center-form-selectors\">\n";
responseStream << "<form method=\"GET\" action=\"\">\n";
responseStream << "\t<button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 3 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_EN) { responseStream << "class=\"flag-btn\"";
#line 3 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 4 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-england\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "\t<button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 7 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_DE) { responseStream << "class=\"flag-btn\"";
#line 7 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 8 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-germany\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "</form>\n";
responseStream << "</div>";
// end include flags.cpsp
responseStream << "\n";
responseStream << "\t\t\t\t<form action=\"";
#line 123 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/resetPassword\">\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"email\">";
#line 124 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Gib bitte hier deine E-Mail Adresse an:") );
responseStream << "</label>\n";
responseStream << "\t\t\t\t\t<input class=\"form-control\" type=\"text\" class=\"";
#line 125 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( emailInputClass );
responseStream << "\" name=\"email\" id=\"email\" placeholder=\"E-Mail\" value=\"";
#line 125 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( email );
responseStream << "\">\n";
responseStream << "\t\t\t\t\t<label>";
#line 126 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Hast du dir deine Passphrase notiert oder gemerkt?") );
responseStream << "</label>\n";
responseStream << "\t\t\t\t\t<input class=\"form-control\" type=\"hidden\" name=\"ask_passphrase\" value=\"true\">\n";
responseStream << "\t\t\t\t\t<div class=\"";
#line 128 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( passphraseRadioClass );
responseStream << "\">\n";
responseStream << "\t\t\t\t\t\t<div class=\"radio\">\n";
responseStream << "\t\t\t\t\t\t <label class=\"form-label\" class=\"radio-label mr-4\">\n";
responseStream << "\t\t\t\t\t\t\t<input class=\"form-control\" name=\"passphrase_memorized\" onclick=\"removeGroupInvalidClass()\" type=\"radio\" value=\"true\">";
#line 131 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Ja") );
responseStream << " <i class=\"input-frame\"></i>\n";
responseStream << "\t\t\t\t\t\t </label>\n";
responseStream << "\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t\t<div class=\"radio\">\n";
responseStream << "\t\t\t\t\t\t <label class=\"form-label\" class=\"radio-label\">\n";
responseStream << "\t\t\t\t\t\t\t<input class=\"form-control\" name=\"passphrase_memorized\" onclick=\"removeGroupInvalidClass()\" type=\"radio\" value=\"false\">";
#line 136 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Nein") );
responseStream << " <i class=\"input-frame\"></i>\n";
responseStream << "\t\t\t\t\t\t </label>\n";
responseStream << "\t\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t\t <button type=\"submit\" class=\"center-form-submit form-button\" name=\"ask\" >";
#line 140 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Absenden") );
responseStream << "</button>\n";
responseStream << "\t\t\t\t\t</div>\n";
responseStream << "\t\t\t\t</form>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t ";
#line 144 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
} else if(state == PAGE_WAIT_EMAIL) { responseStream << "\n";
responseStream << "\t\t\t";
#line 145 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Dir wird eine E-Mail zugeschickt um dein Passwort zur&uuml;ckzusetzen.") );
responseStream << "\n";
responseStream << "\t ";
#line 146 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
} else if(state == PAGE_WAIT_ADMIN) { responseStream << "\n";
responseStream << "\t\t\t";
#line 147 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Der Admin hat eine E-Mail bekommen und wird sich bei dir melden.") );
responseStream << "\n";
responseStream << "\t ";
#line 148 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
} else if(state == PAGE_EMAIL_ALREADY_SEND) { responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 149 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-Verzeichnis nach. ") );
responseStream << "</p>\n";
responseStream << "\t\t\t<p>";
#line 150 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten gewartet?") );
responseStream << "</p>\n";
responseStream << "\t\t\t<p><b><a href=\"mailto:";
#line 151 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( adminReceiver );
responseStream << "?subject=Error Reset Password email&amp;body=Hallo Dario,%0D%0A%0D%0Aich habe keine Passwort zurücksetzen E-Mail erhalten,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
#line 151 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
responseStream << ( langCatalog->gettext("E-Mail an Support schicken"));
responseStream << "</a></b></p>\n";
responseStream << "\t ";
#line 152 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\resetPassword.cpsp"
} responseStream << "\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "\t<script type=\"text/javascript\">\n";
responseStream << "\t\tfunction removeGroupInvalidClass() {\n";
responseStream << "\t\t\tvar elements = document.getElementsByClassName(\"group-is-invalid\");\n";
responseStream << "\t\t\tif(elements.length > 0) {\n";
responseStream << "\t\t\t\telements[0].classList.remove(\"group-is-invalid\");\n";
responseStream << "\t\t\t}\n";
responseStream << "\t\t}\n";
responseStream << "\t</script>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,18 +0,0 @@
#ifndef ResetPassword_INCLUDED
#define ResetPassword_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "PageRequestMessagedHandler.h"
class ResetPassword: public PageRequestMessagedHandler
{
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // ResetPassword_INCLUDED

View File

@ -1,281 +0,0 @@
#include "SaveKeysPage.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\\saveKeys.cpsp"
#include "Poco/Net/HTTPServerParams.h"
enum PageState
{
PAGE_ASK,
PAGE_SHOW_PUBKEY,
PAGE_ERROR
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
#include "../ServerConfig.h"
SaveKeysPage::SaveKeysPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void SaveKeysPage::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 18 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
const char* pageName = "Daten auf Server speichern?";
bool hasErrors = mSession->errorCount() > 0;
// crypto key only in memory, if user has tipped in his passwort in this session
auto user = mSession->getNewUser();
bool hasPassword = user->getModel()->hasPrivateKeyEncrypted();
PageState state = PAGE_ASK;
auto uri_start = ServerConfig::g_php_serverPath;//request.serverParams().getServerName();
// skip asking user if he like to save keys and passphrase on server for now!
state = PAGE_SHOW_PUBKEY;
if(!mSession->generateKeys(true, true)) {
getErrors(mSession);
}
/*
if(!form.empty()) {
// privkey
auto savePrivkeyChoice = form.get("save-privkey");
bool savePrivkey = false;
if(savePrivkeyChoice == "yes") {
if(!hasPassword) {
// check pwd
auto pwd = form.get("save-privkey-password", "");
if(!mSession->isPwdValid(pwd)) {
addError(new Error("Passwort", "Das Passwort stimmt nicht. Bitte verwende dein Passwort von der Registrierung"), false);
hasErrors = true;
} else {
savePrivkey = true;
}
} else {
savePrivkey = true;
}
}
if(!hasErrors) {
auto savePassphraseChoice = form.get("save-passphrase");
bool savePassphrase = false;
if(savePassphraseChoice == "yes") {
savePassphrase = true;
}
if(!mSession->generateKeys(savePrivkey, savePassphrase)) {
hasErrors = true;
} else if(mSession->getSessionState() >= SESSION_STATE_KEY_PAIR_GENERATED) {
state = PAGE_SHOW_PUBKEY;
//printf("uri_start: %s\n", uri_start.data());
//response.redirect(uri_start + "/");
} else {
state = PAGE_ERROR;
}
}
//printf("SaveKeysPage: hasErrors: %d, session state: %d, target state: %d\n",
//hasErrors, mSession->getSessionState(), SESSION_STATE_KEY_PAIR_GENERATED);
}*/
getErrors(mSession);
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_old.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/css/styles.css\">\n";
responseStream << "<style type=\"text/css\" >\n";
responseStream << ".grd_container\n";
responseStream << "{\n";
responseStream << " max-width:820px;\n";
responseStream << " margin-left:auto;\n";
responseStream << " margin-right:auto;\n";
responseStream << "}\n";
responseStream << "\n";
responseStream << "input:not([type='radio']) {\n";
responseStream << "\twidth:200px;\n";
responseStream << "}\n";
responseStream << "label:not(.grd_radio_label) {\n";
responseStream << "\twidth:80px;\n";
responseStream << "\tdisplay:inline-block;\n";
responseStream << "}\n";
responseStream << ".grd_container_small\n";
responseStream << "{\n";
responseStream << " max-width:500px;\n";
responseStream << "}\n";
responseStream << ".grd_text {\n";
responseStream << " max-width:550px;\n";
responseStream << " margin-bottom: 5px;\n";
responseStream << "}\n";
responseStream << ".dev-info {\n";
responseStream << "\tposition: fixed;\n";
responseStream << "\tcolor:grey;\n";
responseStream << "\tfont-size: smaller;\n";
responseStream << "\tleft:8px;\n";
responseStream << "}\n";
responseStream << ".grd-time-used { \n";
responseStream << " bottom:0;\n";
responseStream << "} \n";
responseStream << "\n";
responseStream << ".versionstring {\n";
responseStream << "\ttop:0;\n";
responseStream << "}\n";
responseStream << "</style>\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha ";
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << "</div>\n";
// end include header_old.cpsp
responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Daten speichern</h1>\n";
responseStream << "\t";
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t";
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
if(state == PAGE_ASK) { responseStream << "\n";
responseStream << "\t<form method=\"POST\">\n";
responseStream << "\t\t<fieldset>\n";
responseStream << "\t\t\t<legend>Gradido Private Key speichern</legend>\n";
responseStream << "\t\t\t<div class=\"grd_text\">\n";
responseStream << "\t\t\t\t<p>M&ouml;chtest du deinen Gradido Private Key auf dem Server mit deinem Passwort verschl&uuml;sselt speichern?</p>\n";
responseStream << "\t\t\t\t<p>Wenn du ihn speicherst brauchst du dich in Zukunft nur mit deiner E-Mail und deinem Passwort einzuloggen.</p>\n";
responseStream << "\t\t\t\t<p>Wenn du ihn nicht speicherst, m&uuml;sstest du jedes mal wenn du eine Transaktion machen willst, deine Passphrase hier reinkopieren.</p>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<input id=\"save-privkey-yes\" type=\"radio\" name=\"save-privkey\" value=\"yes\" checked/>\n";
responseStream << "\t\t\t\t<label class=\"grd_radio_label\" for=\"save-privkey-yes\">Ja, bitte speichern!</label>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t";
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
if(!hasPassword) { responseStream << "\n";
responseStream << "\t\t\t\t<p>Ich brauche nochmal dein Passwort wenn du dich für ja entscheidest.</p>\n";
responseStream << "\t\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t\t<label for=\"save-privkey-password\">Passwort</label>\n";
responseStream << "\t\t\t\t\t<input id=\"save-privkey-password\" type=\"password\" name=\"save-privkey-password\"/>\n";
responseStream << "\t\t\t\t</p>\n";
responseStream << "\t\t\t";
#line 96 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<input id=\"save-privkey-no\" type=\"radio\" name=\"save-privkey\" value=\"no\"/>\n";
responseStream << "\t\t\t\t<label class=\"grd_radio_label\" for=\"save-privkey-no\">Nein, ich k&uuml;mmere mich selbst darum!</label>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<fieldset>\n";
responseStream << "\t\t\t<legend>Passphrase speichern</legend>\n";
responseStream << "\t\t\t<div class=\"grd_text\">\n";
responseStream << "\t\t\t\t<p>M&ouml;chtest du deine Passphrase mit dem Server-Admin-Key verschl&uuml;sselt auf dem Server gespeichert haben?</p>\n";
responseStream << "\t\t\t\t<p>Dann kann dir der Server-Admin deine Passphrase zuschicken wenn du sie verlegt hast. </p>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<input id=\"save-passphrase-yes\" type=\"radio\" name=\"save-passphrase\" value=\"yes\" checked/>\n";
responseStream << "\t\t\t\t<label class=\"grd_radio_label\" for=\"save-passphrase-yes\">Ja, bitte speichern!</label>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<p class=\"grd_small\">\n";
responseStream << "\t\t\t\t<input id=\"save-passphrase-no\" type=\"radio\" name=\"save-passphrase\" value=\"no\"/>\n";
responseStream << "\t\t\t\t<label class=\"grd_radio_label\" for=\"save-passphrase-no\">Nein, ich vertraue nur mir selbst!</label>\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t</fieldset>\n";
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" value=\"Speichern\">\n";
responseStream << "\t</form>\n";
responseStream << "\t";
#line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
} else if(state == PAGE_SHOW_PUBKEY) { responseStream << "\n";
responseStream << "\t\t<div class=\"grd_text\">\n";
responseStream << "\t\t\t<p>";
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
responseStream << ( gettext("Daten gespeichert!") );
responseStream << "</p>\n";
responseStream << "\t\t\t<p>";
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
responseStream << ( gettext("Deine Daten wurden verschlüsselt und gespeichert.") );
responseStream << "</p>\n";
responseStream << "\t\t\t<!--<p>Je nach Auswahl werden deine Daten nun verschl&uuml;sselt und gespeichert. </p>-->\n";
responseStream << "\t\t\t<!--<p>Deine Daten werden nun verschlüsselt und gespeichert.</p>-->\n";
responseStream << "\t\t\t<!--<p>Deine Gradido Adresse (Hex): </p>\n";
responseStream << "\t\t\t<p class=\"grd_textarea\">\n";
responseStream << "\t\t\t\t";
#line 127 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
responseStream << ( user->getModel()->getPublicKeyHex() );
responseStream << "\n";
responseStream << "\t\t\t</p>-->\n";
responseStream << "\t\t\t<a class=\"grd-form-bn\" href=\"";
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
responseStream << ( uri_start );
responseStream << "\">Zur&uuml;ck zur Startseite</a>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t";
#line 131 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
} else if(state == PAGE_ERROR) { responseStream << "\n";
responseStream << "\t\t<div class=\"grd_text\">\n";
responseStream << "\t\t\t<p>Ein Fehler trat auf, bitte versuche es erneut oder wende dich an den Server-Admin</p>\n";
responseStream << "\t\t\t";
#line 134 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
responseStream << ( mSession->getSessionStateString() );
responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t";
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\saveKeys.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef SaveKeysPage_INCLUDED
#define SaveKeysPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class SaveKeysPage: public SessionHTTPRequestHandler
{
public:
SaveKeysPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // SaveKeysPage_INCLUDED

View File

@ -1,318 +0,0 @@
#include "TranslatePassphrase.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\\translatePassphrase.cpsp"
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
TranslatePassphrase::TranslatePassphrase(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void TranslatePassphrase::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 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
chooseLanguage(request);
// variable needed for flags
auto lang = mSession->getLanguage();
auto uri_start = ServerConfig::g_serverPath;
const char* pageName = gettext("Passphrase Transformieren");
std::string passphrase;
auto role = mSession->getNewUser()->getModel()->getRole();
std::string inputPassphrase;
Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER];
Mnemonic* targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES];
if(lang == LANG_DE) {
wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES];
targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER];
}
if(!form.empty())
{
inputPassphrase = form.get("inputPassphrase", "");
auto localPassphrase = Passphrase::filter(inputPassphrase);
auto btnGenerate = form.get("btnGenerate", "");
if("" != btnGenerate) {
auto passphrase_gen = Passphrase::generate(wordSource);
localPassphrase = passphrase_gen->getString();
inputPassphrase = localPassphrase;
}
auto passphrase_object = Passphrase::create(localPassphrase, wordSource);
if(localPassphrase != "" && passphrase_object.isNull() || !passphrase_object->checkIfValid()) {
addError(new Error(
gettext("Fehler"),
gettext("Diese Passphrase ist ung&uuml;ltig, bitte &uuml;berpr&uuml;fen oder neu generieren (lassen).")
), false);
} else {
if(wordSource == &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]) {
targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES];
} else {
targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER];
}
auto transformed_passphrase_obj = passphrase_object->transform(targetSource);
passphrase = transformed_passphrase_obj->getString();
}
}
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
std::ostream& _responseStream = response.send();
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
responseStream << "\n";
// begin include login_header.cpsp
// begin include header.cpsp
responseStream << "\n";
responseStream << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
responseStream << "<div class=\"authentication-theme auth-style_1\">\n";
responseStream << " <div class=\"row\">\n";
responseStream << " <div class=\"col-12 logo-section\">\n";
responseStream << " <a href=\"";
#line 5 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"logo\">\n";
responseStream << " <picture>\n";
responseStream << "\t\t\t\t<source srcset=\"";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << "\t\t\t\t<source srcset=\"";
#line 8 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\"> \n";
responseStream << "\t\t\t\t<img src=\"";
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << "\t\t\t</picture>\n";
responseStream << " </a>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"row\">\n";
responseStream << " <div class=\"col-lg-5 col-md-7 col-sm-9 col-11 mx-auto\">\n";
responseStream << " <div class=\"grid\">\n";
responseStream << " <div class=\"center-ul-container\">\n";
responseStream << " ";
#line 18 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login_header.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"grid-body\">";
// end include login_header.cpsp
// begin include flags.cpsp
responseStream << "<div class=\"center-form-selectors\">\n";
responseStream << "<form method=\"GET\" action=\"\">\n";
responseStream << "\t<button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_EN) { responseStream << "class=\"flag-btn\"";
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 4 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-england\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "\t<button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
if(lang != LANG_DE) { responseStream << "class=\"flag-btn\"";
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
}
else { responseStream << "class=\"flag-btn\" disabled";
#line 8 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\flags.cpsp"
} responseStream << ">\n";
responseStream << "\t <span class=\"flag flag-germany\"></span>\n";
responseStream << "\t</button>\n";
responseStream << "</form>\n";
responseStream << "</div>";
// end include flags.cpsp
responseStream << "\n";
responseStream << "<div class=\"row mb-3\" style=\"margin-top:70px;\">\n";
responseStream << "\t<h2 class=\"mx-auto\">";
#line 61 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( gettext("Passphrase umwandeln") );
responseStream << "</h2>\n";
responseStream << "</div>\n";
responseStream << "<div class=\"item-wrapper\">\n";
responseStream << "<div class=\"row mb-3\">\n";
responseStream << " <div class=\"col-md-10 mx-auto\">\n";
responseStream << "\t<div class=\"form-group row showcase_row_area\">\n";
responseStream << "\t <div class=\"col-md-12 col-lg-12 \">\n";
responseStream << "\t\t<div class=\"alert alert-orange\">\n";
responseStream << "\t\t <h5 class=\"alert-heading\">";
#line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( gettext("Was zu tun ist:") );
responseStream << "</h5>\n";
responseStream << "\t\t <p>";
#line 70 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( gettext("Kopiere/schreibe deine Passphrase in die Textbox und du bekommst sie in die jeweils andere Sprache umgewandelt.") );
responseStream << "</p>\n";
responseStream << "\t\t <p>";
#line 71 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( gettext("Du kannst mit beiden Varianten dein Konto wiederherstellen oder dein Passwort ändern.") );
responseStream << "</p>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t </div>\n";
responseStream << "\t <div class=\"col-lg-12 col-md-12 mb-5\">\n";
responseStream << "\t\t<form action=\"";
#line 75 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( uri_start );
responseStream << "/transform_passphrase\">\n";
responseStream << "\t\t <div class=\"form-group row-showcase_row_area\">\n";
responseStream << "\t\t\t<textarea name=\"inputPassphrase\" cols=\"20\" rows=\"10\" id=\"inputPassphrase\" class=\"form-control\" placeholder=\"";
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( gettext("deine Passphrase") );
responseStream << "\">";
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( inputPassphrase );
responseStream << "</textarea>\n";
responseStream << "\t\t </div>\n";
responseStream << "\t\t <input name=\"btnTransform\" type=\"submit\" value=\"Umwandeln\" class=\"btn btn btn-orange\">\n";
responseStream << "\t\t ";
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
if(model::table::ROLE_ADMIN == role) { responseStream << "\n";
responseStream << "\t\t\t<input name=\"btnGenerate\" type=\"submit\" value=\"Neue generieren\" class=\"btn btn-secondary\">\n";
responseStream << "\t\t ";
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
} responseStream << "\n";
responseStream << "\t\t</form>\n";
responseStream << "\t </div>\n";
responseStream << "\t ";
#line 85 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
if(passphrase != "") { responseStream << "\n";
responseStream << "\t\t<div class=\"col-lg-12 col-md-12\">\n";
responseStream << "\t\t\t<div class=\"alert alert-success\">\n";
responseStream << "\t\t\t\t<h5 class=\"alert-heading\">Umgewandelte Passphrase: </h5>\n";
responseStream << "\t\t\t\t<p>";
#line 89 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
responseStream << ( passphrase );
responseStream << "</p>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t ";
#line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp"
} responseStream << "\n";
responseStream << "\t </div>\n";
responseStream << "\t</div>\n";
responseStream << " </div>\n";
// begin include footer_ripple.cpsp
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t</div>\n";
responseStream << " <!-- content viewport ends -->\n";
responseStream << " <!-- partial:partials/_footer.html -->\n";
responseStream << " <footer class=\"footer\">\n";
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 << "\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";
responseStream << " <small class=\"text-muted d-block\">Copyright © 2020 Gradido</small>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " </footer>\n";
responseStream << " <!-- partial -->\n";
responseStream << " </div>\n";
responseStream << " <!-- page content ends -->\n";
responseStream << " </div>\n";
responseStream << " <div class=\"grd-time-used dev-info\">\n";
responseStream << " ";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer_ripple.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <!--page body ends -->\n";
responseStream << " <!-- SCRIPT LOADING START FORM HERE /////////////-->\n";
responseStream << " <!-- plugins:js -->\n";
responseStream << " <!--<script src=\"../../../assets/vendors/js/core.js\"></script>-->\n";
responseStream << " <!--<script src=\"../../../assets/vendors/js/vendor.addons.js\"></script>-->\n";
responseStream << " <!-- endinject -->\n";
responseStream << " <!-- Vendor Js For This Page Ends-->\n";
responseStream << " <!--<script src=\"../../../assets/vendors/chartjs/Chart.min.js\"></script>-->\n";
responseStream << " <!-- Vendor Js For This Page Ends-->\n";
responseStream << " <!-- build:js -->\n";
responseStream << " <!--<script src=\"../../../assets/js/template.js\"></script>-->\n";
responseStream << " <script src=\"";
#line 36 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer_ripple.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/basic.js\"></script>\n";
responseStream << " <!--<script src=\"../../../assets/js/dashboard.js\"></script>-->\n";
responseStream << " <!-- endbuild -->\n";
responseStream << " </body>\n";
responseStream << "</html>\n";
responseStream << " ";
// end include footer_ripple.cpsp
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef TranslatePassphrase_INCLUDED
#define TranslatePassphrase_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class TranslatePassphrase: public SessionHTTPRequestHandler
{
public:
TranslatePassphrase(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // TranslatePassphrase_INCLUDED

View File

@ -1,20 +0,0 @@
#ifndef UpdateUserPasswordPage_INCLUDED
#define UpdateUserPasswordPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class UpdateUserPasswordPage: public SessionHTTPRequestHandler
{
public:
UpdateUserPasswordPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // UpdateUserPasswordPage_INCLUDED

View File

@ -1,303 +0,0 @@
#include "UserUpdateGroupPage.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
#include "../controller/Group.h"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/PendingTasksManager.h"
#include "../lib/DataTypeConverter.h"
#include "../model/gradido/Transaction.h"
enum PageState {
PAGE_STATE_OVERVIEW,
PAGE_STATE_REQUEST_IS_RUNNING,
PAGE_STATE_NO_GROUPS
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
UserUpdateGroupPage::UserUpdateGroupPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void UserUpdateGroupPage::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 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
const char* pageName = gettext("Gruppe wählen");
auto user = mSession->getNewUser();
auto sm = SessionManager::getInstance();
auto pt = PendingTasksManager::getInstance();
PageState state = PAGE_STATE_OVERVIEW;
auto groups = controller::Group::listAll();
Poco::AutoPtr<controller::Group> choosen_group;
if(!form.empty()) {
auto group_id_string = form.get("group_id", "");
if(group_id_string == "") {
addError(new Error(gettext("Fehler"), gettext("HTML Form Fehler")));
} else {
int group_id = 0;
if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(group_id_string, group_id)) {
std::string group_alias = "";
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel();
if(group_model->getID() == group_id) {
choosen_group = *it;
}
}
if(choosen_group.isNull()) {
addError(new Error(gettext("Fehler"), gettext("Interner Fehler")));
} else {
auto addGroupMemberTransaction =
model::gradido::Transaction::createGroupMemberUpdate(user, choosen_group);
response.redirect(ServerConfig::g_serverPath + "/checkTransactions");
return;
state = PAGE_STATE_REQUEST_IS_RUNNING;
}
} else {
addError(new Error(gettext("Fehler"), gettext("HTML Value Type Fehler")));
}
}
} else {
if(groups.size() == 0) {
if(user->getModel()->getRole() == model::table::ROLE_ADMIN) {
response.redirect(getBaseUrl() + "/groups");
return;
}
state = PAGE_STATE_NO_GROUPS;
} else {
auto referer = request.find("Referer");
std::string refererString;
if (referer != request.end()) {
refererString = referer->second;
}
pt->lock("userUpdateGroup Page");
auto has_pending_group_add_member_task = pt->hasPendingTask(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER);
auto referer_was_checkTransaction = refererString.find("checkTransactions") != std::string::npos;
if(has_pending_group_add_member_task) {
state = PAGE_STATE_REQUEST_IS_RUNNING;
std::vector<Poco::AutoPtr<controller::PendingTask>> tasks = pt->getPendingTasks(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER);
// should be only one
Poco::AutoPtr<model::gradido::Transaction> transaction = tasks[0].cast<model::gradido::Transaction>();
if(transaction->getSignCount() == 0) {
pt->unlock();
response.redirect(getBaseUrl() + "/checkTransactions");
return;
}
} else if(referer_was_checkTransaction && user->getModel()->getGroupId()) {
pt->unlock();
response.redirect(user->getGroupBaseUrl());
return;
}
pt->unlock();
}
}
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"content-list\">\n";
responseStream << "\t";
#line 106 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
if(PAGE_STATE_OVERVIEW == state ) { responseStream << "\n";
responseStream << " <div class=\"content-list-title\">\n";
responseStream << " <h1>";
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Gruppe wählen") );
responseStream << "</h1>\n";
responseStream << " </div>\n";
responseStream << "\t<p>";
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Bitte wähle die Gruppe/Gemeinschaft aus, zu der du gehörst.") );
responseStream << "</p>\n";
responseStream << "\t<p>";
#line 111 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Du bekommst eine Bestätigungsmail, nachdem dein Beitritt bestätigt wurde.") );
responseStream << "</p>\n";
responseStream << "\t<form method=\"POST\">\n";
responseStream << "\t\t<div class=\"content-list-table\">\n";
responseStream << "\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c1\">";
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Auswahl") );
responseStream << "</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Name</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c2\">Alias</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c4\">Url</div>\n";
responseStream << "\t\t\t\t<div class=\"cell header-cell c5\">";
#line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Description") );
responseStream << "</div>\n";
responseStream << "\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
for(auto it = groups.begin(); it != groups.end(); it++) {
auto group_model = (*it)->getModel(); responseStream << "\n";
responseStream << "\t\t\t\t<div class=\"row\">\n";
responseStream << "\t\t\t\t\t<div class=\"cell c1\"><input type=\"radio\" class=\"form-control\" name=\"group_id\" value=\"";
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( group_model->getID());
responseStream << "\" /></div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 125 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( group_model->getName() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c2\">";
#line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( group_model->getAlias() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c4\">";
#line 127 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( group_model->getUrl() );
responseStream << "</div>\n";
responseStream << "\t\t\t\t\t<div class=\"cell c5\">";
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( group_model->getDescription());
responseStream << "</div>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t";
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<input class=\"grd-form-bn grd-form-bn-succeed grd_clickable\" type=\"submit\" name=\"submit\" value=\"";
#line 131 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Beitrittsanfrage senden") );
responseStream << "\"/>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</form>\n";
responseStream << "\t";
#line 134 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
} else if(PAGE_STATE_REQUEST_IS_RUNNING == state) { responseStream << "\n";
responseStream << "\t\t<p>";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Deine Beitrittsanfrage wird bearbeitet, du bekommst eine E-Mail wenn sie bestätigt oder abgelehnt wurde.") );
responseStream << "</p>\n";
responseStream << "\t\t<p><a href=\"";
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/logout\">";
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Abmelden") );
responseStream << "</a></p>\n";
responseStream << "\t";
#line 137 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
} else if(PAGE_STATE_NO_GROUPS == state) { responseStream << "\n";
responseStream << "\t\t<p>";
#line 138 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
responseStream << ( gettext("Noch keine Gruppen vorhanden, bitte warte bis der Admin welche hinzugef&uuml;gt hat.") );
responseStream << "\n";
responseStream << "\t";
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\userUpdateGroup.cpsp"
} responseStream << "\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef UserUpdateGroupPage_INCLUDED
#define UserUpdateGroupPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class UserUpdateGroupPage: public SessionHTTPRequestHandler
{
public:
UserUpdateGroupPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // UserUpdateGroupPage_INCLUDED

View File

@ -1,217 +0,0 @@
#include "UserUpdatePasswordPage.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
#include "../SingletonManager/SessionManager.h"
#include "../tasks/AuthenticatedEncryptionCreateKeyTask.h"
#include "Poco/Net/HTTPCookie.h"
enum PageState {
PAGE_STATE_ASK_PASSWORD,
PAGE_STATE_SUCCEED
};
#line 1 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
#include "../ServerConfig.h"
UserUpdatePasswordPage::UserUpdatePasswordPage(Session* arg):
SessionHTTPRequestHandler(arg)
{
}
void UserUpdatePasswordPage::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 17 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
const char* pageName = "Passwort bestimmen";
auto user = mSession->getNewUser();
auto sm = SessionManager::getInstance();
auto uri_start = getBaseUrl();
PageState state = PAGE_STATE_ASK_PASSWORD;
// remove old cookies if exist
sm->deleteLoginCookies(request, response, mSession);
// save login cookie, because maybe we've get an new session
response.addCookie(mSession->getLoginCookie());
if(!form.empty()) {
auto pwd = form.get("register-password", "");
if(pwd != "") {
if(!mSession->getLanguageCatalog()) {
mSession->setLanguage(LANG_EN);
}
if(pwd != form.get("register-password2", "")) {
mSession->addError(new Error("Passwort", "Passw&ouml;rter sind nicht identisch."), false);
} else if(SessionManager::getInstance()->checkPwdValidation(pwd, mSession, mSession->getLanguageCatalog())) {
auto sessionState = mSession->getSessionState();
if(user->setNewPassword(pwd) >= 0) {
//std::string referUri = request.get("Referer", uri_start + "/");
//printf("[updateUserPasswordPage] redirect to referUri: %s\n", referUri.data());
// I think we can savly assume that this session was loaded from verification code
//! \return 1 = konto already activated
//! -1 = invalid code
//! -2 = critical error
//! 0 = ok
auto code = mSession->getEmailVerificationCode();
int retUpdateEmailCode = 0;
if(code) {
retUpdateEmailCode = mSession->updateEmailVerification(mSession->getEmailVerificationCode());
}
//mSession->getErrors(user);
if(-2 == retUpdateEmailCode || -1 == retUpdateEmailCode || 1 == retUpdateEmailCode) {
response.redirect(uri_start + "/error500");
return;
}
if(sessionState == SESSION_STATE_RESET_PASSWORD_REQUEST) {
state = PAGE_STATE_SUCCEED;
mSession->updateState(SESSION_STATE_RESET_PASSWORD_SUCCEED);
sm->deleteLoginCookies(request, response, mSession);
sm->releaseSession(mSession);
mSession = nullptr;
} else {
response.redirect(uri_start + "/passphrase");
return;
}
}
}
}
}
if(mSession) {
getErrors(mSession);
}
//getErrors(user);
//printf("session state end [UpdateUserPassword Page]: %s\n", mSession->getSessionStateString());
#line 3 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
bool withMaterialIcons = false;
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 << "<!DOCTYPE html>\n";
responseStream << "<html>\n";
responseStream << "<head>\n";
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
responseStream << " <div class=\"layout\">\n";
responseStream << " <div class=\"center-form-single\">\n";
responseStream << " <div class=\"center-form-header\">\n";
responseStream << " <a href=\"";
#line 21 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "\" class=\"center-logo\">\n";
responseStream << " <picture>\n";
responseStream << " <source srcset=\"";
#line 23 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
responseStream << " <source srcset=\"";
#line 24 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" type=\"image/png\">\n";
responseStream << " <img src=\"";
#line 25 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
responseStream << " </picture>\n";
responseStream << " </a>\n";
responseStream << " </div>";
// end include header.cpsp
responseStream << "\n";
#line 79 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t";
#line 81 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
if(PAGE_STATE_ASK_PASSWORD == state ) { responseStream << "\n";
responseStream << " <div class=\"center-form-title\">\n";
responseStream << " <h1>Passwort bestimmen</h1>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"center-form-form\">\n";
responseStream << "\t\t<form method=\"POST\">\n";
responseStream << "\t\t\t<p>\n";
responseStream << "\t\t\t\tBitte denke dir ein sicheres Passwort aus, das mindestens 8 Zeichen lang ist, einen Klein- und einen Gro&szlig;buchstaben enth&auml;lt,\n";
responseStream << "\t\t\t\teine Zahl und eines der folgenden Sonderzeichen: @$!%*?&+-\n";
responseStream << "\t\t\t</p>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-password\">Passwort</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-password\" type=\"password\" name=\"register-password\"/>\n";
responseStream << "\t\t\t<label class=\"form-label\" for=\"register-password2\">Passwort Best&auml;tigung</label>\n";
responseStream << "\t\t\t<input class=\"form-control\" id=\"register-password2\" type=\"password\" name=\"register-password2\"/>\n";
responseStream << "\t\t\t<input class=\"grd-form-bn grd-form-bn-succeed grd_clickable\" type=\"submit\" name=\"submit\" value=\"&Auml;nderung(en) speichern\">\n";
responseStream << "\t\t</form>\n";
responseStream << "\t";
#line 97 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
} else if(PAGE_STATE_SUCCEED == state) { responseStream << "\n";
responseStream << "\t\t<p>Deine Daten werden jetzt mit dem neuen Passwort verschl&uuml;sselt. Du kannst dich in etwa 1 Minute mit deinem neuen Passwort einloggen</p>\n";
responseStream << "\t\t<a class=\"link-button\" href=\"";
#line 99 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
responseStream << ( uri_start );
responseStream << "/login\">Zum Login</a>\n";
responseStream << "\t";
#line 100 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\userUpdatePassword.cpsp"
} responseStream << "\n";
responseStream << "\t</div>\n";
responseStream << "</div>\n";
// begin include footer.cpsp
responseStream << " <div class=\"center-bottom\">\n";
responseStream << " <p>Copyright © Gradido 2020</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << "</body>\n";
responseStream << "\n";
responseStream << "</html>";
// end include footer.cpsp
responseStream << "\n";
if (_compressResponse) _gzipStream.close();
}

View File

@ -1,20 +0,0 @@
#ifndef UserUpdatePasswordPage_INCLUDED
#define UserUpdatePasswordPage_INCLUDED
#include "Poco/Net/HTTPRequestHandler.h"
#include "SessionHTTPRequestHandler.h"
class UserUpdatePasswordPage: public SessionHTTPRequestHandler
{
public:
UserUpdatePasswordPage(Session*);
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};
#endif // UserUpdatePasswordPage_INCLUDED

View File

@ -1,15 +1,14 @@
<%@ page class="AdminCheckUserBackup" %>
<%@ page class="AdminCheckUserBackupPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../Crypto/KeyPairEd25519.h"
#include "../Crypto/Passphrase.h"
#include "../SingletonManager/ConnectionManager.h"
#include "Crypto/KeyPairEd25519.h"
#include "Crypto/Passphrase.h"
#include "SingletonManager/ConnectionManager.h"
#include "../controller/UserBackup.h"
#include "controller/UserBackup.h"
#include "Poco/Data/Binding.h"
using namespace Poco::Data::Keywords;
@ -89,7 +88,7 @@ struct SListEntry
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Admin Check User Backup</h1>
<%= getErrorsHtml() %>
@ -112,4 +111,4 @@ struct SListEntry
<% } %>
</tbody>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,11 +1,10 @@
<%@ page class="AdminGroupsPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../controller/Group.h"
#include "controller/Group.h"
%>
<%%
const char* pageName = "Gruppen";
@ -38,7 +37,7 @@
//auto groups = controller::Group::load("gdd1");
//std::vector<Poco::SharedPtr<controller::Group>> groups;
%><%@ include file="header_large.cpsp" %>
%><%@ include file="include/header_large.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<div class="content-list">
@ -89,4 +88,4 @@
<input class="center-form-submit form-button" type="submit" name="submit" value="<%= gettext("Add Group") %>">
</form>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,20 +1,19 @@
<%@ page class="AdminHederaAccountPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../controller/HederaAccount.h"
#include "../controller/HederaId.h"
#include "../controller/CryptoKey.h"
#include "../lib/DataTypeConverter.h"
#include "../lib/Profiler.h"
#include "../lib/Success.h"
#include "../SingletonManager/SessionManager.h"
#include "controller/HederaAccount.h"
#include "controller/HederaId.h"
#include "controller/CryptoKey.h"
#include "lib/DataTypeConverter.h"
#include "lib/Profiler.h"
#include "lib/Success.h"
#include "SingletonManager/SessionManager.h"
#include "../ServerConfig.h"
#include "ServerConfig.h"
#include "Poco/URI.h"
@ -226,7 +225,7 @@
// list accounts
auto hedera_accounts = controller::HederaAccount::load("user_id", user->getModel()->getID());
%><%@ include file="header_large.cpsp" %>
%><%@ include file="include/header_large.cpsp" %>
<style type="text/css">
.center-form-form .input-40 {
margin-left:0;
@ -338,7 +337,7 @@
</form>
</div>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>
<script type="text/javascript" src="<%= ServerConfig::g_php_serverPath %>/js/time_calculations.js"></script>
<script type="text/javascript">
var input = document.getElementById("account-auto-renew-period");

View File

@ -1,9 +1,8 @@
<%@ page class="AdminHederaTopic" %>
<%@ page class="AdminHederaTopicPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
@ -12,10 +11,10 @@
const char* pageName = "Admin Hedera Topic";
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Admin Hedera Topic</h1>
<%= getErrorsHtml() %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,15 +1,14 @@
<%@ page class="AdminNodeServerPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../controller/NodeServer.h"
#include "../controller/Group.h"
#include "../SingletonManager/SessionManager.h"
#include "../lib/DataTypeConverter.h"
#include "controller/NodeServer.h"
#include "controller/Group.h"
#include "SingletonManager/SessionManager.h"
#include "lib/DataTypeConverter.h"
%>
<%%
@ -123,7 +122,7 @@
auto node_servers = controller::NodeServer::listAll();
%><%@ include file="header_large.cpsp" %>
%><%@ include file="include/header_large.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<div class="content-list">
@ -198,4 +197,4 @@
</form>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,17 +1,16 @@
<%@ page class="AdminNodeServerTestPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%@ header include="HTTPInterface/PageRequestMessagedHandler.h" %>
<%!
#include "../controller/NodeServer.h"
#include "../controller/User.h"
#include "../controller/HederaTopic.h"
#include "../lib/DataTypeConverter.h"
#include "../lib/Profiler.h"
#include "../lib/JsonRPCRequest.h"
#include "../model/gradido/Transaction.h"
#include "controller/NodeServer.h"
#include "controller/User.h"
#include "controller/HederaTopic.h"
#include "lib/DataTypeConverter.h"
#include "lib/Profiler.h"
#include "lib/JsonRPCRequest.h"
#include "model/gradido/Transaction.h"
#include "Poco/Thread.h"
#include "Poco/DateTime.h"
@ -99,7 +98,7 @@ enum PageType
auto node_servers = controller::NodeServer::load(model::table::NODE_SERVER_GRADIDO_NODE);
auto hedera_topics = controller::HederaTopic::listAll();
%><%@ include file="header_large.cpsp" %>
%><%@ include file="include/header_large.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<!-- Tab links -->
@ -421,4 +420,4 @@ enum PageType
</div>
<script type="text/javascript" src="<%= ServerConfig::g_php_serverPath %>/js/tabs.js"></script>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,19 +1,18 @@
<%@ page class="AdminTopicPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../controller/HederaAccount.h"
#include "../controller/HederaTopic.h"
#include "../controller/Group.h"
#include "../SingletonManager/SessionManager.h"
#include "../ServerConfig.h"
#include "controller/HederaAccount.h"
#include "controller/HederaTopic.h"
#include "controller/Group.h"
#include "SingletonManager/SessionManager.h"
#include "ServerConfig.h"
#include "../lib/DataTypeConverter.h"
#include "../lib/Profiler.h"
#include "../lib/Success.h"
#include "lib/DataTypeConverter.h"
#include "lib/Profiler.h"
#include "lib/Success.h"
#include "Poco/Timespan.h"
#include "Poco/URI.h"
@ -167,7 +166,7 @@
auto hedera_topics = controller::HederaTopic::listAll();
//std::vector<Poco::AutoPtr<controller::HederaTopic>> hedera_topics;
%><%@ include file="header_large.cpsp" %>
%><%@ include file="include/header_large.cpsp" %>
<style type="text/css">
.center-form-form .input-40 {
@ -308,7 +307,7 @@
</div>
</div>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>
<script type="text/javascript" src="<%= ServerConfig::g_php_serverPath %>/js/time_calculations.js"></script>
<script type="text/javascript" src="<%= ServerConfig::g_php_serverPath %>/js/tabs.js"></script>
<script type="text/javascript">

View File

@ -1,14 +1,13 @@
<%@ page class="AdminUserPasswordReset" %>
<%@ page class="AdminUserPasswordResetPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
// includes
#include "../controller/User.h"
#include "../controller/EmailVerificationCode.h"
#include "../controller/UserBackup.h"
#include "controller/User.h"
#include "controller/EmailVerificationCode.h"
#include "controller/UserBackup.h"
enum PageState
@ -65,7 +64,7 @@ enum PageState
}
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<%= getErrorsHtml() %>
<h1>Admin User Passwort Reset</h1>
@ -116,5 +115,5 @@ Dario, Softwareentwickler bei Gradido
</fieldset>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,13 +1,12 @@
<%@ page class="CheckEmailPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/LanguageManager.h"
#include "../SingletonManager/EmailManager.h"
#include "SingletonManager/SessionManager.h"
#include "SingletonManager/LanguageManager.h"
#include "SingletonManager/EmailManager.h"
enum PageState
{
MAIL_NOT_SEND,
@ -65,10 +64,10 @@ enum PageState
verificationCode = getLastGetAsU64(request.getURI());
}
}
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<%@ include file="flags.cpsp" %>
<%@ include file="include/flags.cpsp" %>
<div class="center-form-title">
<h1><%= langCatalog->gettext("E-Mail verifizieren") %></h1>
</div>
@ -95,4 +94,4 @@ enum PageState
<% } %>
</div>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,18 +1,17 @@
<%@ page class="CheckTransactionPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/SingletonTaskObserver.h"
#include "../SingletonManager/EmailManager.h"
#include "../SingletonManager/PendingTasksManager.h"
#include "../model/gradido/TransactionCreation.h"
#include "../model/gradido/TransactionTransfer.h"
#include "SingletonManager/SessionManager.h"
#include "SingletonManager/SingletonTaskObserver.h"
#include "SingletonManager/EmailManager.h"
#include "SingletonManager/PendingTasksManager.h"
#include "model/gradido/TransactionCreation.h"
#include "model/gradido/TransactionTransfer.h"
#include "../lib/DataTypeConverter.h"
#include "lib/DataTypeConverter.h"
#include "Poco/Thread.h"
@ -205,7 +204,7 @@ enum PageState {
%><%@ include file="header_navi_chr.cpsp" %>
%><%@ include file="include/header_navi_chr.cpsp" %>
<%= getErrorsHtml() %>
<div class="col-md-10 equel-grid mb-3">
<small class="text-gray d-block mt-3">
@ -358,4 +357,4 @@ enum PageState {
</div>
</div>
</div>
<%@ include file="footer_chr.cpsp" %>
<%@ include file="include/footer_chr.cpsp" %>

View File

@ -1,9 +1,8 @@
<%@ page class="ConfigPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
const char* pageName = "Config";
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<h1>Config</h1>
<form method="POST">
<div class="grd_container">

View File

@ -1,11 +1,10 @@
<%@ page class="DashboardPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "SingletonManager/SessionManager.h"
#include "Poco/Net/HTTPServerParams.h"
%>
<%%
@ -21,7 +20,7 @@
//response.redirect(ServerConfig::g_php_serverPath);
response.redirect(user->getGroupBaseUrl());
return;
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Willkommen <%= user_model->getFirstName() %>&nbsp;<%= user_model->getLastName() %></h1>
<%= mSession->getErrorsHtml() %>
@ -51,4 +50,4 @@
</ul>
</div>
</nav>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,12 +1,11 @@
<%@ page class="DebugMnemonicPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../ServerConfig.h"
#include "../Crypto/Passphrase.h"
#include "ServerConfig.h"
#include "Crypto/Passphrase.h"
struct WordChecked {
WordChecked() : index(0), bSet(false) {};
@ -98,7 +97,7 @@
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Debug Mnemonic</h1>
<%= getErrorsHtml() %>
@ -133,4 +132,4 @@
</fieldset>
</form>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,12 +1,11 @@
<%@ page class="DebugPassphrasePage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../Crypto/KeyPairEd25519.h"
#include "../controller/User.h"
#include "Crypto/KeyPairEd25519.h"
#include "controller/User.h"
%>
<%%
const char* pageName = "Debug Passphrase";
@ -38,7 +37,7 @@
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Debug Passphrase</h1>
<%= getErrorsHtml() %>
@ -66,4 +65,4 @@
<% } %>
</div>
<% if(keys) delete keys; %>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,17 +1,16 @@
<%@ page class="DecodeTransactionPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "sodium.h"
#include "../proto/gradido/GradidoTransaction.pb.h"
#include "../proto/gradido/TransactionBody.pb.h"
#include "../controller/User.h"
#include "../model/gradido/TransactionBase.h"
#include "../model/gradido/TransactionCreation.h"
#include "../lib/DataTypeConverter.h"
#include "proto/gradido/GradidoTransaction.pb.h"
#include "proto/gradido/TransactionBody.pb.h"
#include "controller/User.h"
#include "model/gradido/TransactionBase.h"
#include "model/gradido/TransactionCreation.h"
#include "lib/DataTypeConverter.h"
%>
<%%
const char* pageName = "Decode Transaction";
@ -84,7 +83,7 @@
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" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Transaktion dekodieren</h1>
<%= getErrorsHtml() %>
@ -156,4 +155,4 @@
<% } %>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,8 +1,7 @@
<%@ page class="Error500Page" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ page compressed="true" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include <Poco/Net/HTTPResponse.h>
@ -14,7 +13,7 @@
if(mSession) {
auto user = mSession->getNewUser();
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h2>Ein Fehler auf dem Server trat ein, der Admin bekam eine E-Mail.</h2>
<% if(mSession) { %>
@ -24,4 +23,4 @@
<%= user->getModel()->getErrorsHtmlNewFormat() %>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -2,20 +2,19 @@
<%@ page form="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ page compressed="true" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../gettext.h"
#include "gettext.h"
#include "Poco/Net/HTTPCookie.h"
#include "Poco/Net/HTTPServerParams.h"
#include "Poco/URI.h"
#include "Poco/Logger.h"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/LanguageManager.h"
#include "../SingletonManager/ErrorManager.h"
#include "SingletonManager/SessionManager.h"
#include "SingletonManager/LanguageManager.h"
#include "SingletonManager/ErrorManager.h"
#include "../lib/JsonRequest.h"
#include "lib/JsonRequest.h"
%>
@ -280,11 +279,11 @@
form_action_url = getBaseUrl() + "/";
}
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<%= getErrorsHtml() %>
<!--<input type="hidden" name="lang" value="<%= LanguageManager::keyForLanguage(lang) %>">-->
<div class="center-form-container">
<%@ include file="flags.cpsp" %>
<%@ include file="include/flags.cpsp" %>
<div class="center-form-form">
<form action="<%= form_action_url %>" method="POST">
<input class="form-control" type="text" name="login-email" placeholder="<%= langCatalog->gettext("E-Mail") %>" value="<%= presetEmail %>"/>
@ -311,4 +310,4 @@
<br>
<a href="https://docs.google.com/document/d/1kcX1guOi6tDgnFHD9tf7fB_MneKTx-0nHJxzdN8ygNs/edit?usp=sharing" target="_blank">To the Whitepaper</a>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,14 +1,13 @@
<%@ page class="PassphrasePage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/LanguageManager.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
#include "SingletonManager/SessionManager.h"
#include "SingletonManager/LanguageManager.h"
#include "Crypto/KeyPairEd25519.h"
#include "ServerConfig.h"
//#include "Poco/Net/HTTPServerParams.h"
enum PageState
@ -138,9 +137,9 @@ enum PageState
pageSubtitle = gettext("1/3");
}
getErrors(mSession);
%><%@ include file="login_header.cpsp" %><%% withMaterialIcons = true; %>
%><%@ include file="include/login_header.cpsp" %><%% withMaterialIcons = true; %>
<% if(state == PAGE_ASK_ENSURE_PASSPHRASE) { %><div style="display:none"> <% } %>
<%@ include file="flags.cpsp" %>
<%@ include file="include/flags.cpsp" %>
<% if(state == PAGE_ASK_ENSURE_PASSPHRASE) { %></div> <% } %>
<div class="row mb-3" <% if(state != PAGE_ASK_ENSURE_PASSPHRASE) { %> style="margin-top:70px;" <% } %>>
<h2 class="mx-auto"><%= pageTitle %>: <%= pageSubtitle %></h2>
@ -319,4 +318,4 @@ enum PageState
<% } %>
</div>
</div>
<%@ include file="footer_ripple.cpsp" %>
<%@ include file="include/footer_ripple.cpsp" %>

View File

@ -1,13 +1,12 @@
<%@ page class="PassphrasedTransaction" %>
<%@ page class="PassphrasedTransactionPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%@ header include="HTTPInterface/PageRequestMessagedHandler.h" %>
<%!
#include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/SessionManager.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
#include "SingletonManager/MemoryManager.h"
#include "SingletonManager/SessionManager.h"
#include "Crypto/KeyPairEd25519.h"
#include "ServerConfig.h"
#include "Poco/JSON/Object.h"
#include "Poco/JSON/Parser.h"
@ -135,7 +134,7 @@ enum PageState {
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<% if("" == errorString) { %>
<%= errorString %>
<% } %>
@ -161,4 +160,4 @@ enum PageState {
<a href="<%= ServerConfig::g_serverPath %>/passphrased_transaction">Weitere Gradidos überweisen</a>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,10 +1,9 @@
<%@ page class="RegisterPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%@ header include="HTTPInterface/PageRequestMessagedHandler.h" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "SingletonManager/SessionManager.h"
#include "Poco/Net/HTTPCookie.h"
%>
<%%
@ -25,11 +24,12 @@
response.addCookie(session->getLoginCookie());
}
userReturned = session->createUser(
userReturned = session->createUserDirect(
form.get("register-first-name", ""),
form.get("register-last-name", ""),
form.get("register-email", ""),
form.get("register-password", "")
form.get("register-password", ""),
getBaseUrl()
);
getErrors(session);
}
@ -39,7 +39,7 @@
// remove old cookies if exist
sm->deleteLoginCookies(request, response);
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Einen neuen Account anlegen</h1>
<%= getErrorsHtml() %>
@ -82,4 +82,4 @@
</form>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,16 +1,15 @@
<%@ page class="RegisterAdminPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../controller/Group.h"
#include "../lib/DataTypeConverter.h"
#include "SingletonManager/SessionManager.h"
#include "controller/Group.h"
#include "lib/DataTypeConverter.h"
#include "Poco/Net/HTTPCookie.h"
#include "../ServerConfig.h"
#include "ServerConfig.h"
%>
<%%
@ -45,7 +44,7 @@
auto groups = controller::Group::listAll();
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Einen neuen Account anlegen</h1>
<%= getErrorsHtml() %>
@ -86,4 +85,4 @@
</form>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,12 +1,11 @@
<%@ page class="RegisterDirectPage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%@ header include="HTTPInterface/PageRequestMessagedHandler.h" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../controller/Group.h"
#include "../lib/DataTypeConverter.h"
#include "SingletonManager/SessionManager.h"
#include "controller/Group.h"
#include "lib/DataTypeConverter.h"
#include "Poco/Net/HTTPCookie.h"
%>
@ -78,7 +77,7 @@
}
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<div class="center-form-title">
@ -100,4 +99,4 @@
<input class="center-form-submit form-button" type="submit" name="submit" value="Anmelden">
</form>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,18 +1,17 @@
<%@ page class="RepairDefectPassphrase" %>
<%@ page class="RepairDefectPassphrasePage" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/EmailManager.h"
#include "../Crypto/Passphrase.h"
#include "../Crypto/KeyPairEd25519.h"
#include "../lib/DataTypeConverter.h"
#include "../controller/UserBackup.h"
#include "../tasks/SigningTransaction.h"
#include "../ServerConfig.h"
#include "SingletonManager/MemoryManager.h"
#include "SingletonManager/EmailManager.h"
#include "Crypto/Passphrase.h"
#include "Crypto/KeyPairEd25519.h"
#include "lib/DataTypeConverter.h"
#include "controller/UserBackup.h"
#include "tasks/SigningTransaction.h"
#include "ServerConfig.h"
#include "Poco/JSON/Object.h"
#include "Poco/JSON/Parser.h"
@ -180,7 +179,7 @@ enum PageState
}
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<% if("" != errorString) { %>
<%= errorString %>
<% } %>
@ -216,4 +215,4 @@ enum PageState
<a class="grd-nav-bn" href="<%= ServerConfig::g_serverPath + "/logout" %>">Ausloggen</a>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,14 +1,13 @@
<%@ page class="ResetPassword" %>
<%@ page class="ResetPasswordPage" %>
<%@ page form="true" %>
<%@ page baseClass="PageRequestMessagedHandler" %>
<%@ header include="PageRequestMessagedHandler.h" %>
<%@ page compressed="true" %>
<%@ header include="HTTPInterface/PageRequestMessagedHandler.h" %>
<%!
#include "../SingletonManager/LanguageManager.h"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/EmailManager.h"
#include "../controller/User.h"
#include "../controller/UserBackup.h"
#include "SingletonManager/LanguageManager.h"
#include "SingletonManager/SessionManager.h"
#include "SingletonManager/EmailManager.h"
#include "controller/User.h"
#include "controller/UserBackup.h"
enum PageState {
PAGE_EMAIL_ASK,
@ -99,7 +98,7 @@ enum PageState {
}
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<div class="center-form-title">
@ -119,7 +118,7 @@ enum PageState {
</div>
<% } else if(state == PAGE_ASK) { %>
<div class="center-form-form">
<%@ include file="flags.cpsp" %>
<%@ include file="include/flags.cpsp" %>
<form action="<%= getBaseUrl() %>/resetPassword">
<label class="form-label" for="email"><%= langCatalog->gettext("Gib bitte hier deine E-Mail Adresse an:") %></label>
<input class="form-control" type="text" class="<%= emailInputClass %>" name="email" id="email" placeholder="E-Mail" value="<%= email %>">
@ -163,5 +162,5 @@ enum PageState {
}
}
</script>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,9 +1,8 @@
<%@ page class="SaveKeysPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "Poco/Net/HTTPServerParams.h"
@ -70,7 +69,7 @@ enum PageState
//hasErrors, mSession->getSessionState(), SESSION_STATE_KEY_PAIR_GENERATED);
}*/
getErrors(mSession);
%><%@ include file="header_old.cpsp" %>
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Daten speichern</h1>
<%= getErrorsHtml() %>
@ -135,4 +134,4 @@ enum PageState
</div>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,12 +1,11 @@
<%@ page class="TranslatePassphrase" %>
<%@ page class="TranslatePassphrasePage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%@ page form="true" %>
<%@ page compressed="true" %>
<%!
#include "../Crypto/KeyPairEd25519.h"
#include "../ServerConfig.h"
#include "Crypto/KeyPairEd25519.h"
#include "ServerConfig.h"
%>
<%%
chooseLanguage(request);
@ -56,7 +55,7 @@
}
%><%@ include file="login_header.cpsp" %><%@ include file="flags.cpsp" %>
%><%@ include file="include/login_header.cpsp" %><%@ include file="include/flags.cpsp" %>
<div class="row mb-3" style="margin-top:70px;">
<h2 class="mx-auto"><%= gettext("Passphrase umwandeln") %></h2>
</div>
@ -93,4 +92,4 @@
</div>
</div>
</div>
<%@ include file="footer_ripple.cpsp" %>
<%@ include file="include/footer_ripple.cpsp" %>

View File

@ -1,15 +1,14 @@
<%@ page class="UserUpdateGroupPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ page compressed="true" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../controller/Group.h"
#include "../SingletonManager/SessionManager.h"
#include "../SingletonManager/PendingTasksManager.h"
#include "../lib/DataTypeConverter.h"
#include "../model/gradido/Transaction.h"
#include "controller/Group.h"
#include "SingletonManager/SessionManager.h"
#include "SingletonManager/PendingTasksManager.h"
#include "lib/DataTypeConverter.h"
#include "model/gradido/Transaction.h"
enum PageState {
PAGE_STATE_OVERVIEW,
@ -100,7 +99,7 @@ enum PageState {
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<%= getErrorsHtml() %>
<div class="content-list">
<% if(PAGE_STATE_OVERVIEW == state ) { %>
@ -138,4 +137,4 @@ enum PageState {
<p><%= gettext("Noch keine Gruppen vorhanden, bitte warte bis der Admin welche hinzugef&uuml;gt hat.") %>
<% } %>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,11 +1,10 @@
<%@ page class="UserUpdatePasswordPage" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="SessionHTTPRequestHandler.h" %>
<%@ page compressed="true" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "../SingletonManager/SessionManager.h"
#include "../tasks/AuthenticatedEncryptionCreateKeyTask.h"
#include "SingletonManager/SessionManager.h"
#include "tasks/AuthenticatedEncryptionCreateKeyTask.h"
#include "Poco/Net/HTTPCookie.h"
enum PageState {
@ -75,7 +74,7 @@ enum PageState {
}
//getErrors(user);
//printf("session state end [UpdateUserPassword Page]: %s\n", mSession->getSessionStateString());
%><%@ include file="header.cpsp" %>
%><%@ include file="include/header.cpsp" %>
<%= getErrorsHtml() %>
<div class="center-form-container">
<% if(PAGE_STATE_ASK_PASSWORD == state ) { %>
@ -100,4 +99,4 @@ enum PageState {
<% } %>
</div>
</div>
<%@ include file="footer.cpsp" %>
<%@ include file="include/footer.cpsp" %>

View File

@ -1,5 +1,5 @@
<%!
#include "../ServerConfig.h"
#include "ServerConfig.h"
%><%%
bool withMaterialIcons = false;
%>

View File

@ -1,5 +1,5 @@
<%!
#include "../ServerConfig.h"
#include "ServerConfig.h"
%><%%
bool withMaterialIcons = false;
%>

View File

@ -1,6 +1,6 @@
<%!
#include "../ServerConfig.h"
#include "../model/TransactionBase.h"
#include "ServerConfig.h"
#include "model/TransactionBase.h"
%>
<!DOCTYPE html>
<html>

View File

@ -1,5 +1,5 @@
<%!
#include "../ServerConfig.h"
#include "ServerConfig.h"
%>
<!DOCTYPE html>
<html>