summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-05-01 21:20:31 +0100
committerSadie Powell <sadie@witchery.services>2024-05-01 21:20:31 +0100
commite9243c3fdecb5a7d7ef09f2c6e479e17d53cdb3e (patch)
tree04fc02fecef35b0c2e40e2a33a193ac5bf839e7e
parent4cfee23303848320dde985e4824380e6208ce01c (diff)
Add the ReplaceCert method to CertService.
-rw-r--r--include/modules/ns_cert.h1
-rw-r--r--modules/nickserv/ns_cert.cpp11
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