diff --git a/src/cpp/HTTPInterface/ElopageWebhook.cpp b/src/cpp/HTTPInterface/ElopageWebhook.cpp index f5f8a6caf..c38bdda06 100644 --- a/src/cpp/HTTPInterface/ElopageWebhook.cpp +++ b/src/cpp/HTTPInterface/ElopageWebhook.cpp @@ -197,14 +197,21 @@ void HandleElopageRequestTask::writeUserIntoDB() } -int HandleElopageRequestTask::getUserIdFromDB() +int HandleElopageRequestTask::getUserIdFromDB(bool checkEmail /* = false*/) { auto cm = ConnectionManager::getInstance(); auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); Poco::Data::Statement select(session); std::vector user_ids; - select << "SELECT id from users where email = ?;", - into(user_ids), use(mEmail); + std::vector email_checked; + if (checkEmail) { + select << "SELECT id, email_checked from users where email = ?;", + into(user_ids), into(email_checked), use(mEmail); + } + else { + select << "SELECT id from users where email = ?;", + into(user_ids), use(mEmail); + } try { select.execute(); } @@ -226,6 +233,10 @@ int HandleElopageRequestTask::getUserIdFromDB() sendErrorsAsEmail(); } if (user_ids.size() >= 1) { + if (email_checked.size() >= 1 && email_checked[0]) { + addError(new Error("HandleElopageRequestTask::getUserIdFromDB", "user account already activated")); + return 0; + } return user_ids[0]; } return 0; @@ -333,8 +344,9 @@ int HandleElopageRequestTask::run() writeUserIntoDB(); // get user id from db - int user_id = getUserIdFromDB(); + int user_id = getUserIdFromDB(true); // we didn't get a user_id, something went wrong + // maybe user already exist if (!user_id) { addError(new Error("User loadEntryDBId", "user_id is zero")); addError(param_error_order_id); diff --git a/src/cpp/HTTPInterface/ElopageWebhook.h b/src/cpp/HTTPInterface/ElopageWebhook.h index 9de3986f4..bf8ea4efc 100644 --- a/src/cpp/HTTPInterface/ElopageWebhook.h +++ b/src/cpp/HTTPInterface/ElopageWebhook.h @@ -28,7 +28,7 @@ protected: // return true if at least one entry in db with this email exist bool validateInput(); void writeUserIntoDB(); - int getUserIdFromDB(); + int getUserIdFromDB(bool checkEmail = false); Poco::Net::NameValueCollection mRequestData; std::string mEmail; diff --git a/src/cpsp/adminUserPasswordReset.cpsp b/src/cpsp/adminUserPasswordReset.cpsp index 80808c89e..8b4b09b0b 100644 --- a/src/cpsp/adminUserPasswordReset.cpsp +++ b/src/cpsp/adminUserPasswordReset.cpsp @@ -99,14 +99,14 @@ enum PageState

Liebe(r) <%= user->getModel()->getFirstName() %>,
 
-hier findst du deine Passphrase mit dessen Hilfe du dir ein neues Passwort einstellen kannst.
+hier findest du deine Passphrase mit dessen Hilfe du dir ein neues Passwort einstellen kannst.
 Bitte schreibe sie dir auf und packe sie gut weg.
 
 <%= controller::UserBackups::formatPassphrase(userBackup->getPassphrase(ServerConfig::Mnemonic_Types::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER)) %>
  
 
 
-Unter diesem Link kannst du dir mit hilfe der Passphrase ein neues Passwort setzen:
+Unter diesem Link kannst du dir mit Hilfe der Passphrase ein neues Passwort setzen:
 <%= code->getLink() %>