summaryrefslogtreecommitdiff
path: root/modules/nickserv/ns_resetpass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nickserv/ns_resetpass.cpp')
-rw-r--r--modules/nickserv/ns_resetpass.cpp23
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);
}