Merge pull request #261 from gradido/login_group_add_host

Fix problems with transactions in docker environment
This commit is contained in:
einhornimmond 2021-04-29 14:37:17 +02:00 committed by GitHub
commit a5912f4ac5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 107 additions and 227 deletions

View File

@ -1,6 +0,0 @@
CREATE TABLE `address_types` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(25) NOT NULL,
`text` VARCHAR(255) NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,7 +0,0 @@
CREATE TABLE `operators` (
`id` INT NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(128) NOT NULL ,
`data_base64` VARCHAR(255) NOT NULL ,
PRIMARY KEY (`id`), UNIQUE (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -3,7 +3,7 @@ CREATE TABLE `transaction_creations` (
`transaction_id` int(10) unsigned NOT NULL,
`state_user_id` int(10) unsigned NOT NULL,
`amount` bigint(20) NOT NULL,
`ident_hash` binary(32) NOT NULL,
`ident_hash` binary(32) NULL,
`target_date` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

View File

@ -1,7 +0,0 @@
CREATE TABLE `state_balances` (
`id` int(11) NOT NULL,
`state_user_id` int(11) NOT NULL,
`modified` datetime NOT NULL,
`amount` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,10 +0,0 @@
CREATE TABLE `state_created` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`month` tinyint(4) NOT NULL,
`year` smallint(6) NOT NULL,
`state_user_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`short_ident_hash` int(11) NOT NULL,
PRIMARY KEY (`id`), INDEX(`short_ident_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,7 +0,0 @@
CREATE TABLE `state_group_addresses` (
`id` int(11) NOT NULL,
`state_group_id` int(11) NOT NULL,
`public_key` binary(32) NOT NULL,
`address_type_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,7 +0,0 @@
CREATE TABLE `state_group_relationships` (
`id` int(11) NOT NULL,
`state_group1_id` int(11) NOT NULL,
`state_group2_id` int(11) NOT NULL,
`state_relationship_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,8 +0,0 @@
CREATE TABLE `state_groups` (
`id` INT NOT NULL AUTO_INCREMENT,
`index_id` VARBINARY(64) NOT NULL,
`name` VARCHAR(50) NOT NULL,
`root_public_key` BINARY(32) NOT NULL,
`user_count` SMALLINT NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,6 +0,0 @@
CREATE TABLE `state_relationship_types` (
`id` int(11) NOT NULL,
`name` varchar(25) COLLATE utf8_bin NOT NULL,
`text` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,7 +0,0 @@
CREATE TABLE `state_users` (
`id` int(11) NOT NULL,
`index_id` smallint(6) NOT NULL,
`state_group_id` int(11) NOT NULL,
`public_key` binary(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,10 +0,0 @@
CREATE TABLE `transaction_creations` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`state_user_id` int(11) NOT NULL,
`amount` bigint(20) NOT NULL,
`ident_hash` binary(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,8 +0,0 @@
CREATE TABLE `transaction_group_addaddress` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`address_type_id` int(11) NOT NULL,
`public_key` binary(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,8 +0,0 @@
CREATE TABLE `transaction_group_allowtrades` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
`allow` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,9 +0,0 @@
CREATE TABLE `transaction_group_creates` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`group_public_key` binary(32) NOT NULL,
`state_group_id` int(11) COLLATE utf8_bin NOT NULL,
`name` varchar(64) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,11 +0,0 @@
CREATE TABLE `transaction_send_coins` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`state_user_id` int(11) NOT NULL,
`receiver_public_key` binary(32) NOT NULL,
`receiver_user_id` varbinary(64) NOT NULL,
`amount` bigint(20) NOT NULL,
`sender_final_balance` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,7 +0,0 @@
CREATE TABLE `transaction_signatures` (
`id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`signature` binary(64) NOT NULL,
`pubkey` binary(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,6 +0,0 @@
CREATE TABLE `transaction_types` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(24) NOT NULL,
`text` VARCHAR(255) NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,9 +0,0 @@
CREATE TABLE `transactions` (
`id` bigint(20) NOT NULL,
`state_group_id` int(11) NOT NULL,
`transaction_type_id` int(11) NOT NULL,
`tx_hash` binary(32) NOT NULL,
`received` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -427,6 +427,6 @@ return [
],
'ServerAdminEmail' => 'info@gradido.net',
'noReplyEmail' => 'no-reply@gradido.net',
'disableEmail' => false
'disableEmail' => true
];

View File

@ -0,0 +1,6 @@
INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES
(1, 'docker', 'docker gradido group', 'localhost', 'nginx', '/', 'gradido test group for docker and stage2 with blockchain db');

View File

@ -1,19 +1,19 @@
INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `home`, `description`) VALUES
(1, 'dockerStage2', 'docker stage2 gradido group', 'localhost', '/', 'gradido test group for docker and stage2');
INSERT INTO `hedera_ids` (`id`, `shardNum`, `realmNum`, `num`) VALUES
(1, 0, 0, 3),
(2, 0, 0, 3327),
(3, 0, 0, 413151);
INSERT INTO `node_servers` (`id`, `url`, `port`, `group_id`, `server_type`, `node_hedera_id`, `last_live_sign`) VALUES
(1, 'http://0.testnet.hedera.com', 50211, 0, 4, 1, '2000-01-01 00:00:00');
INSERT INTO `hedera_accounts` (`id`, `user_id`, `account_hedera_id`, `account_key_id`, `balance`, `network_type`, `updated`) VALUES
(1, 1, 2, 1, 1000000000000, 1, '2021-01-07 10:22:52');
INSERT INTO `hedera_topics` (`id`, `topic_hedera_id`, `name`, `auto_renew_account_hedera_id`, `auto_renew_period`, `group_id`, `admin_key_id`, `submit_key_id`, `current_timeout`, `sequence_number`, `running_hash`, `running_hash_version`, `updated`) VALUES
(1, 3, 'dockerStage2', 1, 7890000, 1, 0, 0, '2021-06-08 23:17:19', 0, NULL, 0, '2021-03-09 16:42:34');
INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES
(2, 'dockerStage2', 'docker stage2 gradido group', 'localhost', 'nginx', '/', 'gradido test group for docker and stage2');
INSERT INTO `hedera_ids` (`id`, `shardNum`, `realmNum`, `num`) VALUES
(1, 0, 0, 3),
(2, 0, 0, 3327),
(3, 0, 0, 413151);
INSERT INTO `node_servers` (`id`, `url`, `port`, `group_id`, `server_type`, `node_hedera_id`, `last_live_sign`) VALUES
(1, 'http://0.testnet.hedera.com', 50211, 0, 4, 2, '2000-01-01 00:00:00');
INSERT INTO `hedera_accounts` (`id`, `user_id`, `account_hedera_id`, `account_key_id`, `balance`, `network_type`, `updated`) VALUES
(1, 1, 2, 1, 1000000000000, 1, '2021-01-07 10:22:52');
INSERT INTO `hedera_topics` (`id`, `topic_hedera_id`, `name`, `auto_renew_account_hedera_id`, `auto_renew_period`, `group_id`, `admin_key_id`, `submit_key_id`, `current_timeout`, `sequence_number`, `running_hash`, `running_hash_version`, `updated`) VALUES
(1, 3, 'dockerStage2', 1, 7890000, 1, 0, 0, '2021-06-08 23:17:19', 0, NULL, 0, '2021-03-09 16:42:34');

View File

@ -4,10 +4,12 @@ cp build/conan* build_vol/
cd build_vol
cmake -DCMAKE_BUILD_TYPE=Debug ..
make -j${CPU_COUNT} protoc grpc_cpp_plugin
cd ..
if [ ! -d "./src/cpp/proto/hedera" ] ; then
if [ ! -f "./src/cpp/proto/gradido/TransactionBody.pb.h" ] ; then
chmod +x unix_parse_proto.sh
echo "parse proto files"
./unix_parse_proto.sh
fi
chmod +x compile_pot.sh

View File

@ -3,6 +3,7 @@ CREATE TABLE `groups` (
`alias` varchar(190) NOT NULL,
`name` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`host` varchar(255) DEFAULT "/",
`home` varchar(255) DEFAULT "/",
`description` text,
PRIMARY KEY (`id`),

View File

@ -1,6 +0,0 @@
INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `home`, `description`) VALUES
(2, 'docker', 'docker gradido group', 'localhost', '/', 'gradido test group for docker and stage2 with blockchain db');

View File

@ -5,10 +5,10 @@
#include "Poco/DeflatingStream.h"
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#line 7 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
#include "../controller/Group.h"
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 1 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
@ -27,7 +27,7 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
if (_compressResponse) response.set("Content-Encoding", "gzip");
Poco::Net::HTMLForm form(request, request.stream());
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#line 10 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
const char* pageName = "Gruppen";
@ -46,6 +46,7 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
alias,
form.get("group-name", ""),
form.get("group-url", ""),
form.get("group-host", ""),
form.get("group-home", ""),
form.get("group-desc", "")
);
@ -58,7 +59,7 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
//auto groups = controller::Group::load("gdd1");
//std::vector<Poco::SharedPtr<controller::Group>> groups;
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 3 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
std::ostream& _responseStream = response.send();
@ -73,20 +74,20 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
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"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#line 15 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
@ -95,29 +96,29 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
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"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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_login_server\\src\\cpsp\\header_large.cpsp"
#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";
@ -126,7 +127,7 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
#line 41 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#line 42 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
@ -140,44 +141,49 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
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 54 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 56 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 59 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 60 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 61 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 62 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 63 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 64 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 66 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#line 69 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
} responseStream << "\n";
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
@ -192,15 +198,17 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
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 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#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 84 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminGroups.cpsp"
#line 89 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\adminGroups.cpsp"
responseStream << ( gettext("Add Group") );
responseStream << "\">\n";
responseStream << "\t</form>\n";
@ -212,14 +220,14 @@ void AdminGroupsPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
#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_login_server\\src\\cpsp\\footer.cpsp"
#line 10 "F:\\Gradido\\gradido_local\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";

View File

@ -15,9 +15,9 @@ namespace controller {
}
Poco::AutoPtr<Group> Group::create(const std::string& alias, const std::string& name, const std::string& url, const std::string& home, const std::string& description)
Poco::AutoPtr<Group> Group::create(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description)
{
auto db = new model::table::Group(alias, name, url, home, description);
auto db = new model::table::Group(alias, name, url, host, home, description);
auto group = new Group(db);
return Poco::AutoPtr<Group>(group);
}
@ -51,25 +51,9 @@ namespace controller {
{
auto db = new model::table::Group();
std::vector<model::table::GroupTuple> group_list;
// throw an unresolved external symbol error
//group_list = db->loadAllFromDB<model::table::GroupTuple>();
// work around for not working call to loadAllFromDB
auto cm = ConnectionManager::getInstance();
auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
Poco::Data::Statement select(session);
select << "SELECT id, alias, name, url, home, description FROM " << db->getTableName()
, Poco::Data::Keywords::into(group_list);
size_t resultCount = 0;
try {
resultCount = select.execute();
}
catch (Poco::Exception& ex) {
printf("[Group::listAll] poco exception: %s\n", ex.displayText().data());
}
// work around end
group_list = db->loadAllFromDB<model::table::GroupTuple>();
std::vector<Poco::AutoPtr<Group>> resultVector;
resultVector.reserve(group_list.size());
@ -94,7 +78,11 @@ namespace controller {
}
}
auto model = getModel();
return JsonRequest(model->getUrl(), port);
std::string request_url = model->getHost();
if ("" == request_url) {
request_url = model->getUrl();
}
return JsonRequest(request_url, port);
}
std::string Group::getHost()

View File

@ -16,7 +16,7 @@ namespace controller {
~Group();
static Poco::AutoPtr<Group> create(const std::string& alias, const std::string& name, const std::string& url, const std::string& home, const std::string& description);
static Poco::AutoPtr<Group> create(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description);
static std::vector<Poco::AutoPtr<Group>> load(const std::string& alias);
static Poco::AutoPtr<Group> load(int id);

View File

@ -136,6 +136,8 @@ JsonRequestReturn JsonRequest::request(const char* methodName, const Poco::JSON:
}
catch (Poco::Exception& e) {
addError(new ParamError(functionName, "connect error to php server", e.displayText().data()));
addError(new ParamError(functionName, "host", mServerHost));
addError(new ParamError(functionName, "port", mServerPort));
sendErrorsAsEmail();
return JSON_REQUEST_CONNECT_ERROR;
}

View File

@ -8,15 +8,16 @@ namespace model {
{
}
Group::Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& home, const std::string& description)
: mAlias(alias), mName(name), mUrl(url), mHome(home), mDescription(description)
Group::Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description)
: mAlias(alias), mName(name), mUrl(url), mHost(host), mHome(home), mDescription(description)
{
}
Group::Group(GroupTuple tuple)
: ModelBase(tuple.get<0>()),
mAlias(tuple.get<1>()), mName(tuple.get<2>()), mUrl(tuple.get<3>()), mHome(tuple.get<4>()), mDescription(tuple.get<5>())
mAlias(tuple.get<1>()), mName(tuple.get<2>()), mUrl(tuple.get<3>()),
mHost(tuple.get<4>()), mHome(tuple.get<5>()), mDescription(tuple.get<6>())
{
}
@ -32,6 +33,7 @@ namespace model {
ss << "Alias: " << mAlias << std::endl;
ss << "Name: " << mName << std::endl;
ss << "Url: " << mUrl << std::endl;
ss << "Host: " << mHost << std::endl;
ss << "Home: " << mHome << std::endl;
ss << "Description:" << mDescription << std::endl;
return ss.str();
@ -41,9 +43,9 @@ namespace model {
{
Poco::Data::Statement select(session);
select << "SELECT id, alias, name, url, home, description FROM " << getTableName()
select << "SELECT id, alias, name, url, host, home, description FROM " << getTableName()
<< " where " << fieldName << " = ?"
, into(mID), into(mAlias), into(mName), into(mUrl), into(mHome), into(mDescription);
, into(mID), into(mAlias), into(mName), into(mUrl), into(mHost), into(mHome), into(mDescription);
return select;
}
@ -52,7 +54,7 @@ namespace model {
{
Poco::Data::Statement select(session);
select << "SELECT id, alias, name, url, home, description FROM " << getTableName();
select << "SELECT id, alias, name, url, host, home, description FROM " << getTableName();
return select;
}
@ -61,7 +63,7 @@ namespace model {
{
Poco::Data::Statement select(session);
// typedef Poco::Tuple<std::string, std::string, std::string, Poco::Nullable<Poco::Data::BLOB>, int> UserTuple;
select << "SELECT id, alias, name, url, home, description FROM " << getTableName()
select << "SELECT id, alias, name, url, host, home, description FROM " << getTableName()
<< " where " << fieldName << " LIKE ?";
return select;
@ -84,8 +86,8 @@ namespace model {
Poco::ScopedLock<Poco::Mutex> _lock(mWorkMutex);
insert << "INSERT INTO " << getTableName()
<< " (alias, name, url, home, description) VALUES(?,?,?,?,?)"
, use(mAlias), use(mName), use(mUrl), use(mHome), use(mDescription);
<< " (alias, name, url, host, home, description) VALUES(?,?,?,?,?,?)"
, use(mAlias), use(mName), use(mUrl), use(mHost), use(mHome), use(mDescription);
return insert;
}

View File

@ -7,13 +7,13 @@
namespace model {
namespace table {
typedef Poco::Tuple<int, std::string, std::string, std::string, std::string, std::string> GroupTuple;
typedef Poco::Tuple<int, std::string, std::string, std::string, std::string, std::string, std::string> GroupTuple;
class Group : public ModelBase
{
public:
Group();
Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& home, const std::string& description);
Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description);
Group(GroupTuple userTuple);
~Group();
@ -25,11 +25,13 @@ namespace model {
inline const std::string& getName() const { std::shared_lock<std::shared_mutex> _lock(mSharedMutex); return mName; }
inline const std::string& getDescription() const { std::shared_lock<std::shared_mutex> _lock(mSharedMutex); return mDescription; }
inline const std::string& getUrl() const { std::shared_lock<std::shared_mutex> _lock(mSharedMutex); return mUrl; }
inline const std::string& getHost() const { SHARED_LOCK; return mHost; }
inline const std::string& getHome() const { SHARED_LOCK; return mHome; }
inline void setName(const std::string& name) { std::unique_lock<std::shared_mutex> _lock(mSharedMutex); mName = name; }
inline void setDescription(const std::string& desc) { std::unique_lock<std::shared_mutex> _lock(mSharedMutex); mDescription = desc; }
inline void setUrl(const std::string& url) { std::unique_lock<std::shared_mutex> _lock(mSharedMutex); mUrl = url; }
inline void setHost(const std::string& host) { UNIQUE_LOCK; mHost = host; }
inline void setHome(const std::string& home) { UNIQUE_LOCK; mHome = home; }
protected:
@ -42,6 +44,7 @@ namespace model {
std::string mAlias;
std::string mName;
std::string mUrl;
std::string mHost;
std::string mHome;
std::string mDescription;

View File

@ -25,6 +25,7 @@
alias,
form.get("group-name", ""),
form.get("group-url", ""),
form.get("group-host", ""),
form.get("group-home", ""),
form.get("group-desc", "")
);
@ -50,6 +51,7 @@
<div class="cell header-cell c2">Name</div>
<div class="cell header-cell c2">Alias</div>
<div class="cell header-cell c3">Url</div>
<div class="cell header-cell c3" title="Host for json request, needed for example for docker">Host</div>
<div class="cell header-cell c2">Home</div>
<div class="cell header-cell c5"><%= gettext("Description") %></div>
</div>
@ -60,6 +62,7 @@
<div class="cell c2"><%= group_model->getName() %></div>
<div class="cell c2"><%= group_model->getAlias() %></div>
<div class="cell c3"><%= group_model->getUrl() %></div>
<div class="cell c3"><%= group_model->getHost() %></div>
<div class="cell c2"><%= group_model->getHome() %></div>
<div class="cell c5"><%= group_model->getDescription()%></div>
</div>
@ -77,6 +80,8 @@
<input class="form-control" id="group-alias" type="text" name="group-alias"/>
<label class="form-label" for="group-url">Url</label>
<input class="form-control" id="group-url" type="text" name="group-url"/>
<label class="form-label" for="group-host">Host</label>
<input class="form-control" id="group-host" type="text" name="group-host"/>
<label class="form-label" for="group-home" title="Startpage link">Home</label>
<input class="form-control" id="group-home" type="text" name="group-home"/>
<label class="form-label" for="group-desc"><%= gettext("Description")%></label>

View File

@ -13,9 +13,11 @@ COPY ./mariadb/setup_dbs.sql a_setup_dbs.sql
# login server db
COPY ./login_server/skeema/ .
RUN cd ./gradido_login/ && for f in *.sql; do cp -- "$f" "../b_$f"; sed -i '1i use gradido_login;' "../b_$f"; done
COPY ./configs/login_server/setup_db_tables ./gradido_login/insert
RUN cd ./gradido_login/insert && for f in *.sql; do cp -- "$f" "../../c_$f"; sed -i '1i use gradido_login;' "../../c_$f"; done
# community server db
COPY ./community_server/skeema/ .
COPY ./community_server/db/skeema/ .
RUN cd ./gradido_community/ && for f in *.sql; do cp -- "$f" "../d_$f"; sed -i '1i use gradido_community;' "../d_$f"; done
COPY ./community_server/db/setup_db_tables ./gradido_community/insert
RUN cd ./gradido_community/insert && for f in *.sql; do cp -- "$f" "../../e_$f"; sed -i '1i use gradido_community;' "../../e_$f"; done

View File

@ -54,7 +54,7 @@ skeema push -p$LOGIN_DB_PASSWD
cd ../../..
# populate db of community-server
cd community_server/skeema
cd community_server/db/skeema
sudo cat << EOF > .skeema
[production]
flavor=mariadb:10.3.25

View File

@ -22,7 +22,7 @@ WORKDIR ${DOCKER_WORKDIR}
COPY ./skeema/.skeema .
COPY ./login_server/skeema/ .
COPY ./mariadb/.skeema.login ./gradido_login/.skeema
COPY ./community_server/skeema/ .
COPY ./community_server/db/skeema/ .
COPY ./mariadb/.skeema.community ./gradido_community/.skeema
CMD skeema push --allow-unsafe