diff --git a/src/cpp/HTTPInterface/LoginPage.cpp b/src/cpp/HTTPInterface/LoginPage.cpp index e0c722413..4e42aaf5c 100644 --- a/src/cpp/HTTPInterface/LoginPage.cpp +++ b/src/cpp/HTTPInterface/LoginPage.cpp @@ -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 << "