mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
adding json request (currently not used), removing cakephp cookie by login, adding no email option in properties for testing
This commit is contained in:
parent
c9ee1d9178
commit
eb1391f003
@ -13,7 +13,8 @@
|
|||||||
enum PageState
|
enum PageState
|
||||||
{
|
{
|
||||||
MAIL_NOT_SEND,
|
MAIL_NOT_SEND,
|
||||||
ASK_VERIFICATION_CODE
|
ASK_VERIFICATION_CODE,
|
||||||
|
KONTO_ALREADY_EXIST
|
||||||
};
|
};
|
||||||
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||||
|
|
||||||
Poco::Net::HTMLForm form(request, request.stream());
|
Poco::Net::HTMLForm form(request, request.stream());
|
||||||
#line 17 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 18 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
|
|
||||||
const char* pageName = "Email Verification";
|
const char* pageName = "Email Verification";
|
||||||
auto lm = LanguageManager::getInstance();
|
auto lm = LanguageManager::getInstance();
|
||||||
@ -119,7 +120,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << " <div class=\"col-12 logo-section\">\n";
|
responseStream << " <div class=\"col-12 logo-section\">\n";
|
||||||
responseStream << " <a href=\"../../index.html\" class=\"logo\">\n";
|
responseStream << " <a href=\"../../index.html\" class=\"logo\">\n";
|
||||||
responseStream << " <img src=\"";
|
responseStream << " <img src=\"";
|
||||||
#line 60 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 61 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "img/logo_schrift.webp\" alt=\"logo\" />\n";
|
responseStream << "img/logo_schrift.webp\" alt=\"logo\" />\n";
|
||||||
responseStream << " </a>\n";
|
responseStream << " </a>\n";
|
||||||
@ -130,25 +131,25 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << " <div class=\"grid\">\n";
|
responseStream << " <div class=\"grid\">\n";
|
||||||
responseStream << " <div class=\"center-ul-container\">\n";
|
responseStream << " <div class=\"center-ul-container\">\n";
|
||||||
responseStream << " ";
|
responseStream << " ";
|
||||||
#line 68 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( getErrorsHtml() );
|
responseStream << ( getErrorsHtml() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " <div class=\"grid-body\">\n";
|
responseStream << " <div class=\"grid-body\">\n";
|
||||||
responseStream << " <form action=\"";
|
responseStream << " <form action=\"";
|
||||||
#line 71 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 72 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "account/checkEmail\" method=\"GET\">\n";
|
responseStream << "account/checkEmail\" method=\"GET\">\n";
|
||||||
responseStream << " <div class=\"row pull-right-row\">\n";
|
responseStream << " <div class=\"row pull-right-row\">\n";
|
||||||
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||||
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||||
responseStream << " <button id=\"flag-england\" name=\"lang-btn\" value=\"en\" title=\"English\" type=\"submit\" ";
|
responseStream << " <button id=\"flag-england\" name=\"lang-btn\" value=\"en\" title=\"English\" type=\"submit\" ";
|
||||||
#line 75 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
if(lang != LANG_EN) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
if(lang != LANG_EN) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
||||||
#line 75 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
}
|
}
|
||||||
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
||||||
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
} responseStream << ">\n";
|
} responseStream << ">\n";
|
||||||
responseStream << " <span class=\"flag-england\"></span>\n";
|
responseStream << " <span class=\"flag-england\"></span>\n";
|
||||||
responseStream << " </button>\n";
|
responseStream << " </button>\n";
|
||||||
@ -157,12 +158,12 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||||
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||||
responseStream << " <button id=\"flag-germany\" name=\"lang-btn\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
|
responseStream << " <button id=\"flag-germany\" name=\"lang-btn\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
|
||||||
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 84 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
if(lang != LANG_DE) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
if(lang != LANG_DE) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
||||||
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 84 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
}
|
}
|
||||||
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
||||||
#line 84 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 85 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
} responseStream << ">\n";
|
} responseStream << ">\n";
|
||||||
responseStream << " <span class=\"flag-germany\"></span>\n";
|
responseStream << " <span class=\"flag-germany\"></span>\n";
|
||||||
responseStream << " </button>\n";
|
responseStream << " </button>\n";
|
||||||
@ -172,51 +173,51 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
|||||||
responseStream << " <div class=\"item-wrapper\">\n";
|
responseStream << " <div class=\"item-wrapper\">\n";
|
||||||
responseStream << " <div class=\"form-group\">\n";
|
responseStream << " <div class=\"form-group\">\n";
|
||||||
responseStream << " <label for=\"email-verification-code\">";
|
responseStream << " <label for=\"email-verification-code\">";
|
||||||
#line 92 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Bitte gebe deinen E-Mail Verification Code ein:"));
|
responseStream << ( langCatalog->gettext("Bitte gebe deinen E-Mail Verification Code ein:"));
|
||||||
responseStream << "</label>\n";
|
responseStream << "</label>\n";
|
||||||
responseStream << " <input type=\"text\" class=\"form-control\" name=\"email-verification-code\" id=\"email-verification-code\" placeholder=\"";
|
responseStream << " <input type=\"text\" class=\"form-control\" name=\"email-verification-code\" id=\"email-verification-code\" placeholder=\"";
|
||||||
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Email Verification Code"));
|
responseStream << ( langCatalog->gettext("Email Verification Code"));
|
||||||
responseStream << "\" ";
|
responseStream << "\" ";
|
||||||
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
if(verificationCode) { responseStream << "value=\"";
|
if(verificationCode) { responseStream << "value=\"";
|
||||||
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( verificationCode );
|
responseStream << ( verificationCode );
|
||||||
responseStream << "\" ";
|
responseStream << "\" ";
|
||||||
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
} responseStream << ">\n";
|
} responseStream << ">\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " <button type=\"submit\" class=\"btn btn-sm btn-primary\">";
|
responseStream << " <button type=\"submit\" class=\"btn btn-sm btn-primary\">";
|
||||||
#line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 96 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Überprüfe Code"));
|
responseStream << ( langCatalog->gettext("Überprüfe Code"));
|
||||||
responseStream << "</button>\n";
|
responseStream << "</button>\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " </form>\n";
|
responseStream << " </form>\n";
|
||||||
responseStream << " <!--<p class=\"margin-top-10\">\n";
|
responseStream << " <!--<p class=\"margin-top-10\">\n";
|
||||||
responseStream << "\t\t\t\t";
|
responseStream << "\t\t\t\t";
|
||||||
#line 99 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 100 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Du hast bisher keinen Code erhalten?"));
|
responseStream << ( langCatalog->gettext("Du hast bisher keinen Code erhalten?"));
|
||||||
responseStream << "<br> \n";
|
responseStream << "<br> \n";
|
||||||
responseStream << "\t\t\t\t";
|
responseStream << "\t\t\t\t";
|
||||||
#line 100 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 101 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("E-Mail erneut zuschicken (in Arbeit)"));
|
responseStream << ( langCatalog->gettext("E-Mail erneut zuschicken (in Arbeit)"));
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t\t </p>-->\n";
|
responseStream << "\t\t\t </p>-->\n";
|
||||||
responseStream << " <p class=\"margin-top-10\">\n";
|
responseStream << " <p class=\"margin-top-10\">\n";
|
||||||
responseStream << "\t\t\t\t";
|
responseStream << "\t\t\t\t";
|
||||||
#line 103 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Funktioniert dein E-Mail Verification Code nicht?"));
|
responseStream << ( langCatalog->gettext("Funktioniert dein E-Mail Verification Code nicht?"));
|
||||||
responseStream << "<br>\n";
|
responseStream << "<br>\n";
|
||||||
responseStream << "\t\t\t\t";
|
responseStream << "\t\t\t\t";
|
||||||
#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Schicke uns eine E-Mail und wir kümmern uns darum: "));
|
responseStream << ( langCatalog->gettext("Schicke uns eine E-Mail und wir kümmern uns darum: "));
|
||||||
responseStream << "<br>\n";
|
responseStream << "<br>\n";
|
||||||
responseStream << " <b><a href=\"mailto:coin@gradido.net?subject=Invalid E-Mail Verification Code&body=Hallo Dario,%0D%0A%0D%0Amein E-Mail Verification-Code: ";
|
responseStream << " <b><a href=\"mailto:coin@gradido.net?subject=Invalid E-Mail Verification Code&body=Hallo Dario,%0D%0A%0D%0Amein E-Mail Verification-Code: ";
|
||||||
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 106 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( verificationCode );
|
responseStream << ( verificationCode );
|
||||||
responseStream << " funktioniert nicht,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
|
responseStream << " funktioniert nicht,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
|
||||||
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
#line 106 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("E-Mail an Support schicken"));
|
responseStream << ( langCatalog->gettext("E-Mail an Support schicken"));
|
||||||
responseStream << "</a></b>\n";
|
responseStream << "</a></b>\n";
|
||||||
responseStream << "\t\t\t </p>\n";
|
responseStream << "\t\t\t </p>\n";
|
||||||
|
|||||||
@ -28,10 +28,6 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
|||||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||||
|
|
||||||
Poco::Net::HTMLForm form(request, request.stream());
|
Poco::Net::HTMLForm form(request, request.stream());
|
||||||
std::ostream& _responseStream = response.send();
|
|
||||||
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
|
|
||||||
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
|
|
||||||
responseStream << "\n";
|
|
||||||
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
|
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\dashboard.cpsp"
|
||||||
|
|
||||||
const char* pageName = "Dashboard";
|
const char* pageName = "Dashboard";
|
||||||
@ -43,6 +39,10 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
|||||||
auto uri_start = ServerConfig::g_serverPath;//request.serverParams().getServerName();
|
auto uri_start = ServerConfig::g_serverPath;//request.serverParams().getServerName();
|
||||||
response.redirect(ServerConfig::g_php_serverPath + "/");
|
response.redirect(ServerConfig::g_php_serverPath + "/");
|
||||||
return;
|
return;
|
||||||
|
std::ostream& _responseStream = response.send();
|
||||||
|
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
|
||||||
|
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
|
||||||
|
responseStream << "\n";
|
||||||
// begin include header_old.cpsp
|
// begin include header_old.cpsp
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "<!DOCTYPE html>\n";
|
responseStream << "<!DOCTYPE html>\n";
|
||||||
@ -100,7 +100,10 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.8.1</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha ";
|
||||||
|
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
|
responseStream << ( ServerConfig::g_versionString );
|
||||||
|
responseStream << "</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
|
|||||||
@ -315,6 +315,26 @@ int HandleElopageRequestTask::run()
|
|||||||
// write email verification code into db
|
// write email verification code into db
|
||||||
UniLib::controller::TaskPtr saveEmailVerificationCode(new ModelInsertTask(emailVerification));
|
UniLib::controller::TaskPtr saveEmailVerificationCode(new ModelInsertTask(emailVerification));
|
||||||
saveEmailVerificationCode->scheduleTask(saveEmailVerificationCode);
|
saveEmailVerificationCode->scheduleTask(saveEmailVerificationCode);
|
||||||
|
int noEMail = 0;
|
||||||
|
|
||||||
|
std::string noEmailString = mRequestData.get("noEmail", "0");
|
||||||
|
try {
|
||||||
|
noEMail = stoi(noEmailString);
|
||||||
|
}
|
||||||
|
catch (const std::invalid_argument& ia) {
|
||||||
|
std::cerr << __FUNCTION__ << " Invalid argument: " << ia.what() << ", str: " << noEmailString << '\n';
|
||||||
|
}
|
||||||
|
catch (const std::out_of_range& oor) {
|
||||||
|
std::cerr << __FUNCTION__ << " Out of Range error: " << oor.what() << '\n';
|
||||||
|
}
|
||||||
|
catch (const std::logic_error & ler) {
|
||||||
|
std::cerr << __FUNCTION__ << " Logical error: " << ler.what() << '\n';
|
||||||
|
}
|
||||||
|
catch (...) {
|
||||||
|
std::cerr << __FUNCTION__ << " Unknown error" << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (noEMail != 1) {
|
||||||
|
|
||||||
// send email to user
|
// send email to user
|
||||||
auto message = new Poco::Net::MailMessage;
|
auto message = new Poco::Net::MailMessage;
|
||||||
@ -339,6 +359,7 @@ int HandleElopageRequestTask::run()
|
|||||||
sendEmail->setParentTaskPtrInArray(saveEmailVerificationCode, 1);
|
sendEmail->setParentTaskPtrInArray(saveEmailVerificationCode, 1);
|
||||||
sendEmail->scheduleTask(sendEmail);
|
sendEmail->scheduleTask(sendEmail);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if errors occured, send via email
|
// if errors occured, send via email
|
||||||
if (errorCount() > 1) {
|
if (errorCount() > 1) {
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
#include "Poco/DeflatingStream.h"
|
#include "Poco/DeflatingStream.h"
|
||||||
|
|
||||||
|
|
||||||
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
|
||||||
#include "../gettext.h"
|
#include "../gettext.h"
|
||||||
|
|
||||||
@ -20,6 +20,12 @@
|
|||||||
#include "../ServerConfig.h"
|
#include "../ServerConfig.h"
|
||||||
|
|
||||||
|
|
||||||
|
LoginPage::LoginPage(Session* arg):
|
||||||
|
SessionHTTPRequestHandler(arg)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
|
void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
|
||||||
{
|
{
|
||||||
response.setChunkedTransferEncoding(true);
|
response.setChunkedTransferEncoding(true);
|
||||||
@ -28,7 +34,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||||
|
|
||||||
Poco::Net::HTMLForm form(request, request.stream());
|
Poco::Net::HTMLForm form(request, request.stream());
|
||||||
#line 16 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 17 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
|
||||||
const char* pageName = "Login";
|
const char* pageName = "Login";
|
||||||
auto sm = SessionManager::getInstance();
|
auto sm = SessionManager::getInstance();
|
||||||
@ -37,6 +43,11 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
auto lang = chooseLanguage(request);
|
auto lang = chooseLanguage(request);
|
||||||
auto langCatalog = lm->getFreeCatalog(lang);
|
auto langCatalog = lm->getFreeCatalog(lang);
|
||||||
|
|
||||||
|
std::string presetEmail("");
|
||||||
|
if(mSession && mSession->getUser()) {
|
||||||
|
presetEmail = mSession->getUser()->getEmail();
|
||||||
|
}
|
||||||
|
|
||||||
if(!form.empty()) {
|
if(!form.empty()) {
|
||||||
bool langUpdatedByBtn = false;
|
bool langUpdatedByBtn = false;
|
||||||
auto langBtn = form.get("lang-btn", "");
|
auto langBtn = form.get("lang-btn", "");
|
||||||
@ -58,10 +69,10 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
auto password = form.get("login-password", "");
|
auto password = form.get("login-password", "");
|
||||||
|
|
||||||
if(email != "" && password != "") {
|
if(email != "" && password != "") {
|
||||||
auto session = sm->getSession(request);
|
//auto session = sm->getSession(request);
|
||||||
if(!session) {
|
if(!mSession) {
|
||||||
session = sm->getNewSession();
|
mSession = sm->getNewSession();
|
||||||
session->setLanguageCatalog(langCatalog);
|
mSession->setLanguageCatalog(langCatalog);
|
||||||
// get language
|
// get language
|
||||||
// first check url, second check language header
|
// first check url, second check language header
|
||||||
// for debugging client ip
|
// for debugging client ip
|
||||||
@ -71,13 +82,13 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
Poco::Logger::get("requestLog").information(clientIpString);
|
Poco::Logger::get("requestLog").information(clientIpString);
|
||||||
// debugging end
|
// debugging end
|
||||||
auto user_host = request.clientAddress().host();
|
auto user_host = request.clientAddress().host();
|
||||||
session->setClientIp(user_host);
|
mSession->setClientIp(user_host);
|
||||||
response.addCookie(session->getLoginCookie());
|
response.addCookie(mSession->getLoginCookie());
|
||||||
} else {
|
} else {
|
||||||
langCatalog = session->getLanguageCatalog();
|
langCatalog = mSession->getLanguageCatalog();
|
||||||
}
|
}
|
||||||
auto userState = session->loadUser(email, password);
|
auto userState = mSession->loadUser(email, password);
|
||||||
getErrors(session);
|
getErrors(mSession);
|
||||||
|
|
||||||
auto uri_start = request.serverParams().getServerName();
|
auto uri_start = request.serverParams().getServerName();
|
||||||
|
|
||||||
@ -87,7 +98,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")));
|
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")));
|
||||||
break;
|
break;
|
||||||
case USER_EMAIL_NOT_ACTIVATED:
|
case USER_EMAIL_NOT_ACTIVATED:
|
||||||
session->addError(new Error(langCatalog->gettext("Account"), langCatalog->gettext("E-Mail Address not checked, do you already get one?")));
|
mSession->addError(new Error(langCatalog->gettext("Account"), langCatalog->gettext("E-Mail Address not checked, do you already get one?")));
|
||||||
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
||||||
return;
|
return;
|
||||||
case USER_NO_KEYS:
|
case USER_NO_KEYS:
|
||||||
@ -105,10 +116,11 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// on enter login page with empty form
|
// on enter login page with empty form
|
||||||
auto session = sm->getSession(request);
|
//auto session = sm->getSession(request);
|
||||||
// remove old cookies and session if exist
|
// remove old cookies and session if exist
|
||||||
if(session) {
|
if(mSession) {
|
||||||
sm->releaseSession(session);
|
getErrors(mSession);
|
||||||
|
sm->releaseSession(mSession);
|
||||||
}
|
}
|
||||||
sm->deleteLoginCookies(request, response);
|
sm->deleteLoginCookies(request, response);
|
||||||
}
|
}
|
||||||
@ -133,10 +145,13 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "css/loginServer/style.css\">\n";
|
responseStream << "css/loginServer/style.css\">\n";
|
||||||
responseStream << "</head>\n";
|
responseStream << "</head>\n";
|
||||||
responseStream << "<body>\n";
|
responseStream << "<body class=\"header-fixed\">\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.8.0</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha ";
|
||||||
|
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||||
|
responseStream << ( ServerConfig::g_versionString );
|
||||||
|
responseStream << "</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
@ -156,7 +171,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << " <div class=\"col-12 logo-section\">\n";
|
responseStream << " <div class=\"col-12 logo-section\">\n";
|
||||||
responseStream << " <a href=\"../../index.html\" class=\"logo\">\n";
|
responseStream << " <a href=\"../../index.html\" class=\"logo\">\n";
|
||||||
responseStream << " <img src=\"";
|
responseStream << " <img src=\"";
|
||||||
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "img/logo_schrift.webp\" alt=\"logo\" />\n";
|
responseStream << "img/logo_schrift.webp\" alt=\"logo\" />\n";
|
||||||
responseStream << " </a>\n";
|
responseStream << " </a>\n";
|
||||||
@ -167,29 +182,29 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << " <div class=\"grid\">\n";
|
responseStream << " <div class=\"grid\">\n";
|
||||||
responseStream << "\t\t\t<div class=\"center-ul-container\">\n";
|
responseStream << "\t\t\t<div class=\"center-ul-container\">\n";
|
||||||
responseStream << "\t\t\t\t";
|
responseStream << "\t\t\t\t";
|
||||||
#line 113 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( getErrorsHtml() );
|
responseStream << ( getErrorsHtml() );
|
||||||
responseStream << "\t \n";
|
responseStream << "\t \n";
|
||||||
responseStream << "\t\t\t</div>\n";
|
responseStream << "\t\t\t</div>\n";
|
||||||
responseStream << " <div class=\"grid-body\">\n";
|
responseStream << " <div class=\"grid-body\">\n";
|
||||||
responseStream << " <form action=\"";
|
responseStream << " <form action=\"";
|
||||||
#line 116 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( ServerConfig::g_serverPath );
|
responseStream << ( ServerConfig::g_serverPath );
|
||||||
responseStream << "/\" method=\"POST\">\n";
|
responseStream << "/\" method=\"POST\">\n";
|
||||||
responseStream << "\t\t\t <input type=\"hidden\" name=\"lang\" value=\"";
|
responseStream << "\t\t\t <input type=\"hidden\" name=\"lang\" value=\"";
|
||||||
#line 117 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( LanguageManager::keyForLanguage(lang) );
|
responseStream << ( LanguageManager::keyForLanguage(lang) );
|
||||||
responseStream << "\">\n";
|
responseStream << "\">\n";
|
||||||
responseStream << " <div class=\"row pull-right-row\">\n";
|
responseStream << " <div class=\"row pull-right-row\">\n";
|
||||||
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||||
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||||
responseStream << " <button id=\"flag-england\" name=\"lang-btn\" value=\"en\" title=\"English\" type=\"submit\" ";
|
responseStream << " <button id=\"flag-england\" name=\"lang-btn\" value=\"en\" title=\"English\" type=\"submit\" ";
|
||||||
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
if(lang != LANG_EN) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
if(lang != LANG_EN) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
||||||
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
}
|
}
|
||||||
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
||||||
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
} responseStream << ">\n";
|
} responseStream << ">\n";
|
||||||
responseStream << " <span class=\"flag-england\"></span>\n";
|
responseStream << " <span class=\"flag-england\"></span>\n";
|
||||||
responseStream << " </button>\n";
|
responseStream << " </button>\n";
|
||||||
@ -198,12 +213,12 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||||
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||||
responseStream << " <button id=\"flag-germany\" name=\"lang-btn\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
|
responseStream << " <button id=\"flag-germany\" name=\"lang-btn\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
|
||||||
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
if(lang != LANG_DE) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
if(lang != LANG_DE) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
||||||
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
}
|
}
|
||||||
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
||||||
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 137 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
} responseStream << ">\n";
|
} responseStream << ">\n";
|
||||||
responseStream << " <span class=\"flag-germany\"></span>\n";
|
responseStream << " <span class=\"flag-germany\"></span>\n";
|
||||||
responseStream << " </button>\n";
|
responseStream << " </button>\n";
|
||||||
@ -214,27 +229,30 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
|||||||
responseStream << " <div class=\"col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper\">\n";
|
responseStream << " <div class=\"col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper\">\n";
|
||||||
responseStream << " <div class=\"form-group input-rounded\">\n";
|
responseStream << " <div class=\"form-group input-rounded\">\n";
|
||||||
responseStream << " <input type=\"text\" class=\"form-control\" name=\"login-email\" placeholder=\"";
|
responseStream << " <input type=\"text\" class=\"form-control\" name=\"login-email\" placeholder=\"";
|
||||||
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("E-Mail") );
|
responseStream << ( langCatalog->gettext("E-Mail") );
|
||||||
responseStream << "\" />\n";
|
responseStream << "\" value=\"";
|
||||||
|
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
|
responseStream << ( presetEmail );
|
||||||
|
responseStream << "\"/>\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " <div class=\"form-group input-rounded\">\n";
|
responseStream << " <div class=\"form-group input-rounded\">\n";
|
||||||
responseStream << " <input type=\"password\" class=\"form-control\" name=\"login-password\" placeholder=\"";
|
responseStream << " <input type=\"password\" class=\"form-control\" name=\"login-password\" placeholder=\"";
|
||||||
#line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 149 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Password") );
|
responseStream << ( langCatalog->gettext("Password") );
|
||||||
responseStream << "\" />\n";
|
responseStream << "\" />\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " <button type=\"submit\" name=\"submit\" class=\"btn btn-primary btn-block\">";
|
responseStream << " <button type=\"submit\" name=\"submit\" class=\"btn btn-primary btn-block\">";
|
||||||
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 151 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( langCatalog->gettext(" Login ") );
|
responseStream << ( langCatalog->gettext(" Login ") );
|
||||||
responseStream << "</button>\n";
|
responseStream << "</button>\n";
|
||||||
responseStream << " <div class=\"signup-link\">\n";
|
responseStream << " <div class=\"signup-link\">\n";
|
||||||
responseStream << " <p>";
|
responseStream << " <p>";
|
||||||
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 153 "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 << ( langCatalog->gettext("You haven't any account yet? Please follow the link to create one.") );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << " <a href=\"https://gradido.com\">";
|
responseStream << " <a href=\"https://gradido.com\">";
|
||||||
#line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
#line 154 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||||
responseStream << ( langCatalog->gettext("Create New Account") );
|
responseStream << ( langCatalog->gettext("Create New Account") );
|
||||||
responseStream << "</a>\n";
|
responseStream << "</a>\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
|
|||||||
@ -5,12 +5,14 @@
|
|||||||
#include "Poco/Net/HTTPRequestHandler.h"
|
#include "Poco/Net/HTTPRequestHandler.h"
|
||||||
|
|
||||||
|
|
||||||
#include "PageRequestMessagedHandler.h"
|
#include "SessionHTTPRequestHandler.h"
|
||||||
|
|
||||||
|
|
||||||
class LoginPage: public PageRequestMessagedHandler
|
class LoginPage: public SessionHTTPRequestHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
LoginPage(Session*);
|
||||||
|
|
||||||
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
|
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -100,25 +100,31 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
|
|||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
|
if (url_first_part == "/error500") {
|
||||||
|
auto pageRequestHandler = new Error500Page(s);
|
||||||
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
|
return pageRequestHandler;
|
||||||
|
}
|
||||||
|
|
||||||
if(url_first_part == "/logout") {
|
if(url_first_part == "/logout") {
|
||||||
sm->releaseSession(s);
|
sm->releaseSession(s);
|
||||||
// remove cookie
|
// remove cookie(s)
|
||||||
|
|
||||||
//printf("session released\n");
|
//printf("session released\n");
|
||||||
auto pageRequestHandler = new LoginPage;
|
auto pageRequestHandler = new LoginPage(nullptr);
|
||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
if(url_first_part == "/user_delete") {
|
if(url_first_part == "/user_delete") {
|
||||||
if(s->deleteUser()) {
|
if(s->deleteUser()) {
|
||||||
sm->releaseSession(s);
|
sm->releaseSession(s);
|
||||||
auto pageRequestHandler = new LoginPage;
|
auto pageRequestHandler = new LoginPage(nullptr);
|
||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
auto sessionState = s->getSessionState();
|
auto sessionState = s->getSessionState();
|
||||||
|
printf("session state: %s\n", s->getSessionStateString());
|
||||||
if(sessionState == SESSION_STATE_EMAIL_VERIFICATION_CODE_CHECKED ||
|
if(sessionState == SESSION_STATE_EMAIL_VERIFICATION_CODE_CHECKED ||
|
||||||
sessionState == SESSION_STATE_PASSPHRASE_GENERATED) {
|
sessionState == SESSION_STATE_PASSPHRASE_GENERATED) {
|
||||||
//if (url_first_part == "/passphrase") {
|
//if (url_first_part == "/passphrase") {
|
||||||
@ -152,12 +158,12 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
|
|||||||
return new ConfigPage;
|
return new ConfigPage;
|
||||||
}
|
}
|
||||||
else if (url_first_part == "/login") {
|
else if (url_first_part == "/login") {
|
||||||
auto pageRequestHandler = new LoginPage;
|
auto pageRequestHandler = new LoginPage(nullptr);
|
||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
auto pageRequestHandler = new LoginPage;
|
auto pageRequestHandler = new LoginPage(nullptr);
|
||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
//return new HandleFileRequest;
|
//return new HandleFileRequest;
|
||||||
@ -245,14 +251,39 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::handleCheckEmail(Sessi
|
|||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
//! \return 1 = konto already exist
|
||||||
|
//! -1 = invalid code
|
||||||
|
//! -2 = critical error
|
||||||
|
//! 0 = ok
|
||||||
|
*/
|
||||||
// update session, mark as verified
|
// update session, mark as verified
|
||||||
if (session->updateEmailVerification(verificationCode)) {
|
int retUpdateEmailVerification = session->updateEmailVerification(verificationCode);
|
||||||
|
|
||||||
|
if (0 == retUpdateEmailVerification) {
|
||||||
printf("[PageRequestHandlerFactory::handleCheckEmail] timeUsed: %s\n", timeUsed.string().data());
|
printf("[PageRequestHandlerFactory::handleCheckEmail] timeUsed: %s\n", timeUsed.string().data());
|
||||||
auto pageRequestHandler = new PassphrasePage(session);
|
auto pageRequestHandler = new PassphrasePage(session);
|
||||||
pageRequestHandler->setProfiler(timeUsed);
|
pageRequestHandler->setProfiler(timeUsed);
|
||||||
return pageRequestHandler;
|
return pageRequestHandler;
|
||||||
}
|
}
|
||||||
|
else if (1 == retUpdateEmailVerification) {
|
||||||
|
auto user = session->getUser();
|
||||||
|
LoginPage* loginPage = new LoginPage(session);
|
||||||
|
loginPage->setProfiler(timeUsed);
|
||||||
|
return loginPage;
|
||||||
|
}
|
||||||
|
else if (-1 == retUpdateEmailVerification) {
|
||||||
|
auto checkEmail = new CheckEmailPage(session);
|
||||||
|
checkEmail->setProfiler(timeUsed);
|
||||||
|
checkEmail->getErrors(session);
|
||||||
|
sm->releaseSession(session);
|
||||||
|
return checkEmail;
|
||||||
|
}
|
||||||
|
else if (-2 == retUpdateEmailVerification) {
|
||||||
|
auto errorPage = new Error500Page(session);
|
||||||
|
errorPage->setProfiler(timeUsed);
|
||||||
|
return errorPage;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (session) {
|
if (session) {
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#include "../SingletonManager/SessionManager.h"
|
#include "../SingletonManager/SessionManager.h"
|
||||||
#include "Poco/Net/HTTPCookie.h"
|
#include "Poco/Net/HTTPCookie.h"
|
||||||
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
|
|
||||||
#include "../ServerConfig.h"
|
#include "../ServerConfig.h"
|
||||||
|
|
||||||
@ -48,9 +48,17 @@ void UpdateUserPasswordPage::handleRequest(Poco::Net::HTTPServerRequest& request
|
|||||||
if(user->setNewPassword(form.get("register-password"))) {
|
if(user->setNewPassword(form.get("register-password"))) {
|
||||||
//std::string referUri = request.get("Referer", uri_start + "/");
|
//std::string referUri = request.get("Referer", uri_start + "/");
|
||||||
//printf("[updateUserPasswordPage] redirect to referUri: %s\n", referUri.data());
|
//printf("[updateUserPasswordPage] redirect to referUri: %s\n", referUri.data());
|
||||||
|
|
||||||
// I think we can savly assume that this session was loaded from verification code
|
// I think we can savly assume that this session was loaded from verification code
|
||||||
mSession->updateEmailVerification(mSession->getEmailVerificationCode());
|
//! \return 1 = konto already activated
|
||||||
|
//! -1 = invalid code
|
||||||
|
//! -2 = critical error
|
||||||
|
//! 0 = ok
|
||||||
|
auto ret = mSession->updateEmailVerification(mSession->getEmailVerificationCode());
|
||||||
mSession->getErrors(user);
|
mSession->getErrors(user);
|
||||||
|
if(-2 == ret || -1 == ret || 1 == ret) {
|
||||||
|
response.redirect(uri_start + "/error500");
|
||||||
|
}
|
||||||
response.redirect(uri_start + "/passphrase");
|
response.redirect(uri_start + "/passphrase");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -64,20 +72,20 @@ void UpdateUserPasswordPage::handleRequest(Poco::Net::HTTPServerRequest& request
|
|||||||
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
|
Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1);
|
||||||
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
|
std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream;
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
// begin include header.cpsp
|
// begin include header_old.cpsp
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "<!DOCTYPE html>\n";
|
responseStream << "<!DOCTYPE html>\n";
|
||||||
responseStream << "<html>\n";
|
responseStream << "<html>\n";
|
||||||
responseStream << "<head>\n";
|
responseStream << "<head>\n";
|
||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
responseStream << "</title>\n";
|
responseStream << "</title>\n";
|
||||||
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
|
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
|
||||||
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
|
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
|
||||||
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "/css/styles.css\">\n";
|
responseStream << "/css/styles.css\">\n";
|
||||||
responseStream << "<style type=\"text/css\" >\n";
|
responseStream << "<style type=\"text/css\" >\n";
|
||||||
@ -121,25 +129,28 @@ void UpdateUserPasswordPage::handleRequest(Poco::Net::HTTPServerRequest& request
|
|||||||
responseStream << "<body>\n";
|
responseStream << "<body>\n";
|
||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.0</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Alpha ";
|
||||||
|
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
|
responseStream << ( ServerConfig::g_versionString );
|
||||||
|
responseStream << "</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
|
||||||
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
|
||||||
responseStream << "\t\t<ul class=\"grd-no-style\">\n";
|
responseStream << "\t\t<ul class=\"grd-no-style\">\n";
|
||||||
responseStream << "\t\t <li><a href=\"";
|
responseStream << "\t\t <li><a href=\"";
|
||||||
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
#line 58 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "\" class=\"grd-nav-bn\">Startseite</a>\n";
|
responseStream << "\" class=\"grd-nav-bn\">Startseite</a>\n";
|
||||||
responseStream << "\t\t <li><a href=\"./account/logout\" class=\"grd-nav-bn\">Logout</a></li>\n";
|
responseStream << "\t\t <li><a href=\"./account/logout\" class=\"grd-nav-bn\">Logout</a></li>\n";
|
||||||
responseStream << "\t\t</ul>\n";
|
responseStream << "\t\t</ul>\n";
|
||||||
responseStream << "\t</div>\n";
|
responseStream << "\t</div>\n";
|
||||||
responseStream << "</nav>-->";
|
responseStream << "</nav>-->";
|
||||||
// end include header.cpsp
|
// end include header_old.cpsp
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "<div class=\"grd_container\">\n";
|
responseStream << "<div class=\"grd_container\">\n";
|
||||||
responseStream << "\t<h1>Passwort bestimmen</h1>\n";
|
responseStream << "\t<h1>Passwort bestimmen</h1>\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 44 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\UpdateUserPassword.cpsp"
|
#line 52 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\UpdateUserPassword.cpsp"
|
||||||
responseStream << ( getErrorsHtml() );
|
responseStream << ( getErrorsHtml() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t<form method=\"POST\">\t\n";
|
responseStream << "\t<form method=\"POST\">\t\n";
|
||||||
|
|||||||
@ -45,6 +45,7 @@ namespace ServerConfig {
|
|||||||
Poco::Mutex g_TimeMutex;
|
Poco::Mutex g_TimeMutex;
|
||||||
int g_FakeLoginSleepTime = 820;
|
int g_FakeLoginSleepTime = 820;
|
||||||
std::string g_versionString = "";
|
std::string g_versionString = "";
|
||||||
|
bool g_disableEmail = false;
|
||||||
|
|
||||||
bool loadMnemonicWordLists()
|
bool loadMnemonicWordLists()
|
||||||
{
|
{
|
||||||
@ -106,6 +107,7 @@ namespace ServerConfig {
|
|||||||
|
|
||||||
bool initEMailAccount(const Poco::Util::LayeredConfiguration& cfg)
|
bool initEMailAccount(const Poco::Util::LayeredConfiguration& cfg)
|
||||||
{
|
{
|
||||||
|
g_disableEmail = cfg.getBool("email.disable", false);
|
||||||
g_EmailAccount.sender = cfg.getString("email.sender");
|
g_EmailAccount.sender = cfg.getString("email.sender");
|
||||||
g_EmailAccount.username = cfg.getString("email.username");
|
g_EmailAccount.username = cfg.getString("email.username");
|
||||||
g_EmailAccount.password = cfg.getString("email.password");
|
g_EmailAccount.password = cfg.getString("email.password");
|
||||||
|
|||||||
@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
#include "SingletonManager/LanguageManager.h"
|
#include "SingletonManager/LanguageManager.h"
|
||||||
|
|
||||||
|
#define DISABLE_EMAIL
|
||||||
|
|
||||||
namespace ServerConfig {
|
namespace ServerConfig {
|
||||||
|
|
||||||
enum Mnemonic_Types {
|
enum Mnemonic_Types {
|
||||||
@ -45,6 +47,7 @@ namespace ServerConfig {
|
|||||||
extern Poco::Mutex g_TimeMutex;
|
extern Poco::Mutex g_TimeMutex;
|
||||||
extern int g_FakeLoginSleepTime;
|
extern int g_FakeLoginSleepTime;
|
||||||
extern std::string g_versionString;
|
extern std::string g_versionString;
|
||||||
|
extern bool g_disableEmail;
|
||||||
|
|
||||||
bool loadMnemonicWordLists();
|
bool loadMnemonicWordLists();
|
||||||
bool initServerCrypto(const Poco::Util::LayeredConfiguration& cfg);
|
bool initServerCrypto(const Poco::Util::LayeredConfiguration& cfg);
|
||||||
|
|||||||
@ -229,10 +229,10 @@ bool SessionManager::releaseSession(int requestHandleSession)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ErrorList errors;
|
ErrorList errors;
|
||||||
errors.addError(new Error("SessionManager::releaseSession", "found dead locked session, keeping in memory without reference"));
|
errors.addError(new Error("SessionManager::releaseSession", "found dead locked session"));
|
||||||
errors.sendErrorsAsEmail();
|
errors.sendErrorsAsEmail();
|
||||||
|
|
||||||
mRequestSessionMap.erase(requestHandleSession);
|
mRequestSessionMap.erase(requestHandleSession);
|
||||||
|
delete session;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -432,6 +432,17 @@ void SessionManager::deleteLoginCookies(Poco::Net::HTTPServerRequest& request, P
|
|||||||
keks.setMaxAge(0);
|
keks.setMaxAge(0);
|
||||||
response.addCookie(keks);
|
response.addCookie(keks);
|
||||||
}
|
}
|
||||||
|
// delete also cake php session cookie
|
||||||
|
for (auto it = cookies.find("CAKEPHP"); it != cookies.end(); it++) {
|
||||||
|
if (it->first != "CAKEPHP") break;
|
||||||
|
// delete cookie
|
||||||
|
auto keks = Poco::Net::HTTPCookie("CAKEPHP", it->second);
|
||||||
|
keks.setPath("/");
|
||||||
|
// max age of 0 delete cookie
|
||||||
|
keks.setMaxAge(0);
|
||||||
|
response.addCookie(keks);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//session_id = atoi(cookies.get("GRADIDO_LOGIN").data());
|
//session_id = atoi(cookies.get("GRADIDO_LOGIN").data());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,9 +14,7 @@ SendErrorMessage::~SendErrorMessage()
|
|||||||
|
|
||||||
int SendErrorMessage::run()
|
int SendErrorMessage::run()
|
||||||
{
|
{
|
||||||
#ifdef DISABLE_EMAIL
|
if (ServerConfig::g_disableEmail) return 0;
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
auto mailClientSession = new Poco::Net::SecureSMTPClientSession(ServerConfig::g_EmailAccount.url, ServerConfig::g_EmailAccount.port);
|
auto mailClientSession = new Poco::Net::SecureSMTPClientSession(ServerConfig::g_EmailAccount.url, ServerConfig::g_EmailAccount.port);
|
||||||
mailClientSession->login();
|
mailClientSession->login();
|
||||||
|
|||||||
102
src/cpp/lib/JsonRequest.cpp
Normal file
102
src/cpp/lib/JsonRequest.cpp
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
|
||||||
|
#include "JsonRequest.h"
|
||||||
|
#include "Profiler.h"
|
||||||
|
|
||||||
|
#include "Poco/JSON/Object.h"
|
||||||
|
#include "Poco/Net/HTTPSClientSession.h"
|
||||||
|
#include "Poco/Net/HTTPRequest.h"
|
||||||
|
#include "Poco/Net/HTTPResponse.h"
|
||||||
|
#include "Poco/JSON/Parser.h"
|
||||||
|
|
||||||
|
JsonRequest::JsonRequest(const std::string& serverHost, int serverPort)
|
||||||
|
: mServerHost(serverHost), mServerPort(serverPort)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JsonRequest::~JsonRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
JsonRequestReturn JsonRequest::request(const char* methodName, const Poco::Net::NameValueCollection& payload)
|
||||||
|
{
|
||||||
|
static const char* functionName = "JsonRequest::request";
|
||||||
|
Poco::JSON::Object requestJson;
|
||||||
|
requestJson.set("method", methodName);
|
||||||
|
|
||||||
|
for(auto it = payload.begin(); it != payload.end(); it++) {
|
||||||
|
requestJson.set(it->first, it->second);
|
||||||
|
}
|
||||||
|
//requestJson.set("user", std::string(mSessionUser->getPublicKeyHex()));
|
||||||
|
|
||||||
|
// send post request via https
|
||||||
|
// 443 = HTTPS Default
|
||||||
|
// TODO: adding port into ServerConfig
|
||||||
|
try {
|
||||||
|
Profiler phpRequestTime;
|
||||||
|
Poco::Net::HTTPSClientSession httpsClientSession(mServerHost, mServerPort);
|
||||||
|
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/TransactionJsonRequestHandler");
|
||||||
|
|
||||||
|
request.setChunkedTransferEncoding(true);
|
||||||
|
std::ostream& requestStream = httpsClientSession.sendRequest(request);
|
||||||
|
requestJson.stringify(requestStream);
|
||||||
|
|
||||||
|
Poco::Net::HTTPResponse response;
|
||||||
|
std::istream& request_stream = httpsClientSession.receiveResponse(response);
|
||||||
|
|
||||||
|
// debugging answer
|
||||||
|
|
||||||
|
std::stringstream responseStringStream;
|
||||||
|
for (std::string line; std::getline(request_stream, line); ) {
|
||||||
|
responseStringStream << line << std::endl;
|
||||||
|
}
|
||||||
|
Poco::Logger& speedLog = Poco::Logger::get("SpeedLog");
|
||||||
|
speedLog.information("[%s] php server time: %s", methodName, phpRequestTime.string());
|
||||||
|
|
||||||
|
// extract parameter from request
|
||||||
|
Poco::JSON::Parser jsonParser;
|
||||||
|
Poco::Dynamic::Var parsedJson;
|
||||||
|
try {
|
||||||
|
parsedJson = jsonParser.parse(responseStringStream.str());
|
||||||
|
}
|
||||||
|
catch (Poco::Exception& ex) {
|
||||||
|
addError(new ParamError(functionName, "error parsing request answer", ex.displayText().data()));
|
||||||
|
|
||||||
|
std::string fileName = "response_";
|
||||||
|
fileName += methodName;
|
||||||
|
fileName += ".html";
|
||||||
|
|
||||||
|
FILE* f = fopen(fileName.data(), "wt");
|
||||||
|
std::string responseString = responseStringStream.str();
|
||||||
|
fwrite(responseString.data(), 1, responseString.size(), f);
|
||||||
|
fclose(f);
|
||||||
|
// */
|
||||||
|
sendErrorsAsEmail(responseStringStream.str());
|
||||||
|
return JSON_REQUEST_RETURN_PARSE_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
Poco::JSON::Object object = *parsedJson.extract<Poco::JSON::Object::Ptr>();
|
||||||
|
auto state = object.get("state");
|
||||||
|
std::string stateString = state.convert<std::string>();
|
||||||
|
if (stateString == "error") {
|
||||||
|
addError(new Error(functionName, "php server return error"));
|
||||||
|
if (!object.isNull("msg")) {
|
||||||
|
addError(new ParamError(functionName, "msg:", object.get("msg").convert<std::string>().data()));
|
||||||
|
}
|
||||||
|
if (!object.isNull("details")) {
|
||||||
|
addError(new ParamError(functionName, "details:", object.get("details").convert<std::string>().data()));
|
||||||
|
}
|
||||||
|
sendErrorsAsEmail();
|
||||||
|
return JSON_REQUEST_RETURN_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Poco::Exception& e) {
|
||||||
|
addError(new ParamError(functionName, "connect error to php server", e.displayText().data()));
|
||||||
|
sendErrorsAsEmail();
|
||||||
|
return JSON_REQUEST_CONNECT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return JSON_REQUEST_RETURN_OK;
|
||||||
|
}
|
||||||
39
src/cpp/lib/JsonRequest.h
Normal file
39
src/cpp/lib/JsonRequest.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/*!
|
||||||
|
*
|
||||||
|
* \author: Dario Rekowski
|
||||||
|
*
|
||||||
|
* \date: 13.12.2019
|
||||||
|
*
|
||||||
|
* \brief: Class for Json Requests to php server
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ErrorList.h"
|
||||||
|
#include "Poco/Net/NameValueCollection.h"
|
||||||
|
|
||||||
|
#ifndef __GRADIDO_LOGIN_SERVER_LIB_JSON_REQUEST_
|
||||||
|
#define __GRADIDO_LOGIN_SERVER_LIB_JSON_REQUEST_
|
||||||
|
|
||||||
|
enum JsonRequestReturn
|
||||||
|
{
|
||||||
|
JSON_REQUEST_RETURN_OK,
|
||||||
|
JSON_REQUEST_RETURN_PARSE_ERROR,
|
||||||
|
JSON_REQUEST_RETURN_ERROR,
|
||||||
|
JSON_REQUEST_CONNECT_ERROR
|
||||||
|
};
|
||||||
|
|
||||||
|
class JsonRequest : public ErrorList
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
JsonRequest(const std::string& serverHost, int serverPort);
|
||||||
|
~JsonRequest();
|
||||||
|
|
||||||
|
JsonRequestReturn request(const char* methodName, const Poco::Net::NameValueCollection& payload);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
int mServerPort;
|
||||||
|
std::string mServerHost;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__GRADIDO_LOGIN_SERVER_LIB_JSON_REQUEST_
|
||||||
@ -14,6 +14,8 @@
|
|||||||
#include "../tasks/SendEmailTask.h"
|
#include "../tasks/SendEmailTask.h"
|
||||||
#include "../tasks/SigningTransaction.h"
|
#include "../tasks/SigningTransaction.h"
|
||||||
|
|
||||||
|
#include "../lib/JsonRequest.h"
|
||||||
|
|
||||||
|
|
||||||
#include "sodium.h"
|
#include "sodium.h"
|
||||||
|
|
||||||
@ -90,7 +92,10 @@ Session::Session(int handle)
|
|||||||
Session::~Session()
|
Session::~Session()
|
||||||
{
|
{
|
||||||
//printf("[Session::~Session] \n");
|
//printf("[Session::~Session] \n");
|
||||||
|
if (tryLock()) {
|
||||||
|
unlock();
|
||||||
reset();
|
reset();
|
||||||
|
}
|
||||||
//printf("[Session::~Session] finished \n");
|
//printf("[Session::~Session] finished \n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,11 +242,12 @@ bool Session::createUser(const std::string& first_name, const std::string& last_
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
int Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
||||||
{
|
{
|
||||||
lock("Session::updateEmailVerification");
|
|
||||||
Profiler usedTime;
|
|
||||||
const static char* funcName = "Session::updateEmailVerification";
|
const static char* funcName = "Session::updateEmailVerification";
|
||||||
|
lock(funcName);
|
||||||
|
Profiler usedTime;
|
||||||
|
|
||||||
auto em = ErrorManager::getInstance();
|
auto em = ErrorManager::getInstance();
|
||||||
if(mEmailVerificationCode == emailVerificationCode) {
|
if(mEmailVerificationCode == emailVerificationCode) {
|
||||||
if (mSessionUser && mSessionUser->getDBId() == 0) {
|
if (mSessionUser && mSessionUser->getDBId() == 0) {
|
||||||
@ -253,11 +259,55 @@ bool Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
|||||||
|
|
||||||
// load correct user from db
|
// load correct user from db
|
||||||
auto dbConnection = ConnectionManager::getInstance()->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
|
auto dbConnection = ConnectionManager::getInstance()->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
|
||||||
Poco::Data::Statement update(dbConnection);
|
Poco::Data::Statement select(dbConnection);
|
||||||
|
bool emailChecked = false;
|
||||||
|
int userId = 0;
|
||||||
|
select << "SELECT email_checked, id from users where id = (SELECT user_id FROM email_opt_in where verification_code=?)",
|
||||||
|
into(emailChecked), into(userId), use(emailVerificationCode);
|
||||||
|
|
||||||
update << "UPDATE users SET email_checked=1 where id = (SELECT user_id FROM email_opt_in where verification_code=?)", use(emailVerificationCode);
|
try {
|
||||||
|
select.execute();
|
||||||
|
}
|
||||||
|
catch (Poco::Exception& ex) {
|
||||||
|
em->addError(new ParamError(funcName, "select user from email verification code mysql error ", ex.displayText().data()));
|
||||||
|
em->sendErrorsAsEmail();
|
||||||
|
}
|
||||||
|
if (userId != 0 && emailChecked) {
|
||||||
|
mSessionUser = new User(userId);
|
||||||
|
addError(new Error(gettext("E-Mail Verification"), gettext("Du hast dein Konto bereits aktiviert!")));
|
||||||
|
unlock();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (userId == 0) {
|
||||||
|
addError(new Error(gettext("E-Mail Verification"), gettext("Der Code stimmt nicht, bitte überprüfe ihn nochmal oder registriere dich erneut oder wende dich an den Server-Admin")));
|
||||||
|
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||||
|
unlock();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Poco::Data::Statement update(dbConnection);
|
||||||
|
update << "UPDATE users SET email_checked=1 where id = ?", use(userId);
|
||||||
|
|
||||||
|
try {
|
||||||
auto updated_rows = update.execute();
|
auto updated_rows = update.execute();
|
||||||
if (updated_rows == 1) {
|
if (!updated_rows) {
|
||||||
|
//addError(new Error(gettext("E-Mail Verification"), gettext("Der Code stimmt nicht, bitte überprüfe ihn nochmal oder registriere dich erneut oder wende dich an den Server-Admin")));
|
||||||
|
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||||
|
em->addError(new Error(funcName, "impossible error, update users failed with shortly before acquired user id "));
|
||||||
|
em->sendErrorsAsEmail();
|
||||||
|
|
||||||
|
unlock();
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
updateState(SESSION_STATE_EMAIL_VERIFICATION_CODE_CHECKED);
|
||||||
|
}
|
||||||
|
catch (Poco::Exception& ex) {
|
||||||
|
em->addError(new ParamError(funcName, "update user from email verification code mysql error ", ex.displayText().data()));
|
||||||
|
em->sendErrorsAsEmail();
|
||||||
|
unlock();
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
/*if (updated_rows == 1) {
|
||||||
Poco::Data::Statement delete_row(dbConnection);
|
Poco::Data::Statement delete_row(dbConnection);
|
||||||
delete_row << "DELETE FROM email_opt_in where verification_code = ?", use(emailVerificationCode);
|
delete_row << "DELETE FROM email_opt_in where verification_code = ?", use(emailVerificationCode);
|
||||||
if (delete_row.execute() != 1) {
|
if (delete_row.execute() != 1) {
|
||||||
@ -276,24 +326,19 @@ bool Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
|||||||
else {
|
else {
|
||||||
em->addError(new ParamError(funcName, "update user work not like expected, updated row count", updated_rows));
|
em->addError(new ParamError(funcName, "update user work not like expected, updated row count", updated_rows));
|
||||||
em->sendErrorsAsEmail();
|
em->sendErrorsAsEmail();
|
||||||
}
|
}*/
|
||||||
if (!updated_rows) {
|
|
||||||
addError(new Error(gettext("E-Mail Verification"), gettext("Der Code stimmt nicht, bitte überprüfe ihn nochmal oder registriere dich erneut oder wende dich an den Server-Admin")));
|
|
||||||
printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
|
||||||
unlock();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
addError(new Error(gettext("E-Mail Verification"), gettext("Falscher Code für aktiven Login")));
|
addError(new Error(gettext("E-Mail Verification"), gettext("Falscher Code für aktiven Login")));
|
||||||
printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||||
unlock();
|
unlock();
|
||||||
return false;
|
return -1;
|
||||||
}
|
}
|
||||||
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||||
unlock();
|
unlock();
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Session::startProcessingTransaction(const std::string& proto_message_base64)
|
bool Session::startProcessingTransaction(const std::string& proto_message_base64)
|
||||||
@ -444,8 +489,25 @@ bool Session::deleteUser()
|
|||||||
lock("Session::deleteUser");
|
lock("Session::deleteUser");
|
||||||
bool bResult = false;
|
bool bResult = false;
|
||||||
if(mSessionUser) {
|
if(mSessionUser) {
|
||||||
|
JsonRequest phpServerRequest(ServerConfig::g_php_serverHost, 443);
|
||||||
|
Poco::Net::NameValueCollection payload;
|
||||||
|
payload.add("user", std::string(mSessionUser->getPublicKeyHex()));
|
||||||
|
//auto ret = phpServerRequest.request("userDelete", payload);
|
||||||
|
JsonRequestReturn ret = JSON_REQUEST_RETURN_OK;
|
||||||
|
if (ret == JSON_REQUEST_RETURN_ERROR) {
|
||||||
|
addError(new Error("Session::deleteUser", "php server error"));
|
||||||
|
getErrors(&phpServerRequest);
|
||||||
|
sendErrorsAsEmail();
|
||||||
|
}
|
||||||
|
else if (ret == JSON_REQUEST_RETURN_OK) {
|
||||||
bResult = mSessionUser->deleteFromDB();
|
bResult = mSessionUser->deleteFromDB();
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
addError(new Error(gettext("Benutzer"), gettext("Konnte Community Server nicht erreichen. E-Mail an den Admin ist raus.")));
|
||||||
|
unlock();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!bResult) {
|
if(!bResult) {
|
||||||
addError(new Error(gettext("Benutzer"), gettext("Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und versuche es nochmal.")));
|
addError(new Error(gettext("Benutzer"), gettext("Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und versuche es nochmal.")));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,7 +66,11 @@ public:
|
|||||||
|
|
||||||
bool loadFromEmailVerificationCode(Poco::UInt64 emailVerificationCode);
|
bool loadFromEmailVerificationCode(Poco::UInt64 emailVerificationCode);
|
||||||
|
|
||||||
bool updateEmailVerification(Poco::UInt64 emailVerificationCode);
|
//! \return 1 = konto already exist
|
||||||
|
//! -1 = invalid code
|
||||||
|
//! -2 = critical error
|
||||||
|
//! 0 = ok
|
||||||
|
int updateEmailVerification(Poco::UInt64 emailVerificationCode);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -102,6 +102,7 @@ int UserWriteKeysIntoDB::run()
|
|||||||
auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
|
auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
|
||||||
auto keyPairs = getParent(0).cast<UserGenerateKeys>()->getKeyPairs();
|
auto keyPairs = getParent(0).cast<UserGenerateKeys>()->getKeyPairs();
|
||||||
auto pubKey = keyPairs->getPublicKey();
|
auto pubKey = keyPairs->getPublicKey();
|
||||||
|
static const char* functionName = "UserWritePrivKeyIntoDB::run";
|
||||||
|
|
||||||
//printf("[UserWriteKeysIntoDB] after init\n");
|
//printf("[UserWriteKeysIntoDB] after init\n");
|
||||||
|
|
||||||
@ -115,7 +116,11 @@ int UserWriteKeysIntoDB::run()
|
|||||||
//printf("[UserWriteKeysIntoDB] privKey hex: %s\n", KeyPair::getHex(*privKey, privKey->size()).data());
|
//printf("[UserWriteKeysIntoDB] privKey hex: %s\n", KeyPair::getHex(*privKey, privKey->size()).data());
|
||||||
auto encryptedPrivKey = mUser->encrypt(privKey);
|
auto encryptedPrivKey = mUser->encrypt(privKey);
|
||||||
//pprivkey_blob = mUser->encrypt(privKey);
|
//pprivkey_blob = mUser->encrypt(privKey);
|
||||||
|
if (!encryptedPrivKey) {
|
||||||
|
em->addError(new Error(functionName, "no privkey found"));
|
||||||
|
em->sendErrorsAsEmail();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
pprivkey_blob = new Poco::Data::BLOB(*encryptedPrivKey, encryptedPrivKey->size());
|
pprivkey_blob = new Poco::Data::BLOB(*encryptedPrivKey, encryptedPrivKey->size());
|
||||||
//printf("[UserWriteKeysIntoDB] privkey encrypted\n");
|
//printf("[UserWriteKeysIntoDB] privkey encrypted\n");
|
||||||
//Poco::Data::BLOB privkey_blob(*privKey, privKey->size());
|
//Poco::Data::BLOB privkey_blob(*privKey, privKey->size());
|
||||||
@ -130,7 +135,7 @@ int UserWriteKeysIntoDB::run()
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
if (update.execute() != 1) {
|
if (update.execute() != 1) {
|
||||||
em->addError(new ParamError("UserWritePrivKeyIntoDB::run", "error writing keys into db for user", std::to_string(mUser->getDBId())));
|
em->addError(new ParamError(functionName, "error writing keys into db for user", std::to_string(mUser->getDBId())));
|
||||||
em->sendErrorsAsEmail();
|
em->sendErrorsAsEmail();
|
||||||
if (pprivkey_blob) {
|
if (pprivkey_blob) {
|
||||||
delete pprivkey_blob;
|
delete pprivkey_blob;
|
||||||
@ -139,7 +144,7 @@ int UserWriteKeysIntoDB::run()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Poco::Exception& ex) {
|
catch (Poco::Exception& ex) {
|
||||||
em->addError(new ParamError("UserWritePrivKeyIntoDB::run", "mysql error updating", ex.displayText().data()));
|
em->addError(new ParamError(functionName, "mysql error updating", ex.displayText().data()));
|
||||||
em->sendErrorsAsEmail();
|
em->sendErrorsAsEmail();
|
||||||
if (pprivkey_blob) {
|
if (pprivkey_blob) {
|
||||||
delete pprivkey_blob;
|
delete pprivkey_blob;
|
||||||
|
|||||||
@ -20,9 +20,7 @@ PrepareEmailTask::~PrepareEmailTask()
|
|||||||
|
|
||||||
int PrepareEmailTask::run()
|
int PrepareEmailTask::run()
|
||||||
{
|
{
|
||||||
#ifdef DISABLE_EMAIL
|
if (ServerConfig::g_disableEmail) return 0;
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
Profiler timeUsed;
|
Profiler timeUsed;
|
||||||
mMailClientSession = new Poco::Net::SecureSMTPClientSession(ServerConfig::g_EmailAccount.url, ServerConfig::g_EmailAccount.port);
|
mMailClientSession = new Poco::Net::SecureSMTPClientSession(ServerConfig::g_EmailAccount.url, ServerConfig::g_EmailAccount.port);
|
||||||
mMailClientSession->login();
|
mMailClientSession->login();
|
||||||
@ -51,9 +49,8 @@ int PrepareEmailTask::run()
|
|||||||
|
|
||||||
int PrepareEmailTask::send(Poco::Net::MailMessage* message)
|
int PrepareEmailTask::send(Poco::Net::MailMessage* message)
|
||||||
{
|
{
|
||||||
#ifdef DISABLE_EMAIL
|
if (ServerConfig::g_disableEmail) return 0;
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
auto er = ErrorManager::getInstance();
|
auto er = ErrorManager::getInstance();
|
||||||
try {
|
try {
|
||||||
mMailClientSession->sendMessage(*message);
|
mMailClientSession->sendMessage(*message);
|
||||||
|
|||||||
@ -4,6 +4,8 @@
|
|||||||
#include "CPUTask.h"
|
#include "CPUTask.h"
|
||||||
#include "Poco/Net/SecureSMTPClientSession.h"
|
#include "Poco/Net/SecureSMTPClientSession.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PrepareEmailTask : public UniLib::controller::CPUTask
|
class PrepareEmailTask : public UniLib::controller::CPUTask
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -21,9 +21,8 @@ SendEmailTask::~SendEmailTask()
|
|||||||
|
|
||||||
int SendEmailTask::run()
|
int SendEmailTask::run()
|
||||||
{
|
{
|
||||||
#ifdef DISABLE_EMAIL
|
if(ServerConfig::g_disableEmail) return 0;
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
Profiler timeUsed;
|
Profiler timeUsed;
|
||||||
auto er = ErrorManager::getInstance();
|
auto er = ErrorManager::getInstance();
|
||||||
auto parent = getParent(0);
|
auto parent = getParent(0);
|
||||||
|
|||||||
@ -11,7 +11,8 @@
|
|||||||
enum PageState
|
enum PageState
|
||||||
{
|
{
|
||||||
MAIL_NOT_SEND,
|
MAIL_NOT_SEND,
|
||||||
ASK_VERIFICATION_CODE
|
ASK_VERIFICATION_CODE,
|
||||||
|
KONTO_ALREADY_EXIST
|
||||||
};
|
};
|
||||||
%>
|
%>
|
||||||
<%%
|
<%%
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
#include "../SingletonManager/SessionManager.h"
|
#include "../SingletonManager/SessionManager.h"
|
||||||
#include "Poco/Net/HTTPServerParams.h"
|
#include "Poco/Net/HTTPServerParams.h"
|
||||||
%>
|
%>
|
||||||
<%
|
<%%
|
||||||
const char* pageName = "Dashboard";
|
const char* pageName = "Dashboard";
|
||||||
//Poco::Net::NameValueCollection cookies;
|
//Poco::Net::NameValueCollection cookies;
|
||||||
//request.getCookies(cookies);
|
//request.getCookies(cookies);
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
<%@ page class="LoginPage" %>
|
<%@ page class="LoginPage" %>
|
||||||
<%@ page form="true" %>
|
<%@ page form="true" %>
|
||||||
<%@ page baseClass="PageRequestMessagedHandler" %>
|
<%@ page baseClass="SessionHTTPRequestHandler" %>
|
||||||
<%@ header include="PageRequestMessagedHandler.h" %>
|
<%@ page ctorArg="Session*" %>
|
||||||
|
<%@ header include="SessionHTTPRequestHandler.h" %>
|
||||||
<%@ page compressed="true" %>
|
<%@ page compressed="true" %>
|
||||||
<%!
|
<%!
|
||||||
#include "../gettext.h"
|
#include "../gettext.h"
|
||||||
@ -21,6 +22,11 @@
|
|||||||
auto lang = chooseLanguage(request);
|
auto lang = chooseLanguage(request);
|
||||||
auto langCatalog = lm->getFreeCatalog(lang);
|
auto langCatalog = lm->getFreeCatalog(lang);
|
||||||
|
|
||||||
|
std::string presetEmail("");
|
||||||
|
if(mSession && mSession->getUser()) {
|
||||||
|
presetEmail = mSession->getUser()->getEmail();
|
||||||
|
}
|
||||||
|
|
||||||
if(!form.empty()) {
|
if(!form.empty()) {
|
||||||
bool langUpdatedByBtn = false;
|
bool langUpdatedByBtn = false;
|
||||||
auto langBtn = form.get("lang-btn", "");
|
auto langBtn = form.get("lang-btn", "");
|
||||||
@ -42,10 +48,10 @@
|
|||||||
auto password = form.get("login-password", "");
|
auto password = form.get("login-password", "");
|
||||||
|
|
||||||
if(email != "" && password != "") {
|
if(email != "" && password != "") {
|
||||||
auto session = sm->getSession(request);
|
//auto session = sm->getSession(request);
|
||||||
if(!session) {
|
if(!mSession) {
|
||||||
session = sm->getNewSession();
|
mSession = sm->getNewSession();
|
||||||
session->setLanguageCatalog(langCatalog);
|
mSession->setLanguageCatalog(langCatalog);
|
||||||
// get language
|
// get language
|
||||||
// first check url, second check language header
|
// first check url, second check language header
|
||||||
// for debugging client ip
|
// for debugging client ip
|
||||||
@ -55,13 +61,13 @@
|
|||||||
Poco::Logger::get("requestLog").information(clientIpString);
|
Poco::Logger::get("requestLog").information(clientIpString);
|
||||||
// debugging end
|
// debugging end
|
||||||
auto user_host = request.clientAddress().host();
|
auto user_host = request.clientAddress().host();
|
||||||
session->setClientIp(user_host);
|
mSession->setClientIp(user_host);
|
||||||
response.addCookie(session->getLoginCookie());
|
response.addCookie(mSession->getLoginCookie());
|
||||||
} else {
|
} else {
|
||||||
langCatalog = session->getLanguageCatalog();
|
langCatalog = mSession->getLanguageCatalog();
|
||||||
}
|
}
|
||||||
auto userState = session->loadUser(email, password);
|
auto userState = mSession->loadUser(email, password);
|
||||||
getErrors(session);
|
getErrors(mSession);
|
||||||
|
|
||||||
auto uri_start = request.serverParams().getServerName();
|
auto uri_start = request.serverParams().getServerName();
|
||||||
|
|
||||||
@ -71,7 +77,7 @@
|
|||||||
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")));
|
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")));
|
||||||
break;
|
break;
|
||||||
case USER_EMAIL_NOT_ACTIVATED:
|
case USER_EMAIL_NOT_ACTIVATED:
|
||||||
session->addError(new Error(langCatalog->gettext("Account"), langCatalog->gettext("E-Mail Address not checked, do you already get one?")));
|
mSession->addError(new Error(langCatalog->gettext("Account"), langCatalog->gettext("E-Mail Address not checked, do you already get one?")));
|
||||||
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
response.redirect(ServerConfig::g_serverPath + "/checkEmail");
|
||||||
return;
|
return;
|
||||||
case USER_NO_KEYS:
|
case USER_NO_KEYS:
|
||||||
@ -89,10 +95,11 @@
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// on enter login page with empty form
|
// on enter login page with empty form
|
||||||
auto session = sm->getSession(request);
|
//auto session = sm->getSession(request);
|
||||||
// remove old cookies and session if exist
|
// remove old cookies and session if exist
|
||||||
if(session) {
|
if(mSession) {
|
||||||
sm->releaseSession(session);
|
getErrors(mSession);
|
||||||
|
sm->releaseSession(mSession);
|
||||||
}
|
}
|
||||||
sm->deleteLoginCookies(request, response);
|
sm->deleteLoginCookies(request, response);
|
||||||
}
|
}
|
||||||
@ -136,7 +143,7 @@
|
|||||||
<div class="row display-block">
|
<div class="row display-block">
|
||||||
<div class="col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper">
|
<div class="col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper">
|
||||||
<div class="form-group input-rounded">
|
<div class="form-group input-rounded">
|
||||||
<input type="text" class="form-control" name="login-email" placeholder="<%= langCatalog->gettext("E-Mail") %>" />
|
<input type="text" class="form-control" name="login-email" placeholder="<%= langCatalog->gettext("E-Mail") %>" value="<%= presetEmail %>"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group input-rounded">
|
<div class="form-group input-rounded">
|
||||||
<input type="password" class="form-control" name="login-password" placeholder="<%= langCatalog->gettext("Password") %>" />
|
<input type="password" class="form-control" name="login-password" placeholder="<%= langCatalog->gettext("Password") %>" />
|
||||||
|
|||||||
@ -26,9 +26,17 @@
|
|||||||
if(user->setNewPassword(form.get("register-password"))) {
|
if(user->setNewPassword(form.get("register-password"))) {
|
||||||
//std::string referUri = request.get("Referer", uri_start + "/");
|
//std::string referUri = request.get("Referer", uri_start + "/");
|
||||||
//printf("[updateUserPasswordPage] redirect to referUri: %s\n", referUri.data());
|
//printf("[updateUserPasswordPage] redirect to referUri: %s\n", referUri.data());
|
||||||
|
|
||||||
// I think we can savly assume that this session was loaded from verification code
|
// I think we can savly assume that this session was loaded from verification code
|
||||||
mSession->updateEmailVerification(mSession->getEmailVerificationCode());
|
//! \return 1 = konto already activated
|
||||||
|
//! -1 = invalid code
|
||||||
|
//! -2 = critical error
|
||||||
|
//! 0 = ok
|
||||||
|
auto ret = mSession->updateEmailVerification(mSession->getEmailVerificationCode());
|
||||||
mSession->getErrors(user);
|
mSession->getErrors(user);
|
||||||
|
if(-2 == ret || -1 == ret || 1 == ret) {
|
||||||
|
response.redirect(uri_start + "/error500");
|
||||||
|
}
|
||||||
response.redirect(uri_start + "/passphrase");
|
response.redirect(uri_start + "/passphrase");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -38,7 +46,7 @@
|
|||||||
}
|
}
|
||||||
getErrors(mSession);
|
getErrors(mSession);
|
||||||
getErrors(user);
|
getErrors(user);
|
||||||
%><%@ include file="header.cpsp" %>
|
%><%@ include file="header_old.cpsp" %>
|
||||||
<div class="grd_container">
|
<div class="grd_container">
|
||||||
<h1>Passwort bestimmen</h1>
|
<h1>Passwort bestimmen</h1>
|
||||||
<%= getErrorsHtml() %>
|
<%= getErrorsHtml() %>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user