mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
update pages and session for using caller_url (for vue-client and maybe other later)
This commit is contained in:
parent
01d00ae309
commit
5bbc7cace5
@ -54,6 +54,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
std::string memo = "";
|
||||
bool hasErrors = false;
|
||||
bool enableLogout = true;
|
||||
bool enableSign = true;
|
||||
int skip_count = 0;
|
||||
int pending_task_id = 0;
|
||||
|
||||
@ -63,7 +64,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
}
|
||||
|
||||
PageState state = PAGE_NO_TRANSACTIONS;
|
||||
|
||||
|
||||
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;
|
||||
@ -204,6 +205,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
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.")));
|
||||
@ -265,10 +267,12 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
if(sumTransactions == 0)
|
||||
{
|
||||
auto lastExternReferer = mSession->getLastReferer();
|
||||
auto callerUri = mSession->getCallerUri();
|
||||
//lastExternReferer = "";
|
||||
account_user->reload();
|
||||
if(lastExternReferer != "" && lastExternReferer.find("transaction-send-coins") == std::string::npos) {
|
||||
//printf("last extern referer: %s\n", lastExternReferer.data());
|
||||
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");
|
||||
@ -294,6 +298,14 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
//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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -475,7 +487,6 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
responseStream << " </div>";
|
||||
// end include header_navi_chr.cpsp
|
||||
responseStream << "\n";
|
||||
<<<<<<< HEAD
|
||||
/*
|
||||
#line 126 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(transaction_finalize_run) { responseStream << "\n";
|
||||
@ -564,157 +575,157 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
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 203 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 212 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(sumTransactions == 0) { responseStream << "\n";
|
||||
responseStream << "\t\t";
|
||||
#line 204 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 213 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Es gibt zurzeit keine Transaktionen zum bestätigen") );
|
||||
responseStream << "\n";
|
||||
responseStream << " ";
|
||||
#line 205 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 214 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\t\n";
|
||||
responseStream << "\t\t<p>";
|
||||
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 215 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( sumTransactions );
|
||||
responseStream << " ";
|
||||
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 215 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Transaktionen warten darauf bestätigt zu werden.") );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 207 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 216 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(skip_count > 0) { responseStream << "\n";
|
||||
responseStream << "\t\t\t<p>";
|
||||
#line 208 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( skip_count );
|
||||
responseStream << " ";
|
||||
#line 208 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Transaktionen übersprungen.") );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t";
|
||||
#line 209 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 218 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t";
|
||||
#line 210 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 219 "F:\\Gradido\\gradido_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 215 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 224 "F:\\Gradido\\gradido_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 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 226 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(state == PAGE_TRANSACTION_TRANSFER) {
|
||||
auto transferTransaction = transaction_body->getTransferTransaction();
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t<p>";
|
||||
#line 220 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 229 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Ü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 223 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 232 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Konto") );
|
||||
responseStream << "</span>\n";
|
||||
responseStream << "\t\t\t\t<span class=\"content-cell\">";
|
||||
#line 224 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 233 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Gradido") );
|
||||
responseStream << "</span>\n";
|
||||
responseStream << "\t\t\t </div>\n";
|
||||
responseStream << "\t\t\t ";
|
||||
#line 226 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 235 "F:\\Gradido\\gradido_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 227 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 236 "F:\\Gradido\\gradido_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 229 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 238 "F:\\Gradido\\gradido_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 231 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 240 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t\t";
|
||||
#line 232 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 241 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( transferTransaction->getKontoNameCell(i) );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t\t";
|
||||
#line 233 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 242 "F:\\Gradido\\gradido_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 235 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 244 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t</div>\n";
|
||||
responseStream << "\t\t\t ";
|
||||
#line 237 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 246 "F:\\Gradido\\gradido_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 241 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 250 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Schö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 244 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 253 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Konto") );
|
||||
responseStream << "</span>\n";
|
||||
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
|
||||
#line 245 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 254 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Zieldatum") );
|
||||
responseStream << "</span>\n";
|
||||
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
|
||||
#line 246 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 255 "F:\\Gradido\\gradido_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 249 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 258 "F:\\Gradido\\gradido_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 252 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 261 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( user_model->getFirstName() );
|
||||
responseStream << " ";
|
||||
#line 252 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 261 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( user_model->getLastName() );
|
||||
responseStream << " <";
|
||||
#line 252 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 261 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( user_model->getEmail() );
|
||||
responseStream << "></span>\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 253 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 262 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t\t<span class=\"content-cell\">0x";
|
||||
#line 254 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 263 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( creationTransaction->getPublicHex() );
|
||||
responseStream << "</span>\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 255 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 264 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t<span class=\"content-cell\">";
|
||||
#line 256 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 265 "F:\\Gradido\\gradido_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 257 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 266 "F:\\Gradido\\gradido_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 260 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 269 "F:\\Gradido\\gradido_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());
|
||||
@ -729,112 +740,112 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
}
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t <p>";
|
||||
#line 273 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 282 "F:\\Gradido\\gradido_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 275 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 284 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(!user.isNull()) { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t<b>Benutzer:</b> ";
|
||||
#line 276 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( user->getEmailWithNames() );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 277 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 286 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t<b>Account public key:</b> ";
|
||||
#line 278 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 287 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( groupMemberUpdateTransaction->getPublicKeyHex() );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 279 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 288 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 280 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 289 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(!group_model.isNull()) { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t<p><b>";
|
||||
#line 281 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 290 "F:\\Gradido\\gradido_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 283 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 292 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Name") );
|
||||
responseStream << ": ";
|
||||
#line 283 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 292 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( group_model->getName() );
|
||||
responseStream << "</li>\n";
|
||||
responseStream << "\t\t\t\t\t\t<li>";
|
||||
#line 284 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 293 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Alias") );
|
||||
responseStream << ": ";
|
||||
#line 284 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 293 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( group_model->getAlias() );
|
||||
responseStream << "</li>\n";
|
||||
responseStream << "\t\t\t\t\t\t<li>";
|
||||
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 294 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Url") );
|
||||
responseStream << ": <a href=\"";
|
||||
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 294 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( group_model->getUrl() );
|
||||
responseStream << "/pages/visitor\" target=\"_blank\">";
|
||||
#line 285 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 294 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( group_model->getUrl() );
|
||||
responseStream << "</a></li>\n";
|
||||
responseStream << "\t\t\t\t\t\t<li>";
|
||||
#line 286 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 295 "F:\\Gradido\\gradido_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 288 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 297 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 289 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 298 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Unbekannte Gruppe") );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 290 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 299 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 291 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 300 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Es haben bereits ") );
|
||||
#line 291 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 300 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( std::to_string(transaction->getSignCount()) );
|
||||
#line 291 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 300 "F:\\Gradido\\gradido_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 294 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 303 "F:\\Gradido\\gradido_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 295 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 304 "F:\\Gradido\\gradido_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 295 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 304 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( em->getAdminReceiver());
|
||||
responseStream << "?subject=Corrupt User Data&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 295 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 304 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << (gettext("Support") );
|
||||
responseStream << "</a></p>\n";
|
||||
responseStream << "\t\t\t ";
|
||||
#line 296 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 305 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t ";
|
||||
#line 297 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 306 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(PAGE_NO_TRANSACTIONS == state) { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t<a href=\"";
|
||||
#line 298 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 307 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "\">";
|
||||
#line 298 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 307 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Zurück") );
|
||||
responseStream << "</a>\n";
|
||||
responseStream << "\t\t\t ";
|
||||
#line 299 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 308 "F:\\Gradido\\gradido_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";
|
||||
@ -842,7 +853,7 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
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 305 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 314 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( user_model->getNameWithEmailHtml() );
|
||||
responseStream << "</span>\n";
|
||||
responseStream << "\t\t\t\t </div>\n";
|
||||
@ -853,62 +864,62 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
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 313 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 322 "F:\\Gradido\\gradido_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 317 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 326 "F:\\Gradido\\gradido_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 318 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 327 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( transaction->getModel()->getID() );
|
||||
responseStream << "\">\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 319 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 328 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t<input type=\"hidden\" name=\"skip-count\" value=\"";
|
||||
#line 320 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 329 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( skip_count );
|
||||
responseStream << "\">\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 321 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 330 "F:\\Gradido\\gradido_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 323 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 332 "F:\\Gradido\\gradido_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 324 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 333 "F:\\Gradido\\gradido_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 326 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 335 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 327 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
if(PAGE_USER_DATA_CORRUPTED != state && user_model->isEmailChecked()) { responseStream << "\n";
|
||||
#line 336 "F:\\Gradido\\gradido_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 330 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 339 "F:\\Gradido\\gradido_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 332 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 341 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 333 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 342 "F:\\Gradido\\gradido_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 336 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 345 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Transaktion verwerfen") );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t</button>\n";
|
||||
@ -925,21 +936,21 @@ void CheckTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
||||
responseStream << "\t\t\t</form>\n";
|
||||
responseStream << "\t\t\t\t\t\t</button>\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 338 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 347 "F:\\Gradido\\gradido_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 341 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 350 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
responseStream << ( gettext("Transaktion überspringen") );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t\t</button>\n";
|
||||
responseStream << "\t\t\t\t\t";
|
||||
#line 343 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 352 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t\t\t</form>\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 345 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
#line 354 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkTransaction.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << "\t\t</div>\n";
|
||||
responseStream << "\t</div>\n";
|
||||
|
||||
@ -11,12 +11,15 @@
|
||||
|
||||
#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_login_server\\src\\cpsp\\header.cpsp"
|
||||
|
||||
#include "../ServerConfig.h"
|
||||
@ -36,12 +39,16 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||
|
||||
Poco::Net::HTMLForm form(request, request.stream());
|
||||
#line 19 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 22 "F:\\Gradido\\gradido_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);
|
||||
@ -58,7 +65,10 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
*/
|
||||
|
||||
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 != "") {
|
||||
@ -81,7 +91,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
*/
|
||||
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);
|
||||
@ -105,7 +115,43 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
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_ip = request.clientAddress();
|
||||
std::string clientIpString = "client ip: ";
|
||||
clientIpString += client_ip.toString();
|
||||
Poco::Logger::get("requestLog").information(clientIpString);
|
||||
// debugging end
|
||||
auto user_host = request.clientAddress().host();
|
||||
mSession->setClientIp(user_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;
|
||||
try {
|
||||
user_state = mSession->loadUser(email, password);
|
||||
@ -162,41 +208,47 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
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(lastExternReferer != "") {
|
||||
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 != "/" &&
|
||||
}
|
||||
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()) {
|
||||
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 {
|
||||
}
|
||||
else
|
||||
{
|
||||
if(user->getModel()->getGroupId() != 0) {
|
||||
printf("redirect to: %s/\n", user->getGroupBaseUrl().data());
|
||||
|
||||
auto group = controller::Group::load(user->getModel()->getGroupId());
|
||||
if(!group.isNull() && group->getModel()) {
|
||||
JsonRequest json_request(group->getModel()->getUrl(), 443);
|
||||
Poco::JSON::Object params;
|
||||
params.set("session_id", mSession->getHandle());
|
||||
params.set("method", "setSessionId");
|
||||
auto result = json_request.request("setSessionId", params);
|
||||
if(JSON_REQUEST_RETURN_OK != result) {
|
||||
addError(new Error("login", "error setting session id"));
|
||||
addError(new ParamError("login", "community server url", group->getModel()->getUrl()));
|
||||
getErrors(&json_request);
|
||||
sendErrorsAsEmail();
|
||||
}
|
||||
}
|
||||
|
||||
response.redirect(user->getGroupBaseUrl() + "/");
|
||||
} else {
|
||||
response.redirect("https://" + request.getHost() + "/");
|
||||
@ -205,7 +257,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
return;
|
||||
}
|
||||
|
||||
} else if(!langUpdatedByBtn) {
|
||||
} else if(!langUpdatedByBtn && caller_uri == "") {
|
||||
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")), false);
|
||||
}
|
||||
|
||||
@ -285,11 +337,11 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << " </div>";
|
||||
// end include header.cpsp
|
||||
responseStream << "\n";
|
||||
#line 197 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 229 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( getErrorsHtml() );
|
||||
responseStream << "\n";
|
||||
responseStream << "<!--<input type=\"hidden\" name=\"lang\" value=\"";
|
||||
#line 198 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 230 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( LanguageManager::keyForLanguage(lang) );
|
||||
responseStream << "\">-->\n";
|
||||
responseStream << "<div class=\"center-form-container\">\n";
|
||||
@ -323,22 +375,22 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << "\n";
|
||||
responseStream << " <div class=\"center-form-form\">\n";
|
||||
responseStream << "\t\t<form action=\"";
|
||||
#line 202 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 234 "F:\\Gradido\\gradido_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 203 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 235 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext("E-Mail") );
|
||||
responseStream << "\" value=\"";
|
||||
#line 203 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 235 "F:\\Gradido\\gradido_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 204 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 236 "F:\\Gradido\\gradido_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 205 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 237 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext(" Login ") );
|
||||
responseStream << "</button>\n";
|
||||
responseStream << "\t\t</form>\n";
|
||||
@ -346,7 +398,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << " <div class=\"center-form-bottom\">\n";
|
||||
responseStream << " <div class=\"signup-link\">\n";
|
||||
responseStream << "\t <p>";
|
||||
#line 210 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 242 "F:\\Gradido\\gradido_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=\"";
|
||||
@ -354,17 +406,17 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << ( ServerConfig::g_serverPath );
|
||||
responseStream << "/registerDirect\">\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 212 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 244 "F:\\Gradido\\gradido_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 216 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 248 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( getBaseUrl() );
|
||||
responseStream << "/resetPassword\">";
|
||||
#line 216 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 248 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Passwort vergessen") );
|
||||
responseStream << "</a>\n";
|
||||
responseStream << "\t\t</div>\n";
|
||||
|
||||
@ -236,6 +236,9 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
|
||||
//printf("[PageRequestHandlerFactory] go to dashboard page with user\n");
|
||||
return basicSetup(new DashboardPage(s), request, timeUsed);
|
||||
}
|
||||
if (url_first_part == "/login" || url_first_part == "/") {
|
||||
return basicSetup(new LoginPage(s), request, timeUsed);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
@ -31,8 +31,12 @@ void RegisterDirectPage::handleRequest(Poco::Net::HTTPServerRequest& request, Po
|
||||
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örter sind nicht identisch."), false);
|
||||
} else {
|
||||
@ -41,23 +45,38 @@ void RegisterDirectPage::handleRequest(Poco::Net::HTTPServerRequest& request, Po
|
||||
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", ""),
|
||||
form.get("register-email", ""),
|
||||
form.get("register-password", ""),
|
||||
getBaseUrl()
|
||||
);
|
||||
userReturned = session->createUserDirect(
|
||||
form.get("register-first-name", ""),
|
||||
form.get("register-last-name", ""),
|
||||
email,
|
||||
password,
|
||||
getBaseUrl()
|
||||
);
|
||||
}
|
||||
|
||||
getErrors(session);
|
||||
|
||||
if(!errorCount()) {
|
||||
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;
|
||||
}
|
||||
response.redirect(getBaseUrl() + "/userUpdateGroup");
|
||||
return;
|
||||
}
|
||||
@ -127,7 +146,7 @@ void RegisterDirectPage::handleRequest(Poco::Net::HTTPServerRequest& request, Po
|
||||
responseStream << " </div>";
|
||||
// end include header.cpsp
|
||||
responseStream << "\n";
|
||||
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp"
|
||||
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp"
|
||||
responseStream << ( getErrorsHtml() );
|
||||
responseStream << "\n";
|
||||
responseStream << "<div class=\"center-form-container\">\n";
|
||||
@ -139,18 +158,18 @@ void RegisterDirectPage::handleRequest(Poco::Net::HTTPServerRequest& request, Po
|
||||
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 67 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp"
|
||||
responseStream << ( !form.empty() ? form.get("register-first-name") : "" );
|
||||
#line 86 "F:\\Gradido\\gradido_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 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp"
|
||||
responseStream << ( !form.empty() ? form.get("register-last-name") : "" );
|
||||
#line 88 "F:\\Gradido\\gradido_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 71 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\registerDirect.cpsp"
|
||||
responseStream << ( !form.empty() ? form.get("register-email") : "" );
|
||||
#line 90 "F:\\Gradido\\gradido_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";
|
||||
|
||||
@ -181,6 +181,9 @@ public:
|
||||
inline void setLastReferer(const std::string& lastReferer) { mLastExternReferer = lastReferer; }
|
||||
inline const std::string& getLastReferer() const { return mLastExternReferer; }
|
||||
|
||||
inline void setCallerUri(const std::string& callerUri) { mCallerUri = callerUri; }
|
||||
inline const std::string& getCallerUri() { return mCallerUri; }
|
||||
|
||||
protected:
|
||||
void updateTimeout();
|
||||
inline void setHandle(int newHandle) { mHandleId = newHandle; }
|
||||
@ -199,6 +202,8 @@ private:
|
||||
Poco::DateTime mLastActivity;
|
||||
Poco::Net::IPAddress mClientLoginIP;
|
||||
std::string mLastExternReferer;
|
||||
//! should be used by vue-client and similar clients
|
||||
std::string mCallerUri;
|
||||
Poco::AutoPtr<controller::EmailVerificationCode> mEmailVerificationCodeObject;
|
||||
std::shared_mutex mSharedMutex;
|
||||
|
||||
|
||||
@ -36,6 +36,7 @@ enum PageState {
|
||||
std::string memo = "";
|
||||
bool hasErrors = false;
|
||||
bool enableLogout = true;
|
||||
bool enableSign = true;
|
||||
int skip_count = 0;
|
||||
int pending_task_id = 0;
|
||||
|
||||
@ -45,7 +46,7 @@ enum PageState {
|
||||
}
|
||||
|
||||
PageState state = PAGE_NO_TRANSACTIONS;
|
||||
|
||||
|
||||
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;
|
||||
@ -186,6 +187,7 @@ enum PageState {
|
||||
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.")));
|
||||
@ -247,10 +249,12 @@ enum PageState {
|
||||
if(sumTransactions == 0)
|
||||
{
|
||||
auto lastExternReferer = mSession->getLastReferer();
|
||||
auto callerUri = mSession->getCallerUri();
|
||||
//lastExternReferer = "";
|
||||
account_user->reload();
|
||||
if(lastExternReferer != "" && lastExternReferer.find("transaction-send-coins") == std::string::npos) {
|
||||
//printf("last extern referer: %s\n", lastExternReferer.data());
|
||||
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");
|
||||
@ -276,6 +280,14 @@ enum PageState {
|
||||
//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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -464,7 +476,7 @@ enum PageState {
|
||||
<input type="password" class="form-control" id="sign-password" name="sign-password" placeholder="<%= gettext("Passwort") %>">
|
||||
</div>
|
||||
<% } %>
|
||||
<% if(PAGE_USER_DATA_CORRUPTED != state && user_model->isEmailChecked()) { %>
|
||||
<% if(enableSign && !hasErrors) { %>
|
||||
<button type="submit" class="form-button" name="ok" value="ok">
|
||||
<i class="material-icons-outlined">verified_user</i>
|
||||
<%= gettext("Transaktion unterzeichnen") %>
|
||||
|
||||
@ -9,18 +9,25 @@
|
||||
|
||||
#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"
|
||||
|
||||
|
||||
%>
|
||||
<%%
|
||||
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);
|
||||
@ -32,7 +39,10 @@
|
||||
}
|
||||
|
||||
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 != "") {
|
||||
@ -55,7 +65,7 @@
|
||||
*/
|
||||
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);
|
||||
@ -81,7 +91,44 @@
|
||||
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_ip = request.clientAddress();
|
||||
std::string clientIpString = "client ip: ";
|
||||
clientIpString += client_ip.toString();
|
||||
Poco::Logger::get("requestLog").information(clientIpString);
|
||||
// debugging end
|
||||
auto user_host = request.clientAddress().host();
|
||||
mSession->setClientIp(user_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;
|
||||
try {
|
||||
user_state = mSession->loadUser(email, password);
|
||||
@ -138,41 +185,47 @@
|
||||
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(lastExternReferer != "") {
|
||||
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 != "/" &&
|
||||
}
|
||||
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()) {
|
||||
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 {
|
||||
}
|
||||
else
|
||||
{
|
||||
if(user->getModel()->getGroupId() != 0) {
|
||||
printf("redirect to: %s/\n", user->getGroupBaseUrl().data());
|
||||
|
||||
auto group = controller::Group::load(user->getModel()->getGroupId());
|
||||
if(!group.isNull() && group->getModel()) {
|
||||
JsonRequest json_request(group->getModel()->getUrl(), 443);
|
||||
Poco::JSON::Object params;
|
||||
params.set("session_id", mSession->getHandle());
|
||||
params.set("method", "setSessionId");
|
||||
auto result = json_request.request("setSessionId", params);
|
||||
if(JSON_REQUEST_RETURN_OK != result) {
|
||||
addError(new Error("login", "error setting session id"));
|
||||
addError(new ParamError("login", "community server url", group->getModel()->getUrl()));
|
||||
getErrors(&json_request);
|
||||
sendErrorsAsEmail();
|
||||
}
|
||||
}
|
||||
|
||||
response.redirect(user->getGroupBaseUrl() + "/");
|
||||
} else {
|
||||
response.redirect("https://" + request.getHost() + "/");
|
||||
@ -181,7 +234,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
} else if(!langUpdatedByBtn) {
|
||||
} else if(!langUpdatedByBtn && caller_uri == "") {
|
||||
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")), false);
|
||||
}
|
||||
|
||||
|
||||
@ -15,8 +15,12 @@
|
||||
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örter sind nicht identisch."), false);
|
||||
} else {
|
||||
@ -25,23 +29,38 @@
|
||||
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", ""),
|
||||
form.get("register-email", ""),
|
||||
form.get("register-password", ""),
|
||||
getBaseUrl()
|
||||
);
|
||||
userReturned = session->createUserDirect(
|
||||
form.get("register-first-name", ""),
|
||||
form.get("register-last-name", ""),
|
||||
email,
|
||||
password,
|
||||
getBaseUrl()
|
||||
);
|
||||
}
|
||||
|
||||
getErrors(session);
|
||||
|
||||
if(!errorCount()) {
|
||||
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;
|
||||
}
|
||||
response.redirect(getBaseUrl() + "/userUpdateGroup");
|
||||
return;
|
||||
}
|
||||
@ -64,11 +83,11 @@
|
||||
<form method="POST">
|
||||
<p>Bitte gib deine Daten um einen Account anzulegen:</p>
|
||||
<label class="form-label" for="register-first-name">Vorname</label>
|
||||
<input class="form-control" id="register-first-name" type="text" name="register-first-name" value="<%= !form.empty() ? form.get("register-first-name") : "" %>"/>
|
||||
<input class="form-control" id="register-first-name" type="text" name="register-first-name" value="<%= !form.empty() ? form.get("register-first-name", "") : "" %>"/>
|
||||
<label class="form-label" for="register-last-name">Nachname</label>
|
||||
<input class="form-control" id="register-last-name" type="text" name="register-last-name" value="<%= !form.empty() ? form.get("register-last-name") : "" %>"/>
|
||||
<input class="form-control" id="register-last-name" type="text" name="register-last-name" value="<%= !form.empty() ? form.get("register-last-name", "") : "" %>"/>
|
||||
<label class="form-label" for="register-email">E-Mail</label>
|
||||
<input class="form-control" id="register-email" type="email" name="register-email" value="<%= !form.empty() ? form.get("register-email") : "" %>"/>
|
||||
<input class="form-control" id="register-email" type="email" name="register-email" value="<%= !form.empty() ? form.get("register-email", "") : "" %>"/>
|
||||
<label class="form-label" for="register-password">Passwort</label>
|
||||
<input class="form-control" id="register-password" type="password" name="register-password"/>
|
||||
<label class="form-label" for="register-password">Passwort Bestätigung</label>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user