diff --git a/src/cpp/HTTPInterface/LoginPage.cpp b/src/cpp/HTTPInterface/LoginPage.cpp index 6db0da706..a2eb6845c 100644 --- a/src/cpp/HTTPInterface/LoginPage.cpp +++ b/src/cpp/HTTPInterface/LoginPage.cpp @@ -96,14 +96,21 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: } else { langCatalog = mSession->getLanguageCatalog(); } - auto userState = mSession->loadUser(email, password); + UserStates user_state; + try { + user_state = mSession->loadUser(email, password); + } catch (Poco::Exception& ex) { + addError(new ParamError("login", "exception by calling loadUser: ", ex.displayText())); + sendErrorsAsEmail(); + addError(new Error("Error", "Intern Server error, please try again later")); + } auto user = mSession->getNewUser(); - if(userState >= USER_LOADED_FROM_DB && !user->getModel()->getPublicKey()) { + if(user_state >= USER_LOADED_FROM_DB && !user->getModel()->getPublicKey()) { if(mSession->generateKeys(true, true)) { - userState = USER_COMPLETE; + user_state = USER_COMPLETE; if(user->getModel()->isDisabled()) { - userState = USER_DISABLED; + user_state = USER_DISABLED; } } } else { @@ -114,9 +121,9 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: auto uri_start = request.serverParams().getServerName(); auto lastExternReferer = mSession->getLastReferer(); - printf("userState: %d\n", userState); + printf("user_state: %d\n", user_state); - switch(userState) { + switch(user_state) { case USER_EMPTY: case USER_PASSWORD_INCORRECT: addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")), false); @@ -234,11 +241,11 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << " "; // end include header.cpsp responseStream << "\n"; -#line 160 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" +#line 167 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; @@ -272,22 +279,22 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tgettext("E-Mail") ); responseStream << "\" value=\""; -#line 166 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" +#line 173 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" responseStream << ( presetEmail ); responseStream << "\"/>\n"; responseStream << "\t\t\tgettext("Password") ); responseStream << "\" />\n"; responseStream << "\t\t \n"; responseStream << "\t\t
\n"; @@ -295,25 +302,25 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "
\n"; responseStream << "
\n"; responseStream << "\t

"; -#line 173 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" +#line 180 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" responseStream << ( langCatalog->gettext("You haven't any account yet? Please follow the link to create one.") ); responseStream << "

\n"; responseStream << "\t \n"; responseStream << "\t\t\t"; -#line 175 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" +#line 182 "F:\\Gradido\\gradido_login_server_production\\src\\cpsp\\login.cpsp" responseStream << ( langCatalog->gettext("Create New Account") ); responseStream << "\n"; responseStream << "\t\t \n"; responseStream << "\t
\n"; responseStream << "\t\t\n"; diff --git a/src/cpsp/login.cpsp b/src/cpsp/login.cpsp index 48a6e2807..d49d1d4aa 100644 --- a/src/cpsp/login.cpsp +++ b/src/cpsp/login.cpsp @@ -75,14 +75,21 @@ } else { langCatalog = mSession->getLanguageCatalog(); } - auto userState = mSession->loadUser(email, password); + UserStates user_state; + try { + user_state = mSession->loadUser(email, password); + } catch (Poco::Exception& ex) { + addError(new ParamError("login", "exception by calling loadUser: ", ex.displayText())); + sendErrorsAsEmail(); + addError(new Error("Error", "Intern Server error, please try again later")); + } auto user = mSession->getNewUser(); - if(userState >= USER_LOADED_FROM_DB && !user->getModel()->getPublicKey()) { + if(user_state >= USER_LOADED_FROM_DB && !user->getModel()->getPublicKey()) { if(mSession->generateKeys(true, true)) { - userState = USER_COMPLETE; + user_state = USER_COMPLETE; if(user->getModel()->isDisabled()) { - userState = USER_DISABLED; + user_state = USER_DISABLED; } } } else { @@ -93,9 +100,9 @@ auto uri_start = request.serverParams().getServerName(); auto lastExternReferer = mSession->getLastReferer(); - printf("userState: %d\n", userState); + printf("user_state: %d\n", user_state); - switch(userState) { + switch(user_state) { case USER_EMPTY: case USER_PASSWORD_INCORRECT: addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("E-Mail or password isn't right, please try again!")), false);