#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 group_indices; int count = 0; for(auto it = groups.begin(); it != groups.end(); it++) { group_indices.insert(std::pair((*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 << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; #line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" if(withMaterialIcons) { responseStream << "\n"; responseStream << "\n"; #line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp" } responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t
    \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
  • getGroupBaseUrl() ); responseStream << "/\">Startseite
  • \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
  • Gruppen
  • \n"; responseStream << "\t\t\t\t\t
  • Node Server
  • \n"; responseStream << "\t\t\t\t\t
  • Hedera Accounts
  • \n"; responseStream << "\t\t\t\t\t
  • Hedera Topics
  • \n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t
"; // end include header_large.cpsp responseStream << "\n"; #line 127 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Alle Node Server

\n"; responseStream << "\t\t
\t\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t
Server Type
\n"; responseStream << "\t\t\t\t
Url:Port
\n"; responseStream << "\t\t\t\t
Group / Hedera Id
\n"; responseStream << "\t\t\t
\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
\n"; responseStream << "\t\t\t\t\t
"; #line 143 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp" responseStream << ( model::table::NodeServer::nodeServerTypeToString(node_server_model->getNodeServerType()) ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
"; #line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp" responseStream << ( node_server_model->getUrlWithPort() ); responseStream << "
\n"; responseStream << "\t\t\t\t\t
\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\tgetDescription() ); responseStream << "\">"; #line 153 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp" responseStream << ( group_model->getName() ); responseStream << "\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
\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t"; #line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServer.cpsp" } responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "\t

Ein Node Server hinzufügen

\n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\tNur für Hedera Nodes\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\tNur für Gradido Nodes\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t\n"; responseStream << "\t
\n"; responseStream << "
\n"; responseStream << "\n"; // begin include footer.cpsp responseStream << "
\n"; responseStream << "

Copyright © Gradido 2020

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " "; #line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "

Login Server in Entwicklung

\n"; responseStream << "

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

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << ""; // end include footer.cpsp responseStream << "\n"; if (_compressResponse) _gzipStream.close(); }