From e9243c3fdecb5a7d7ef09f2c6e479e17d53cdb3e Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 1 May 2024 21:20:31 +0100 Subject: [PATCH] Add the ReplaceCert method to CertService. --- include/modules/ns_cert.h | 1 + modules/nickserv/ns_cert.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+) 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("certificates"); + if (cl) + cl->ReplaceCert(oldcert, newcert); + } }; struct NSCertListImpl final