diff options
author | Adam <Adam@anope.org> | 2012-10-31 12:37:43 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-10-31 12:37:43 -0400 |
commit | 3a10fca75f660e90983b3a01d33917c17a0f4fa4 (patch) | |
tree | 6b5a41819a3f1602d381d01d70f773bb39cd4ac2 /modules/commands/ns_recover.cpp | |
parent | a39947cd3c6c76cb708de7d328aabde62e39be0b (diff) |
Fix ns_ghost and ns_recover, add nicksev:restoreonghost
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(); |