mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
bring everything together to complete direct register :)
This commit is contained in:
parent
875632e892
commit
31e00d9081
@ -52,6 +52,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
}
|
||||
|
||||
if(!form.empty()) {
|
||||
|
||||
bool langUpdatedByBtn = false;
|
||||
auto langBtn = form.get("lang", "");
|
||||
if(langBtn != "") {
|
||||
@ -77,6 +78,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
|
||||
if(email != "" && password != "") {
|
||||
//auto session = sm->getSession(request);
|
||||
//if(!mSession) mSession = sm->findByEmail(email);
|
||||
if(!mSession) {
|
||||
mSession = sm->getNewSession();
|
||||
mSession->setLanguageCatalog(langCatalog);
|
||||
@ -98,7 +100,9 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
auto user = mSession->getNewUser();
|
||||
|
||||
if(userState >= USER_LOADED_FROM_DB && !user->getModel()->getPublicKey()) {
|
||||
mSession->generateKeys(true, true);
|
||||
if(mSession->generateKeys(true, true)) {
|
||||
userState = USER_COMPLETE;
|
||||
}
|
||||
} else {
|
||||
//printf("pubkey exist: %p\n",user->getModel()->getPublicKey());
|
||||
}
|
||||
@ -129,6 +133,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
refererString = referer->second;
|
||||
}
|
||||
if(lastExternReferer != "") {
|
||||
//printf("redirect to: %s\n", lastExternReferer.data());
|
||||
response.redirect(lastExternReferer);
|
||||
} else if(refererString != "" &&
|
||||
refererString.find("login") == std::string::npos &&
|
||||
@ -139,6 +144,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
printf("request uri: %s, redirect to: %s\n", uri.data(), refererString.data());
|
||||
response.redirect(refererString);
|
||||
} else {
|
||||
//printf("redirect to: %s\n", ServerConfig::g_php_serverPath.data());
|
||||
response.redirect(ServerConfig::g_php_serverPath + "/");
|
||||
}
|
||||
return;
|
||||
@ -149,6 +155,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// on enter login page with empty form
|
||||
//auto session = sm->getSession(request);
|
||||
// remove old cookies and session if exist
|
||||
@ -225,20 +232,20 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << " <div class=\"row\">\n";
|
||||
responseStream << " <div class=\"col-12 logo-section\">\n";
|
||||
responseStream << " <a href=\"";
|
||||
#line 155 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 162 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "\" class=\"logo\">\n";
|
||||
responseStream << "\t\t\t<picture>\n";
|
||||
responseStream << "\t\t\t\t<source srcset=\"";
|
||||
#line 157 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "img/logo_schrift.webp\" type=\"image/webp\">\n";
|
||||
responseStream << "\t\t\t\t<source srcset=\"";
|
||||
#line 158 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 165 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "img/logo_schrift.png\" type=\"image/png\"> \n";
|
||||
responseStream << "\t\t\t\t<img src=\"";
|
||||
#line 159 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 166 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
|
||||
responseStream << "\t\t\t</picture>\n";
|
||||
@ -250,14 +257,14 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
responseStream << " <div class=\"grid\">\n";
|
||||
responseStream << "\t\t\t<div class=\"center-ul-container\">\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 168 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 175 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( getErrorsHtml() );
|
||||
responseStream << "\t \n";
|
||||
responseStream << "\t\t\t</div>\n";
|
||||
responseStream << " <div class=\"grid-body\">\n";
|
||||
responseStream << " \n";
|
||||
responseStream << "\t\t\t <!--<input type=\"hidden\" name=\"lang\" value=\"";
|
||||
#line 172 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( LanguageManager::keyForLanguage(lang) );
|
||||
responseStream << "\">-->\n";
|
||||
responseStream << "\t\t\t ";
|
||||
@ -297,51 +304,51 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
|
||||
// end include flags.cpsp
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t <form action=\"";
|
||||
#line 174 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 181 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_serverPath );
|
||||
responseStream << "/\" method=\"POST\">\n";
|
||||
responseStream << " <div class=\"row display-block\">\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 << " <input type=\"text\" class=\"form-control\" name=\"login-email\" placeholder=\"";
|
||||
#line 178 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext("E-Mail") );
|
||||
responseStream << "\" value=\"";
|
||||
#line 178 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( presetEmail );
|
||||
responseStream << "\"/>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " <div class=\"form-group input-rounded\">\n";
|
||||
responseStream << " <input type=\"password\" class=\"form-control\" name=\"login-password\" placeholder=\"";
|
||||
#line 181 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 188 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Password") );
|
||||
responseStream << "\" />\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " <button type=\"submit\" name=\"submit\" class=\"btn btn-primary btn-block\">";
|
||||
#line 183 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 190 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext(" Login ") );
|
||||
responseStream << "</button>\n";
|
||||
responseStream << " <div class=\"signup-link\">\n";
|
||||
responseStream << " <p>";
|
||||
#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 192 "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 << " <a href=\"";
|
||||
#line 186 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 193 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_serverPath );
|
||||
responseStream << "/registerDirect\">\n";
|
||||
responseStream << "\t\t\t\t\t\t";
|
||||
#line 187 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 194 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Create New Account") );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t </a>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << "\t\t\t\t\t<div class=\"reset-pwd-link\">\n";
|
||||
responseStream << "\t\t\t\t\t\t<a href=\"";
|
||||
#line 191 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 198 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( ServerConfig::g_serverPath );
|
||||
responseStream << "/resetPassword\">";
|
||||
#line 191 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
#line 198 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Passwort vergessen") );
|
||||
responseStream << "</a>\n";
|
||||
responseStream << "\t\t\t\t\t</div>\n";
|
||||
|
||||
@ -87,11 +87,11 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
}
|
||||
else
|
||||
{
|
||||
if(user_exist && !user->tryLoadPassphraseUserBackup()) {
|
||||
if(user_exist && (!user->tryLoadPassphraseUserBackup() || !user->hasPublicKey())) {
|
||||
sendUserEmail = true;
|
||||
}
|
||||
}
|
||||
|
||||
printf("userExist: %d, sendUserEmail: %d\n", user_exist, sendUserEmail);
|
||||
if(!errorCount())
|
||||
{
|
||||
// send reset password email
|
||||
@ -99,6 +99,7 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
if(user_exist) {
|
||||
result = session->sendResetPasswordEmail(user, sendUserEmail);
|
||||
}
|
||||
printf("result: %d\n", result);
|
||||
if(2 == result) {
|
||||
state = PAGE_EMAIL_ALREADY_SEND;
|
||||
} else if(sendUserEmail) {
|
||||
@ -227,34 +228,34 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
responseStream << "\n";
|
||||
responseStream << "</style>\n";
|
||||
responseStream << " ";
|
||||
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 125 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
if(state == PAGE_EMAIL_ASK) { responseStream << "\n";
|
||||
responseStream << "\t\t<form action=\"";
|
||||
#line 125 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( ServerConfig::g_serverPath );
|
||||
responseStream << "/resetPassword\">\n";
|
||||
responseStream << "\t\t\t<div class=\"item-wrapper\">\n";
|
||||
responseStream << "\t\t\t <div class=\"form-group\">\n";
|
||||
responseStream << "\t\t\t\t<label for=\"email\">";
|
||||
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Gebe bitte hier deine E-Mail Adresse an:") );
|
||||
responseStream << " </label>\n";
|
||||
responseStream << "\t\t\t\t<input type=\"text\" class=\"";
|
||||
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( emailInputClass );
|
||||
responseStream << "\" name=\"email\" id=\"email\" placeholder=\"E-Mail\" value=\"";
|
||||
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( email );
|
||||
responseStream << "\">\n";
|
||||
responseStream << "\t\t\t </div>\n";
|
||||
responseStream << "\t\t\t <button type=\"submit\" class=\"btn btn-sm btn-primary\" >";
|
||||
#line 131 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 132 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Bestätigen") );
|
||||
responseStream << "</button>\n";
|
||||
responseStream << "\t\t\t</div>\n";
|
||||
responseStream << "\t\t</form>\n";
|
||||
responseStream << "\t";
|
||||
#line 134 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
} else if(state == PAGE_ASK) { responseStream << "\n";
|
||||
responseStream << "\t\t";
|
||||
// begin include flags.cpsp
|
||||
@ -293,35 +294,35 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
// end include flags.cpsp
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t<form action=\"";
|
||||
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 137 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( ServerConfig::g_serverPath );
|
||||
responseStream << "/resetPassword\">\n";
|
||||
responseStream << "\t\t\t<div class=\"item-wrapper\">\n";
|
||||
responseStream << "\t\t\t <div class=\"form-group\">\n";
|
||||
responseStream << "\t\t\t\t<label for=\"email\">";
|
||||
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 140 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Gebe bitte hier deine E-Mail Adresse an:") );
|
||||
responseStream << " </label>\n";
|
||||
responseStream << "\t\t\t\t<input type=\"text\" class=\"";
|
||||
#line 140 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 141 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( emailInputClass );
|
||||
responseStream << "\" name=\"email\" id=\"email\" placeholder=\"E-Mail\" value=\"";
|
||||
#line 140 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 141 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( email );
|
||||
responseStream << "\">\n";
|
||||
responseStream << "\t\t\t\t<label>";
|
||||
#line 141 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Hast du dir deine Passphrase notiert oder gemerkt?") );
|
||||
responseStream << "</label> \n";
|
||||
responseStream << "\t\t\t\t<input type=\"hidden\" name=\"ask_passphrase\" value=\"true\">\n";
|
||||
responseStream << "\t\t\t\t<div class=\"";
|
||||
#line 143 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( passphraseRadioClass );
|
||||
responseStream << "\">\n";
|
||||
responseStream << "\t\t\t\t\t<div class=\"radio\">\n";
|
||||
responseStream << "\t\t\t\t\t <label class=\"radio-label mr-4\">\n";
|
||||
responseStream << "\t\t\t\t\t\t<input name=\"passphrase_memorized\" onclick=\"removeGroupInvalidClass()\" type=\"radio\" value=\"true\">";
|
||||
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Ja") );
|
||||
responseStream << " <i class=\"input-frame\"></i>\n";
|
||||
responseStream << "\t\t\t\t\t </label>\n";
|
||||
@ -329,7 +330,7 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
responseStream << "\t\t\t\t\t<div class=\"radio\">\n";
|
||||
responseStream << "\t\t\t\t\t <label class=\"radio-label\">\n";
|
||||
responseStream << "\t\t\t\t\t\t<input name=\"passphrase_memorized\" onclick=\"removeGroupInvalidClass()\" type=\"radio\" value=\"false\">";
|
||||
#line 151 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 152 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Nein") );
|
||||
responseStream << " <i class=\"input-frame\"></i>\n";
|
||||
responseStream << "\t\t\t\t\t </label>\n";
|
||||
@ -337,45 +338,45 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
|
||||
responseStream << "\t\t\t\t</div>\n";
|
||||
responseStream << "\t\t\t </div>\n";
|
||||
responseStream << "\t\t\t <button type=\"submit\" class=\"btn btn-sm btn-primary\" name=\"ask\" >";
|
||||
#line 156 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 157 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Absenden") );
|
||||
responseStream << "</button>\n";
|
||||
responseStream << "\t\t\t</div>\n";
|
||||
responseStream << "\t\t</form>\n";
|
||||
responseStream << "\t ";
|
||||
#line 159 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
} else if(state == PAGE_WAIT_EMAIL) { responseStream << "\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 160 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 161 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen.") );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t ";
|
||||
#line 161 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 162 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
} else if(state == PAGE_WAIT_ADMIN) { responseStream << "\n";
|
||||
responseStream << "\t\t\t";
|
||||
#line 162 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 163 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Der Admin hat eine E-Mail bekommen und wird sich bei dir melden.") );
|
||||
responseStream << "\n";
|
||||
responseStream << "\t ";
|
||||
#line 163 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
} else if(state == PAGE_EMAIL_ALREADY_SEND) { responseStream << "\n";
|
||||
responseStream << "\t\t\t<p>";
|
||||
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 165 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-Verzeichnis nach. ") );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t<p>";
|
||||
#line 165 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 166 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten gewartet?") );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t<p><b><a href=\"mailto:";
|
||||
#line 166 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 167 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( adminReceiver );
|
||||
responseStream << "?subject=Error Reset Password email&body=Hallo Dario,%0D%0A%0D%0Aich habe keine Passwort zurücksetzen E-Mail erhalten,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
|
||||
#line 166 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 167 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
responseStream << ( langCatalog->gettext("E-Mail an Support schicken"));
|
||||
responseStream << "</a></b></p>\n";
|
||||
responseStream << "\t ";
|
||||
#line 167 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
#line 168 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\resetPassword.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << " </div> \n";
|
||||
responseStream << " </div>\n";
|
||||
|
||||
@ -111,9 +111,11 @@ int EmailManager::ThreadFunction()
|
||||
if (email->draft(&mailMessage, catalogs[lang_code])) {
|
||||
|
||||
mailClientSession.sendMessage(mailMessage);
|
||||
// add for debugginh
|
||||
auto user_model = email->getUser()->getModel();
|
||||
printf("send email to %s\n", user_model->getEmail().data());
|
||||
// add for debugging
|
||||
if (email->getUser()) {
|
||||
auto user_model = email->getUser()->getModel();
|
||||
printf("send email to %s\n", user_model->getEmail().data());
|
||||
}
|
||||
}
|
||||
else {
|
||||
// error drafting email, shouldn't happend
|
||||
|
||||
@ -381,6 +381,53 @@ Session* SessionManager::findByUserId(int userId)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::vector<Session*> SessionManager::findAllByUserId(int userId)
|
||||
{
|
||||
assert(userId > 0);
|
||||
std::vector<Session*> result;
|
||||
try {
|
||||
Poco::Mutex::ScopedLock _lock(mWorkingMutex, 500);
|
||||
}
|
||||
catch (Poco::TimeoutException &ex) {
|
||||
printf("[SessionManager::findAllByUserId] exception timout mutex: %s\n", ex.displayText().data());
|
||||
return result;
|
||||
}
|
||||
//mWorkingMutex.lock();
|
||||
for (auto it = mRequestSessionMap.begin(); it != mRequestSessionMap.end(); it++) {
|
||||
auto user = it->second->getNewUser();
|
||||
if (userId == user->getModel()->getID()) {
|
||||
//return it->second;
|
||||
result.push_back(it->second);
|
||||
}
|
||||
}
|
||||
//mWorkingMutex.unlock();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Session* SessionManager::findByEmail(const std::string& email)
|
||||
{
|
||||
assert(email.size() > 0);
|
||||
|
||||
try {
|
||||
Poco::Mutex::ScopedLock _lock(mWorkingMutex, 500);
|
||||
}
|
||||
catch (Poco::TimeoutException &ex) {
|
||||
printf("[SessionManager::findByEmail] exception timout mutex: %s\n", ex.displayText().data());
|
||||
return nullptr;
|
||||
}
|
||||
//mWorkingMutex.lock();
|
||||
for (auto it = mRequestSessionMap.begin(); it != mRequestSessionMap.end(); it++) {
|
||||
auto user = it->second->getNewUser();
|
||||
if (email == user->getModel()->getEmail()) {
|
||||
return it->second;
|
||||
}
|
||||
}
|
||||
//mWorkingMutex.unlock();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void SessionManager::checkTimeoutSession()
|
||||
{
|
||||
|
||||
|
||||
@ -57,7 +57,9 @@ public:
|
||||
Session* getSession(int handle);
|
||||
Session* getSession(const Poco::Net::HTTPServerRequest& request);
|
||||
Session* findByEmailVerificationCode(const Poco::UInt64& emailVerificationCode);
|
||||
Session* findByEmail(const std::string& email);
|
||||
Session* findByUserId(int userId);
|
||||
std::vector<Session*> findAllByUserId(int userId);
|
||||
|
||||
bool init();
|
||||
void deinitalize();
|
||||
@ -89,6 +91,7 @@ protected:
|
||||
Poco::RegularExpression* mValidations[VALIDATE_MAX];
|
||||
};
|
||||
|
||||
|
||||
class CheckSessionTimeouted : public UniLib::controller::CPUTask
|
||||
{
|
||||
public:
|
||||
|
||||
@ -368,6 +368,7 @@ namespace controller {
|
||||
if (scheduledResendTask == 3) continue;
|
||||
|
||||
auto age = now - created;
|
||||
//printf("age: %d\n", age.days());
|
||||
// older than 7 days, schedule at once
|
||||
if (age.days() > 7 && !(scheduledResendTask & 1)) {
|
||||
UniLib::controller::TaskPtr verificationResendTask(new VerificationEmailResendTask(user_id));
|
||||
|
||||
@ -471,6 +471,8 @@ int Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
||||
if (user_model->errorCount() > 0) {
|
||||
user_model->sendErrorsAsEmail();
|
||||
}
|
||||
|
||||
// no find all active sessions
|
||||
|
||||
updateState(SESSION_STATE_EMAIL_VERIFICATION_CODE_CHECKED);
|
||||
return 0;
|
||||
|
||||
@ -195,10 +195,12 @@ namespace model {
|
||||
}
|
||||
catch (Poco::Exception& ex) {
|
||||
lock();
|
||||
addError(new ParamError(getTableName(), "mysql error by selecting", ex.displayText()));
|
||||
addError(new ParamError(getTableName(), "mysql error by selecting, maybe more than one result?", ex.displayText()));
|
||||
int count = 0;
|
||||
for (auto it = fieldNames.begin(); it != fieldNames.end(); it++) {
|
||||
addError(new ParamError(getTableName(), "field name for select: ", *it));
|
||||
}
|
||||
|
||||
//addError(new ParamError(getTableName(), "field name for select: ", fieldName.data()));
|
||||
unlock();
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ namespace model {
|
||||
inline void setEmailChecked(bool emailChecked) { mEmailChecked = emailChecked; }
|
||||
inline void setLanguageKey(const std::string& languageKey) { mLanguageKey = languageKey; }
|
||||
|
||||
Poco::JSON::Object getJson();
|
||||
Poco::JSON::Object getJson();
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
}
|
||||
|
||||
if(!form.empty()) {
|
||||
|
||||
bool langUpdatedByBtn = false;
|
||||
auto langBtn = form.get("lang", "");
|
||||
if(langBtn != "") {
|
||||
@ -56,6 +57,7 @@
|
||||
|
||||
if(email != "" && password != "") {
|
||||
//auto session = sm->getSession(request);
|
||||
//if(!mSession) mSession = sm->findByEmail(email);
|
||||
if(!mSession) {
|
||||
mSession = sm->getNewSession();
|
||||
mSession->setLanguageCatalog(langCatalog);
|
||||
@ -77,7 +79,9 @@
|
||||
auto user = mSession->getNewUser();
|
||||
|
||||
if(userState >= USER_LOADED_FROM_DB && !user->getModel()->getPublicKey()) {
|
||||
mSession->generateKeys(true, true);
|
||||
if(mSession->generateKeys(true, true)) {
|
||||
userState = USER_COMPLETE;
|
||||
}
|
||||
} else {
|
||||
//printf("pubkey exist: %p\n",user->getModel()->getPublicKey());
|
||||
}
|
||||
@ -108,6 +112,7 @@
|
||||
refererString = referer->second;
|
||||
}
|
||||
if(lastExternReferer != "") {
|
||||
//printf("redirect to: %s\n", lastExternReferer.data());
|
||||
response.redirect(lastExternReferer);
|
||||
} else if(refererString != "" &&
|
||||
refererString.find("login") == std::string::npos &&
|
||||
@ -118,6 +123,7 @@
|
||||
printf("request uri: %s, redirect to: %s\n", uri.data(), refererString.data());
|
||||
response.redirect(refererString);
|
||||
} else {
|
||||
//printf("redirect to: %s\n", ServerConfig::g_php_serverPath.data());
|
||||
response.redirect(ServerConfig::g_php_serverPath + "/");
|
||||
}
|
||||
return;
|
||||
@ -128,6 +134,7 @@
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// on enter login page with empty form
|
||||
//auto session = sm->getSession(request);
|
||||
// remove old cookies and session if exist
|
||||
|
||||
@ -70,7 +70,7 @@ enum PageState {
|
||||
}
|
||||
else
|
||||
{
|
||||
if(user_exist && !user->tryLoadPassphraseUserBackup()) {
|
||||
if(user_exist && (!user->tryLoadPassphraseUserBackup() || !user->hasPublicKey())) {
|
||||
sendUserEmail = true;
|
||||
}
|
||||
}
|
||||
@ -82,6 +82,7 @@ enum PageState {
|
||||
if(user_exist) {
|
||||
result = session->sendResetPasswordEmail(user, sendUserEmail);
|
||||
}
|
||||
|
||||
if(2 == result) {
|
||||
state = PAGE_EMAIL_ALREADY_SEND;
|
||||
} else if(sendUserEmail) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user