diff options
Diffstat (limited to 'modules/nickserv/ns_resetpass.cpp')
-rw-r--r-- | modules/nickserv/ns_resetpass.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/modules/nickserv/ns_resetpass.cpp b/modules/nickserv/ns_resetpass.cpp index 3eeae5052..7425ade66 100644 --- a/modules/nickserv/ns_resetpass.cpp +++ b/modules/nickserv/ns_resetpass.cpp @@ -132,21 +132,18 @@ public: static bool SendResetEmail(User *u, const NickAlias *na, BotInfo *bi) { - Anope::string subject = Language::Translate(na->nc, Config->GetBlock("mail").Get<const Anope::string>("reset_subject").c_str()), - message = Language::Translate(na->nc, Config->GetBlock("mail").Get<const Anope::string>("reset_message").c_str()), - passcode = Anope::Random(Config->GetBlock("options").Get<size_t>("codelength", 15)); - - subject = subject.replace_all_cs("%n", na->nick); - subject = subject.replace_all_cs("%N", Config->GetBlock("networkinfo").Get<const Anope::string>("networkname")); - subject = subject.replace_all_cs("%c", passcode); + auto *ri = na->nc->Extend<ResetInfo>("reset"); + ri->code = Anope::Random(Config->GetBlock("options").Get<size_t>("codelength", 15)); + ri->time = Anope::CurTime; - message = message.replace_all_cs("%n", na->nick); - message = message.replace_all_cs("%N", Config->GetBlock("networkinfo").Get<const Anope::string>("networkname")); - message = message.replace_all_cs("%c", passcode); + Anope::map<Anope::string> vars = { + { "nick", na->nick }, + { "network", Config->GetBlock("networkinfo").Get<const Anope::string>("networkname") }, + { "code", ri->code }, + }; - ResetInfo *ri = na->nc->Extend<ResetInfo>("reset"); - ri->code = passcode; - ri->time = Anope::CurTime; + auto subject = Anope::Template(Language::Translate(na->nc, Config->GetBlock("mail").Get<const Anope::string>("reset_subject").c_str()), vars); + auto message = Anope::Template(Language::Translate(na->nc, Config->GetBlock("mail").Get<const Anope::string>("reset_message").c_str()), vars); return Mail::Send(u, na->nc, bi, subject, message); } |