diff options
Diffstat (limited to 'modules/commands/ns_recover.cpp')
-rw-r--r-- | modules/commands/ns_recover.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/modules/commands/ns_recover.cpp b/modules/commands/ns_recover.cpp index 648bbf032..63d503553 100644 --- a/modules/commands/ns_recover.cpp +++ b/modules/commands/ns_recover.cpp @@ -19,17 +19,16 @@ class NSRecoverRequest : public IdentifyRequest CommandSource source; Command *cmd; dynamic_reference<NickAlias> na; + dynamic_reference<User> u; public: - NSRecoverRequest(Module *m, CommandSource &src, Command *c, NickAlias *n, const Anope::string &pass) : IdentifyRequest(m, n->nc->display, pass), source(src), cmd(c), na(n) { } + NSRecoverRequest(Module *m, CommandSource &src, Command *c, User *user, NickAlias *n, const Anope::string &pass) : IdentifyRequest(m, n->nc->display, pass), source(src), cmd(c), na(n), u(user) { } void OnSuccess() anope_override { - if (!source.GetUser() || !na) + if (!na || !u) return; - User *u = source.GetUser(); - u->SendMessage(source.service, FORCENICKCHANGE_NOW); if (u->Account() == na->nc) @@ -47,11 +46,9 @@ class NSRecoverRequest : public IdentifyRequest void OnFail() anope_override { - if (!source.GetUser()) + if (!na || !u) return; - User *u = source.GetUser(); - source.Reply(ACCESS_DENIED); if (!GetPassword().empty()) { @@ -101,13 +98,13 @@ class CommandNSRecover : public Command if (ok == false && !pass.empty()) { - NSRecoverRequest *req = new NSRecoverRequest(owner, source, this, na, pass); + NSRecoverRequest *req = new NSRecoverRequest(owner, source, this, u2, na, pass); FOREACH_MOD(I_OnCheckAuthentication, OnCheckAuthentication(source.GetUser(), req)); req->Dispatch(); } else { - NSRecoverRequest req(owner, source, this, na, pass); + NSRecoverRequest req(owner, source, this, u2, na, pass); if (ok) req.OnSuccess(); |