mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Handle new direct register after check email, instead forward to show passphrase, only success message and link to dashboard
This commit is contained in:
parent
5439aaf259
commit
57cada7252
@ -14,6 +14,7 @@ enum PageState
|
||||
{
|
||||
MAIL_NOT_SEND,
|
||||
ASK_VERIFICATION_CODE,
|
||||
EMAIL_ACTIVATED,
|
||||
KONTO_ALREADY_EXIST
|
||||
};
|
||||
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||
@ -35,7 +36,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||
|
||||
Poco::Net::HTMLForm form(request, request.stream());
|
||||
#line 18 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 19 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
|
||||
const char* pageName = "Email Verification";
|
||||
auto lm = LanguageManager::getInstance();
|
||||
@ -44,36 +45,45 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
auto langCatalog = lm->getFreeCatalog(lang);
|
||||
unsigned long long verificationCode = 0;
|
||||
|
||||
if(!form.empty()) {
|
||||
auto langBtn = form.get("lang-btn", "");
|
||||
auto verficationCodeStr = form.get("email-verification-code", "0");
|
||||
try {
|
||||
verificationCode = stoull(verficationCodeStr);
|
||||
} catch(...) {
|
||||
verificationCode = 0;
|
||||
}
|
||||
auto updatedLang = LANG_NULL;
|
||||
if(langBtn != "") {
|
||||
lang = chooseLanguage(request, langBtn);
|
||||
langCatalog = lm->getFreeCatalog(lang);
|
||||
}
|
||||
}
|
||||
|
||||
// remove old cookies if exist
|
||||
auto sm = SessionManager::getInstance();
|
||||
sm->deleteLoginCookies(request, response, mSession);
|
||||
PageState state = ASK_VERIFICATION_CODE;
|
||||
if(mSession) {
|
||||
getErrors(mSession);
|
||||
if(mSession->getSessionState() < SESSION_STATE_EMAIL_VERIFICATION_SEND) {
|
||||
//state = MAIL_NOT_SEND;
|
||||
|
||||
if(mSession && model::table::EMAIL_OPT_IN_REGISTER_DIRECT == mSession->getEmailVerificationType())
|
||||
{
|
||||
state = EMAIL_ACTIVATED;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if(!form.empty()) {
|
||||
auto langBtn = form.get("lang-btn", "");
|
||||
auto verficationCodeStr = form.get("email-verification-code", "0");
|
||||
try {
|
||||
verificationCode = stoull(verficationCodeStr);
|
||||
} catch(...) {
|
||||
verificationCode = 0;
|
||||
}
|
||||
auto updatedLang = LANG_NULL;
|
||||
if(langBtn != "") {
|
||||
lang = chooseLanguage(request, langBtn);
|
||||
langCatalog = lm->getFreeCatalog(lang);
|
||||
}
|
||||
}
|
||||
|
||||
// remove old cookies if exist
|
||||
auto sm = SessionManager::getInstance();
|
||||
sm->deleteLoginCookies(request, response, mSession);
|
||||
|
||||
if(mSession) {
|
||||
getErrors(mSession);
|
||||
if(mSession->getSessionState() < SESSION_STATE_EMAIL_VERIFICATION_SEND) {
|
||||
//state = MAIL_NOT_SEND;
|
||||
}
|
||||
}
|
||||
auto hasErrors = errorCount() > 0;
|
||||
if(!verificationCode) {
|
||||
verificationCode = getLastGetAsU64(request.getURI());
|
||||
}
|
||||
}
|
||||
auto hasErrors = errorCount() > 0;
|
||||
if(!verificationCode) {
|
||||
verificationCode = getLastGetAsU64(request.getURI());
|
||||
}
|
||||
|
||||
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp"
|
||||
|
||||
bool withMaterialIcons = false;
|
||||
@ -130,20 +140,20 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << " <div class=\"row\">\n";
|
||||
responseStream << " <div class=\"col-12 logo-section\">\n";
|
||||
responseStream << " <a href=\"";
|
||||
#line 60 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 70 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "\" class=\"logo\">\n";
|
||||
responseStream << " <picture>\n";
|
||||
responseStream << "\t\t\t\t<source srcset=\"";
|
||||
#line 62 "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 << "img/logo_schrift.webp\" type=\"image/webp\">\n";
|
||||
responseStream << "\t\t\t\t<source srcset=\"";
|
||||
#line 63 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 73 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "img/logo_schrift.png\" type=\"image/png\"> \n";
|
||||
responseStream << "\t\t\t\t<img src=\"";
|
||||
#line 64 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 74 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "img/logo_schrift.png\" alt=\"logo\" />\n";
|
||||
responseStream << "\t\t\t</picture>\n";
|
||||
@ -155,25 +165,25 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << " <div class=\"grid\">\n";
|
||||
responseStream << " <div class=\"center-ul-container\">\n";
|
||||
responseStream << " ";
|
||||
#line 73 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( getErrorsHtml() );
|
||||
responseStream << "\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " <div class=\"grid-body\">\n";
|
||||
responseStream << " <form action=\"";
|
||||
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 86 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "account/checkEmail\" method=\"GET\">\n";
|
||||
responseStream << " <div class=\"row pull-right-row\">\n";
|
||||
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||
responseStream << " <button id=\"flag-england\" name=\"lang-btn\" value=\"en\" title=\"English\" type=\"submit\" ";
|
||||
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
if(lang != LANG_EN) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
||||
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 90 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
}
|
||||
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
||||
#line 81 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 91 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
} responseStream << ">\n";
|
||||
responseStream << " <span class=\"flag-england\"></span>\n";
|
||||
responseStream << " </button>\n";
|
||||
@ -182,69 +192,89 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::
|
||||
responseStream << " <div class=\"equel-grid pull-right\">\n";
|
||||
responseStream << " <div class=\"grid-body-small text-center\">\n";
|
||||
responseStream << " <button id=\"flag-germany\" name=\"lang-btn\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
|
||||
#line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
if(lang != LANG_DE) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
|
||||
#line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
}
|
||||
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
|
||||
#line 89 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 99 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
} responseStream << ">\n";
|
||||
responseStream << " <span class=\"flag-germany\"></span>\n";
|
||||
responseStream << " </button>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
if(EMAIL_ACTIVATED == state) { responseStream << "\n";
|
||||
responseStream << "\t\t\t\t\t<p>";
|
||||
#line 106 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden.") );
|
||||
responseStream << "</p>\n";
|
||||
responseStream << "\t\t\t\t\t<a class=\"btn btn-sm btn-primary\" href=\"";
|
||||
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( ServerConfig::g_php_serverPath );
|
||||
responseStream << "\">";
|
||||
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Zur Startseite") );
|
||||
responseStream << "</a>\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
} else { responseStream << "\n";
|
||||
responseStream << " <div class=\"item-wrapper\">\n";
|
||||
responseStream << " <div class=\"form-group\">\n";
|
||||
responseStream << " <label for=\"email-verification-code\">";
|
||||
#line 97 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 111 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Bitte gebe deinen E-Mail Verification Code ein:"));
|
||||
responseStream << "</label>\n";
|
||||
responseStream << " <input type=\"number\" class=\"form-control\" name=\"email-verification-code\" id=\"email-verification-code\" placeholder=\"";
|
||||
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Email Verification Code"));
|
||||
responseStream << "\" ";
|
||||
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
if(verificationCode) { responseStream << "value=\"";
|
||||
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( verificationCode );
|
||||
responseStream << "\" ";
|
||||
#line 98 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 112 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
} responseStream << ">\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " <button type=\"submit\" class=\"btn btn-sm btn-primary\">";
|
||||
#line 100 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 114 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Überprüfe Code"));
|
||||
responseStream << "</button>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " </form>\n";
|
||||
responseStream << " <!--<p class=\"margin-top-10\">\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 118 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Du hast bisher keinen Code erhalten?"));
|
||||
responseStream << "<br> \n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("E-Mail erneut zuschicken (in Arbeit)"));
|
||||
responseStream << "\n";
|
||||
responseStream << "\t\t\t </p>-->\n";
|
||||
responseStream << " <p class=\"margin-top-10\">\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Funktioniert dein E-Mail Verification Code nicht?"));
|
||||
responseStream << "<br>\n";
|
||||
responseStream << "\t\t\t\t";
|
||||
#line 109 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("Schicke uns eine E-Mail und wir kümmern uns darum: "));
|
||||
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: ";
|
||||
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( verificationCode );
|
||||
responseStream << " funktioniert nicht,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A\">";
|
||||
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
responseStream << ( langCatalog->gettext("E-Mail an Support schicken"));
|
||||
responseStream << "</a></b>\n";
|
||||
responseStream << "\t\t\t </p>\n";
|
||||
responseStream << "\t\t\t ";
|
||||
#line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\checkEmail.cpsp"
|
||||
} responseStream << "\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " </div>\n";
|
||||
responseStream << " </div>\n";
|
||||
|
||||
@ -367,8 +367,13 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::handleCheckEmail(Sessi
|
||||
|
||||
if (0 == retUpdateEmailVerification) {
|
||||
//printf("[PageRequestHandlerFactory::handleCheckEmail] timeUsed: %s\n", timeUsed.string().data());
|
||||
SessionHTTPRequestHandler* pageRequestHandler = nullptr;
|
||||
if (model::table::EMAIL_OPT_IN_REGISTER_DIRECT == session->getEmailVerificationType()) {
|
||||
pageRequestHandler = new CheckEmailPage(session);
|
||||
} else {
|
||||
pageRequestHandler = new PassphrasePage(session);
|
||||
}
|
||||
|
||||
auto pageRequestHandler = new PassphrasePage(session);
|
||||
pageRequestHandler->setProfiler(timeUsed);
|
||||
return pageRequestHandler;
|
||||
|
||||
|
||||
@ -422,62 +422,66 @@ bool Session::ifUserExist(const std::string& email)
|
||||
int Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
||||
{
|
||||
const static char* funcName = "Session::updateEmailVerification";
|
||||
lock(funcName);
|
||||
|
||||
Poco::ScopedLock<Poco::Mutex> _lock(mWorkMutex);
|
||||
Profiler usedTime;
|
||||
|
||||
auto em = ErrorManager::getInstance();
|
||||
if (mEmailVerificationCodeObject.isNull()) {
|
||||
em->addError(new Error(funcName, "email verification object is zero"));
|
||||
em->sendErrorsAsEmail();
|
||||
unlock();
|
||||
|
||||
return -2;
|
||||
}
|
||||
auto emailVerificationCodeModel = mEmailVerificationCodeObject->getModel();
|
||||
if(emailVerificationCodeModel->getCode() == emailVerificationCode) {
|
||||
auto email_verification_code_model = mEmailVerificationCodeObject->getModel();
|
||||
if(email_verification_code_model->getCode() == emailVerificationCode) {
|
||||
if (mSessionUser && mSessionUser->getDBId() == 0) {
|
||||
//addError(new Error("E-Mail Verification", "Benutzer wurde nicht richtig gespeichert, bitte wende dich an den Server-Admin"));
|
||||
em->addError(new Error(funcName, "user exist with 0 as id"));
|
||||
em->sendErrorsAsEmail();
|
||||
unlock();
|
||||
|
||||
//return false;
|
||||
return -2;
|
||||
}
|
||||
|
||||
// load correct user from db
|
||||
if (mNewUser.isNull() || mNewUser->getModel()->getID() != emailVerificationCodeModel->getUserId()) {
|
||||
if (mNewUser.isNull() || mNewUser->getModel()->getID() != email_verification_code_model->getUserId()) {
|
||||
mNewUser = controller::User::create();
|
||||
if (1 != mNewUser->load(emailVerificationCodeModel->getUserId())) {
|
||||
em->addError(new ParamError(funcName, "user load didn't return 1 with user_id ", emailVerificationCodeModel->getUserId()));
|
||||
if (1 != mNewUser->load(email_verification_code_model->getUserId())) {
|
||||
em->addError(new ParamError(funcName, "user load didn't return 1 with user_id ", email_verification_code_model->getUserId()));
|
||||
em->sendErrorsAsEmail();
|
||||
unlock();
|
||||
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
auto userModel = mNewUser->getModel();
|
||||
bool firstEmailActivation = false;
|
||||
if (emailVerificationCodeModel->getType() == model::table::EMAIL_OPT_IN_REGISTER || emailVerificationCodeModel->getType() == model::table::EMAIL_OPT_IN_EMPTY) {
|
||||
firstEmailActivation = true;
|
||||
auto user_model = mNewUser->getModel();
|
||||
bool first_email_activation = false;
|
||||
auto verification_type = email_verification_code_model->getType();
|
||||
if (model::table::EMAIL_OPT_IN_REGISTER == verification_type ||
|
||||
model::table::EMAIL_OPT_IN_EMPTY == verification_type ||
|
||||
model::table::EMAIL_OPT_IN_REGISTER_DIRECT == verification_type) {
|
||||
first_email_activation = true;
|
||||
}
|
||||
if (firstEmailActivation && userModel->isEmailChecked()) {
|
||||
if (first_email_activation && user_model->isEmailChecked()) {
|
||||
mSessionUser = new User(mNewUser);
|
||||
addError(new Error(gettext("E-Mail Verification"), gettext("Du hast dein Konto bereits aktiviert!")), false);
|
||||
unlock();
|
||||
|
||||
return 1;
|
||||
}
|
||||
if (firstEmailActivation) {
|
||||
userModel->setEmailChecked(true);
|
||||
userModel->updateIntoDB("email_checked", 1);
|
||||
if (userModel->errorCount() > 0) {
|
||||
userModel->sendErrorsAsEmail();
|
||||
if (first_email_activation) {
|
||||
user_model->setEmailChecked(true);
|
||||
user_model->updateIntoDB("email_checked", 1);
|
||||
if (user_model->errorCount() > 0) {
|
||||
user_model->sendErrorsAsEmail();
|
||||
}
|
||||
unlock();
|
||||
|
||||
updateState(SESSION_STATE_EMAIL_VERIFICATION_CODE_CHECKED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (emailVerificationCodeModel->getType() == model::table::EMAIL_OPT_IN_RESET_PASSWORD) {
|
||||
unlock();
|
||||
if (email_verification_code_model->getType() == model::table::EMAIL_OPT_IN_RESET_PASSWORD) {
|
||||
|
||||
if (mEmailVerificationCodeObject->deleteFromDB()) {
|
||||
mEmailVerificationCodeObject.assign(nullptr);
|
||||
}
|
||||
@ -493,7 +497,7 @@ int Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
||||
|
||||
em->addError(new Error(funcName, "invalid code path"));
|
||||
em->sendErrorsAsEmail();
|
||||
unlock();
|
||||
|
||||
return -2;
|
||||
|
||||
/*if (updated_rows == 1) {
|
||||
@ -522,11 +526,11 @@ int Session::updateEmailVerification(Poco::UInt64 emailVerificationCode)
|
||||
else {
|
||||
addError(new Error(gettext("E-Mail Verification"), gettext("Falscher Code für aktiven Login")));
|
||||
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||
unlock();
|
||||
|
||||
return -1;
|
||||
}
|
||||
//printf("[%s] time: %s\n", funcName, usedTime.string().data());
|
||||
unlock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -142,6 +142,10 @@ public:
|
||||
inline SessionStates getSessionState() { SessionStates s; lock("Session::getSessionState"); s = mState; unlock(); return s; }
|
||||
|
||||
inline Poco::UInt64 getEmailVerificationCode() { if (mEmailVerificationCodeObject.isNull()) return 0; return mEmailVerificationCodeObject->getModel()->getCode(); }
|
||||
inline model::table::EmailOptInType getEmailVerificationType() {
|
||||
if (mEmailVerificationCodeObject.isNull()) return model::table::EMAIL_OPT_IN_EMPTY;
|
||||
return mEmailVerificationCodeObject->getModel()->getType();
|
||||
}
|
||||
|
||||
inline bool isActive() { bool bret = false; lock("Session::isActive"); bret = mActive; unlock(); return bret; }
|
||||
inline void setActive(bool active) { lock("Sessions::setActive"); mActive = active; unlock(); }
|
||||
|
||||
@ -12,6 +12,7 @@ enum PageState
|
||||
{
|
||||
MAIL_NOT_SEND,
|
||||
ASK_VERIFICATION_CODE,
|
||||
EMAIL_ACTIVATED,
|
||||
KONTO_ALREADY_EXIST
|
||||
};
|
||||
%>
|
||||
@ -23,36 +24,45 @@ enum PageState
|
||||
auto langCatalog = lm->getFreeCatalog(lang);
|
||||
unsigned long long verificationCode = 0;
|
||||
|
||||
if(!form.empty()) {
|
||||
auto langBtn = form.get("lang-btn", "");
|
||||
auto verficationCodeStr = form.get("email-verification-code", "0");
|
||||
try {
|
||||
verificationCode = stoull(verficationCodeStr);
|
||||
} catch(...) {
|
||||
verificationCode = 0;
|
||||
}
|
||||
auto updatedLang = LANG_NULL;
|
||||
if(langBtn != "") {
|
||||
lang = chooseLanguage(request, langBtn);
|
||||
langCatalog = lm->getFreeCatalog(lang);
|
||||
}
|
||||
}
|
||||
|
||||
// remove old cookies if exist
|
||||
auto sm = SessionManager::getInstance();
|
||||
sm->deleteLoginCookies(request, response, mSession);
|
||||
PageState state = ASK_VERIFICATION_CODE;
|
||||
if(mSession) {
|
||||
getErrors(mSession);
|
||||
if(mSession->getSessionState() < SESSION_STATE_EMAIL_VERIFICATION_SEND) {
|
||||
//state = MAIL_NOT_SEND;
|
||||
|
||||
if(mSession && model::table::EMAIL_OPT_IN_REGISTER_DIRECT == mSession->getEmailVerificationType())
|
||||
{
|
||||
state = EMAIL_ACTIVATED;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if(!form.empty()) {
|
||||
auto langBtn = form.get("lang-btn", "");
|
||||
auto verficationCodeStr = form.get("email-verification-code", "0");
|
||||
try {
|
||||
verificationCode = stoull(verficationCodeStr);
|
||||
} catch(...) {
|
||||
verificationCode = 0;
|
||||
}
|
||||
auto updatedLang = LANG_NULL;
|
||||
if(langBtn != "") {
|
||||
lang = chooseLanguage(request, langBtn);
|
||||
langCatalog = lm->getFreeCatalog(lang);
|
||||
}
|
||||
}
|
||||
|
||||
// remove old cookies if exist
|
||||
auto sm = SessionManager::getInstance();
|
||||
sm->deleteLoginCookies(request, response, mSession);
|
||||
|
||||
if(mSession) {
|
||||
getErrors(mSession);
|
||||
if(mSession->getSessionState() < SESSION_STATE_EMAIL_VERIFICATION_SEND) {
|
||||
//state = MAIL_NOT_SEND;
|
||||
}
|
||||
}
|
||||
auto hasErrors = errorCount() > 0;
|
||||
if(!verificationCode) {
|
||||
verificationCode = getLastGetAsU64(request.getURI());
|
||||
}
|
||||
}
|
||||
auto hasErrors = errorCount() > 0;
|
||||
if(!verificationCode) {
|
||||
verificationCode = getLastGetAsU64(request.getURI());
|
||||
}
|
||||
|
||||
%><%@ include file="header.cpsp" %>
|
||||
<div class="authentication-theme auth-style_1">
|
||||
<div class="row">
|
||||
@ -92,6 +102,10 @@ enum PageState
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% if(EMAIL_ACTIVATED == state) { %>
|
||||
<p><%= langCatalog->gettext("Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden.") %></p>
|
||||
<a class="btn btn-sm btn-primary" href="<%= ServerConfig::g_php_serverPath %>"><%= langCatalog->gettext("Zur Startseite") %></a>
|
||||
<% } else { %>
|
||||
<div class="item-wrapper">
|
||||
<div class="form-group">
|
||||
<label for="email-verification-code"><%= langCatalog->gettext("Bitte gebe deinen E-Mail Verification Code ein:")%></label>
|
||||
@ -109,6 +123,7 @@ enum PageState
|
||||
<%= langCatalog->gettext("Schicke uns eine E-Mail und wir kümmern uns darum: ")%><br>
|
||||
<b><a href="mailto:coin@gradido.net?subject=Invalid E-Mail Verification Code&body=Hallo Dario,%0D%0A%0D%0Amein E-Mail Verification-Code: <%= verificationCode %> funktioniert nicht,%0D%0Akannst du das prüfen?%0D%0A%0D%0AMit freundlichen Grüßen%0D%0A"><%= langCatalog->gettext("E-Mail an Support schicken")%></a></b>
|
||||
</p>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user