mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
adding fix for rare occasion if mysql connection failed during test if user exist,
This commit is contained in:
parent
8b9614cb00
commit
24c37fe11e
@ -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<int> user_ids;
|
||||
select << "SELECT id from users where email = ?;",
|
||||
into(user_ids), use(mEmail);
|
||||
std::vector<bool> 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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -99,14 +99,14 @@ enum PageState
|
||||
<p><label style="width:auto" for="memo-text">E-Mail Text:</label></p>
|
||||
<pre>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() %>
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user