mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
#include "VerificationEmailResendTask.h"
|
|
|
|
#include "../controller/User.h"
|
|
#include "../controller/EmailVerificationCode.h"
|
|
|
|
#include "../SingletonManager/EmailManager.h"
|
|
|
|
VerificationEmailResendTask::VerificationEmailResendTask(int userId)
|
|
: mUserId(userId)
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
VerificationEmailResendTask::~VerificationEmailResendTask()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
int VerificationEmailResendTask::run()
|
|
{
|
|
auto user = controller::User::create();
|
|
if (1 == user->load(mUserId)) {
|
|
auto model = user->getModel();
|
|
// if email is checked, we can exit
|
|
if (model->isEmailChecked()) {
|
|
return 1;
|
|
}
|
|
auto email_verification = controller::EmailVerificationCode::load(mUserId, model::table::EMAIL_OPT_IN_REGISTER_DIRECT);
|
|
if (nullptr == email_verification) {
|
|
email_verification = controller::EmailVerificationCode::create(mUserId, model::table::EMAIL_OPT_IN_REGISTER_DIRECT);
|
|
email_verification->getModel()->insertIntoDB(false);
|
|
}
|
|
else if (email_verification->getModel()->getResendCount() > 1) {
|
|
// if email was already send maybe by another process, we can exit
|
|
return 1;
|
|
}
|
|
else {
|
|
email_verification->getModel()->addResendCountAndUpdate();
|
|
}
|
|
auto em = EmailManager::getInstance();
|
|
em->addEmail(new model::Email(email_verification, user, model::EMAIL_USER_VERIFICATION_CODE_RESEND));
|
|
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
VerificationEmailResendTimerTask::VerificationEmailResendTimerTask(int userId)
|
|
: mUserId(userId)
|
|
{
|
|
|
|
}
|
|
|
|
VerificationEmailResendTimerTask::~VerificationEmailResendTimerTask()
|
|
{
|
|
|
|
}
|
|
|
|
void VerificationEmailResendTimerTask::run()
|
|
{
|
|
UniLib::controller::TaskPtr verificationResendTask(new VerificationEmailResendTask(mUserId));
|
|
verificationResendTask->scheduleTask(verificationResendTask);
|
|
} |