update reset password, creating email verification code also for user without memorized passphrase

This commit is contained in:
Dario 2020-04-07 12:14:23 +02:00
parent 90469fb94b
commit d9769d95a1

View File

@ -445,29 +445,28 @@ int Session::resetPassword(Poco::AutoPtr<controller::User> user, bool passphrase
{
mNewUser = user;
mSessionUser = new User(user);
auto em = EmailManager::getInstance();
// creating email verification code also for user without passphrase
// first check if already exist
mEmailVerificationCodeObject = controller::EmailVerificationCode::create(mNewUser->getModel()->getID(), model::table::EMAIL_OPT_IN_RESET_PASSWORD);
auto foundCount = mEmailVerificationCodeObject->load(user->getModel()->getID(), model::table::EMAIL_OPT_IN_RESET_PASSWORD);
auto emailVerificationModel = mEmailVerificationCodeObject->getModel();
UniLib::controller::TaskPtr insertEmailVerificationCode(
new model::table::ModelInsertTask(emailVerificationModel, true, true)
);
insertEmailVerificationCode->scheduleTask(insertEmailVerificationCode);
if (passphraseMemorized) {
// first check if already exist
mEmailVerificationCodeObject = controller::EmailVerificationCode::create(mNewUser->getModel()->getID(), model::table::EMAIL_OPT_IN_RESET_PASSWORD);
auto foundCount = mEmailVerificationCodeObject->load(user->getModel()->getID(), model::table::EMAIL_OPT_IN_RESET_PASSWORD);
if (foundCount) {
return 1;
}
auto emailVerificationModel = mEmailVerificationCodeObject->getModel();
UniLib::controller::TaskPtr insertEmailVerificationCode(
new model::table::ModelInsertTask(emailVerificationModel, true, true)
);
insertEmailVerificationCode->scheduleTask(insertEmailVerificationCode);
UniLib::controller::TaskPtr sendEmail(new SendEmailTask(
new model::Email(mEmailVerificationCodeObject, mNewUser, model::EMAIL_USER_RESET_PASSWORD),
ServerConfig::g_CPUScheduler, 1)
);
sendEmail->setParentTaskPtrInArray(insertEmailVerificationCode, 0);
sendEmail->scheduleTask(sendEmail);
em->addEmail(new model::Email(mEmailVerificationCodeObject, mNewUser, model::EMAIL_USER_RESET_PASSWORD));
}
else {
EmailManager::getInstance()->addEmail(new model::Email(user, model::EMAIL_ADMIN_RESET_PASSWORD_REQUEST_WITHOUT_MEMORIZED_PASSPHRASE));
em->addEmail(new model::Email(user, model::EMAIL_ADMIN_RESET_PASSWORD_REQUEST_WITHOUT_MEMORIZED_PASSPHRASE));
}
if (foundCount) {
return 1;
}
return 0;