diff options
author | Sadie Powell <sadie@witchery.services> | 2024-05-01 21:20:31 +0100 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2024-05-01 21:20:31 +0100 |
commit | e9243c3fdecb5a7d7ef09f2c6e479e17d53cdb3e (patch) | |
tree | 04fc02fecef35b0c2e40e2a33a193ac5bf839e7e | |
parent | 4cfee23303848320dde985e4824380e6208ce01c (diff) |
Add the ReplaceCert method to CertService.
-rw-r--r-- | include/modules/ns_cert.h | 1 | ||||
-rw-r--r-- | modules/nickserv/ns_cert.cpp | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/modules/ns_cert.h b/include/modules/ns_cert.h index 8ecf610bb..078303884 100644 --- a/include/modules/ns_cert.h +++ b/include/modules/ns_cert.h @@ -79,4 +79,5 @@ public: CertService(Module *c) : Service(c, "CertService", "certs") { } virtual NickCore *FindAccountFromCert(const Anope::string &cert) = 0; + virtual void ReplaceCert(const Anope::string &oldcert, const Anope::string &newcert) = 0; }; diff --git a/modules/nickserv/ns_cert.cpp b/modules/nickserv/ns_cert.cpp index 8a5f85ded..4a19762f8 100644 --- a/modules/nickserv/ns_cert.cpp +++ b/modules/nickserv/ns_cert.cpp @@ -26,6 +26,17 @@ struct CertServiceImpl final return it->second; return NULL; } + + void ReplaceCert(const Anope::string &oldcert, const Anope::string &newcert) override + { + auto *nc = FindAccountFromCert(oldcert); + if (!nc) + return; + + auto *cl = nc->GetExt<NSCertList>("certificates"); + if (cl) + cl->ReplaceCert(oldcert, newcert); + } }; struct NSCertListImpl final |