diff options
author | Adam <Adam@anope.org> | 2017-04-06 11:20:06 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2017-04-06 11:20:06 -0400 |
commit | 805ea3869c33889de3695c580b85e10d9a4bc147 (patch) | |
tree | 50fc994ac99611762bd77d6d10fe88a40e058be0 | |
parent | 2a886acbedb6b6386dbff3e591b0d4035d516b2a (diff) |
Move nc->lastmail to a field
-rw-r--r-- | include/modules/nickserv/account.h | 6 | ||||
-rw-r--r-- | modules/nickserv/main/account.cpp | 9 | ||||
-rw-r--r-- | modules/nickserv/main/account.h | 4 | ||||
-rw-r--r-- | modules/nickserv/main/accounttype.cpp | 1 | ||||
-rw-r--r-- | modules/nickserv/main/accounttype.h | 1 | ||||
-rw-r--r-- | modules/nickserv/register.cpp | 4 | ||||
-rw-r--r-- | src/mail.cpp | 7 |
7 files changed, 24 insertions, 8 deletions
diff --git a/include/modules/nickserv/account.h b/include/modules/nickserv/account.h index ebe1061b6..8dc5ad7c8 100644 --- a/include/modules/nickserv/account.h +++ b/include/modules/nickserv/account.h @@ -30,9 +30,6 @@ class CoreExport Account : public Serialize::Object public: static constexpr const char *const NAME = "account"; -#warning "move lastmail to a field" - /* Last time an email was sent to this user */ - time_t lastmail = 0; /* Users online now logged into this account */ std::vector<User *> users; @@ -120,6 +117,9 @@ class CoreExport Account : public Serialize::Object virtual MemoServ::MemoInfo *GetMemos() anope_abstract; virtual unsigned int GetChannelCount() anope_abstract; + + virtual time_t GetLastMail() anope_abstract; + virtual void SetLastMail(time_t) anope_abstract; }; } // namespace NickServ diff --git a/modules/nickserv/main/account.cpp b/modules/nickserv/main/account.cpp index 86c96b14f..9200bc1f7 100644 --- a/modules/nickserv/main/account.cpp +++ b/modules/nickserv/main/account.cpp @@ -314,3 +314,12 @@ unsigned int AccountImpl::GetChannelCount() return i; } +time_t AccountImpl::GetLastMail() +{ + return Get(&AccountType::last_mail); +} + +void AccountImpl::SetLastMail(time_t lastmail) +{ + Set(&AccountType::last_mail, lastmail); +} diff --git a/modules/nickserv/main/account.h b/modules/nickserv/main/account.h index ba07a2a13..6cb65e759 100644 --- a/modules/nickserv/main/account.h +++ b/modules/nickserv/main/account.h @@ -37,6 +37,7 @@ class AccountImpl : public NickServ::Account Serialize::Storage<bool> secure; Serialize::Storage<bool> memosignon, memoreceive, memomail; Serialize::Storage<bool> hideemail, hidemask, hidestatus, hidequit; + Serialize::Storage<time_t> lastmail; public: using NickServ::Account::Account; @@ -116,4 +117,7 @@ class AccountImpl : public NickServ::Account void SetDisplay(NickServ::Nick *na) override; bool IsOnAccess(User *u) override; unsigned int GetChannelCount() override; + + time_t GetLastMail() override; + void SetLastMail(time_t) override; }; diff --git a/modules/nickserv/main/accounttype.cpp b/modules/nickserv/main/accounttype.cpp index ccc02726a..e6509694f 100644 --- a/modules/nickserv/main/accounttype.cpp +++ b/modules/nickserv/main/accounttype.cpp @@ -43,6 +43,7 @@ AccountType::AccountType(Module *me) : Serialize::Type<AccountImpl>(me) , hidemask(this, "hide_mask", &AccountImpl::hidemask) , hidestatus(this, "hide_status", &AccountImpl::hidestatus) , hidequit(this, "hide_quit", &AccountImpl::hidequit) + , last_mail(this, "last_mail", &AccountImpl::lastmail) { } diff --git a/modules/nickserv/main/accounttype.h b/modules/nickserv/main/accounttype.h index f8d6a31a5..f749a5430 100644 --- a/modules/nickserv/main/accounttype.h +++ b/modules/nickserv/main/accounttype.h @@ -39,6 +39,7 @@ class AccountType : public Serialize::Type<AccountImpl> Serialize::Field<AccountImpl, bool> unconfirmed, _private, autoop, keepmodes, killprotect, killquick, killimmed, msg, secure, memosignon, memoreceive, memomail, hideemail, hidemask, hidestatus, hidequit; + Serialize::Field<AccountImpl, time_t> last_mail; AccountType(Module *); diff --git a/modules/nickserv/register.cpp b/modules/nickserv/register.cpp index cb6f85dc5..13c18e0b3 100644 --- a/modules/nickserv/register.cpp +++ b/modules/nickserv/register.cpp @@ -339,7 +339,7 @@ class CommandNSResend : public Command return; } - if (Anope::CurTime < source.nc->lastmail + Config->GetModule(this->GetOwner())->Get<time_t>("resenddelay")) + if (Anope::CurTime < source.nc->GetLastMail() + Config->GetModule(this->GetOwner())->Get<time_t>("resenddelay")) { source.Reply(_("Cannot send mail now; please retry a little later.")); return; @@ -351,7 +351,7 @@ class CommandNSResend : public Command return; } - na->GetAccount()->lastmail = Anope::CurTime; + na->GetAccount()->SetLastMail(Anope::CurTime); source.Reply(_("Your passcode has been re-sent to \002{0}\002."), na->GetAccount()->GetEmail()); logger.Command(LogType::COMMAND, source, _("{source} used {command} to resend registration verification code")); } diff --git a/src/mail.cpp b/src/mail.cpp index 51068178d..619180520 100644 --- a/src/mail.cpp +++ b/src/mail.cpp @@ -75,7 +75,7 @@ bool Mail::Send(User *u, NickServ::Account *nc, ServiceBot *service, const Anope else if (nc->GetEmail().empty()) return false; - nc->lastmail = Anope::CurTime; + nc->SetLastMail(Anope::CurTime); Thread *t = new Mail::Message(b->Get<Anope::string>("sendfrom"), nc->GetDisplay(), nc->GetEmail(), subject, message); t->Start(); return true; @@ -90,7 +90,8 @@ bool Mail::Send(User *u, NickServ::Account *nc, ServiceBot *service, const Anope u->SendMessage(service, _("E-mail for \002%s\002 is invalid."), nc->GetDisplay().c_str()); else { - u->lastmail = nc->lastmail = Anope::CurTime; + u->lastmail = Anope::CurTime; + nc->SetLastMail(Anope::CurTime); Thread *t = new Mail::Message(b->Get<Anope::string>("sendfrom"), nc->GetDisplay(), nc->GetEmail(), subject, message); t->Start(); return true; @@ -106,7 +107,7 @@ bool Mail::Send(NickServ::Account *nc, const Anope::string &subject, const Anope if (!b->Get<bool>("usemail") || b->Get<Anope::string>("sendfrom").empty() || !nc || nc->GetEmail().empty() || subject.empty() || message.empty()) return false; - nc->lastmail = Anope::CurTime; + nc->SetLastMail(Anope::CurTime); Thread *t = new Mail::Message(b->Get<Anope::string>("sendfrom"), nc->GetDisplay(), nc->GetEmail(), subject, message); t->Start(); |