summaryrefslogtreecommitdiff
path: root/modules/webcpanel
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-07-28 21:29:35 -0400
committerAdam <Adam@anope.org>2016-07-28 21:29:35 -0400
commit0e758a2ac23dc4a001e8e126cec14588da9a9769 (patch)
tree45df813323e023c5c89db7279426c4ad0943b4a9 /modules/webcpanel
parenta3c8afae00c54d5b95c620248b51f90679d7d53f (diff)
Allow serializable fields to use storage in the respective objects.
Split service management code nito a proper servicemanager. Make service references managed instead of lazy lookup. Also made events and serializable use service manager instead of their respective systems for management
Diffstat (limited to 'modules/webcpanel')
-rw-r--r--modules/webcpanel/pages/chanserv/access.cpp6
-rw-r--r--modules/webcpanel/pages/chanserv/drop.cpp2
-rw-r--r--modules/webcpanel/pages/chanserv/utils.cpp2
-rw-r--r--modules/webcpanel/pages/hostserv/request.cpp2
-rw-r--r--modules/webcpanel/pages/index.cpp2
-rw-r--r--modules/webcpanel/pages/logout.cpp4
-rw-r--r--modules/webcpanel/pages/nickserv/access.cpp2
-rw-r--r--modules/webcpanel/pages/nickserv/alist.cpp2
-rw-r--r--modules/webcpanel/pages/nickserv/cert.cpp5
-rw-r--r--modules/webcpanel/pages/nickserv/info.cpp2
-rw-r--r--modules/webcpanel/pages/operserv/akill.cpp5
-rw-r--r--modules/webcpanel/pages/operserv/akill.h2
-rw-r--r--modules/webcpanel/webcpanel.cpp6
-rw-r--r--modules/webcpanel/webcpanel.h6
14 files changed, 25 insertions, 23 deletions
diff --git a/modules/webcpanel/pages/chanserv/access.cpp b/modules/webcpanel/pages/chanserv/access.cpp
index e5d268dee..535df595f 100644
--- a/modules/webcpanel/pages/chanserv/access.cpp
+++ b/modules/webcpanel/pages/chanserv/access.cpp
@@ -105,11 +105,11 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
replacements["CREATORS"] = HTTPUtils::Escape(access->GetCreator());
}
- if (Service::FindService("Command", "chanserv/access"))
+ if (ServiceManager::Get()->FindService("Command", "chanserv/access"))
replacements["PROVIDERS"] = "chanserv/access";
- if (Service::FindService("Command", "chanserv/xop"))
+ if (ServiceManager::Get()->FindService("Command", "chanserv/xop"))
replacements["PROVIDERS"] = "chanserv/xop";
- if (Service::FindService("Command", "chanserv/flags"))
+ if (ServiceManager::Get()->FindService("Command", "chanserv/flags"))
replacements["PROVIDERS"] = "chanserv/flags";
Page.Serve(server, page_name, client, message, reply, replacements);
diff --git a/modules/webcpanel/pages/chanserv/drop.cpp b/modules/webcpanel/pages/chanserv/drop.cpp
index c546c0af5..b4eea6641 100644
--- a/modules/webcpanel/pages/chanserv/drop.cpp
+++ b/modules/webcpanel/pages/chanserv/drop.cpp
@@ -31,7 +31,7 @@ bool WebCPanel::ChanServ::Drop::OnRequest(HTTPProvider *server, const Anope::str
replacements["MESSAGES"] = "Invalid Confirmation";
}
- for (::ChanServ::Channel *ci : na->GetAccount()->GetRefs<::ChanServ::Channel *>(::ChanServ::channel))
+ for (::ChanServ::Channel *ci : na->GetAccount()->GetRefs<::ChanServ::Channel *>())
if ((ci->HasFieldS("SECUREFOUNDER") ? ci->AccessFor(na->GetAccount()).founder : ci->AccessFor(na->GetAccount()).HasPriv("FOUNDER")) || (na->GetAccount()->IsServicesOper() && na->GetAccount()->o->GetType()->HasCommand("chanserv/drop")))
{
replacements["CHANNEL_NAMES"] = ci->GetName();
diff --git a/modules/webcpanel/pages/chanserv/utils.cpp b/modules/webcpanel/pages/chanserv/utils.cpp
index cf00de9d0..746097881 100644
--- a/modules/webcpanel/pages/chanserv/utils.cpp
+++ b/modules/webcpanel/pages/chanserv/utils.cpp
@@ -23,7 +23,7 @@ namespace ChanServ
void BuildChanList(::NickServ::Nick *na, TemplateFileServer::Replacements &replacements)
{
- std::vector<::ChanServ::Channel *> chans = na->GetAccount()->GetRefs<::ChanServ::Channel *>(::ChanServ::channel);
+ std::vector<::ChanServ::Channel *> chans = na->GetAccount()->GetRefs<::ChanServ::Channel *>();
std::sort(chans.begin(), chans.end(), ChannelSort);
for (::ChanServ::Channel *ci : chans)
diff --git a/modules/webcpanel/pages/hostserv/request.cpp b/modules/webcpanel/pages/hostserv/request.cpp
index 522806a9f..5ff2d228f 100644
--- a/modules/webcpanel/pages/hostserv/request.cpp
+++ b/modules/webcpanel/pages/hostserv/request.cpp
@@ -28,7 +28,7 @@ bool WebCPanel::HostServ::Request::OnRequest(HTTPProvider *server, const Anope::
else
replacements["VHOST"] = na->GetVhostHost();
}
- if (ServiceReference<Command>("Command", "hostserv/request"))
+ if (ServiceReference<Command>("hostserv/request"))
replacements["CAN_REQUEST"] = "YES";
TemplateFileServer page("hostserv/request.html");
page.Serve(server, page_name, client, message, reply, replacements);
diff --git a/modules/webcpanel/pages/index.cpp b/modules/webcpanel/pages/index.cpp
index 551b73a0e..f40b029b4 100644
--- a/modules/webcpanel/pages/index.cpp
+++ b/modules/webcpanel/pages/index.cpp
@@ -94,7 +94,7 @@ bool WebCPanel::Index::OnRequest(HTTPProvider *server, const Anope::string &page
// XXX Rate limit check.
::NickServ::IdentifyRequest *req = ::NickServ::service->CreateIdentifyRequest(new WebpanelRequest(reply, message, server, page_name, client, replacements), me, user, pass);
- Event::OnCheckAuthentication(&Event::CheckAuthentication::OnCheckAuthentication, nullptr, req);
+ EventManager::Get()->Dispatch(&Event::CheckAuthentication::OnCheckAuthentication, nullptr, req);
req->Dispatch();
return false;
}
diff --git a/modules/webcpanel/pages/logout.cpp b/modules/webcpanel/pages/logout.cpp
index b5f97258e..648b277cc 100644
--- a/modules/webcpanel/pages/logout.cpp
+++ b/modules/webcpanel/pages/logout.cpp
@@ -13,8 +13,8 @@ WebCPanel::Logout::Logout(const Anope::string &u) : WebPanelProtectedPage("", u)
bool WebCPanel::Logout::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, ::NickServ::Nick *na, TemplateFileServer::Replacements &replacements)
{
- na->ShrinkOK<Anope::string>("webcpanel_id");
- na->ShrinkOK<Anope::string>("webcpanel_ip");
+ na->Shrink<Anope::string>("webcpanel_id");
+ na->Shrink<Anope::string>("webcpanel_ip");
reply.error = HTTP_FOUND;
reply.headers["Location"] = Anope::string("http") + (server->IsSSL() ? "s" : "") + "://" + message.headers["Host"] + "/";
diff --git a/modules/webcpanel/pages/nickserv/access.cpp b/modules/webcpanel/pages/nickserv/access.cpp
index 51472058d..986dfb635 100644
--- a/modules/webcpanel/pages/nickserv/access.cpp
+++ b/modules/webcpanel/pages/nickserv/access.cpp
@@ -31,7 +31,7 @@ bool WebCPanel::NickServ::Access::OnRequest(HTTPProvider *server, const Anope::s
WebPanel::RunCommand(na->GetAccount()->GetDisplay(), na->GetAccount(), "NickServ", "nickserv/access", params, replacements);
}
- for (NickAccess *a : na->GetAccount()->GetRefs<NickAccess *>(nsaccess))
+ for (NickAccess *a : na->GetAccount()->GetRefs<NickAccess *>())
replacements["ACCESS"] = a->GetMask();
TemplateFileServer page("nickserv/access.html");
diff --git a/modules/webcpanel/pages/nickserv/alist.cpp b/modules/webcpanel/pages/nickserv/alist.cpp
index 105f1c117..26e4b6ffb 100644
--- a/modules/webcpanel/pages/nickserv/alist.cpp
+++ b/modules/webcpanel/pages/nickserv/alist.cpp
@@ -18,7 +18,7 @@ WebCPanel::NickServ::Alist::Alist(const Anope::string &cat, const Anope::string
bool WebCPanel::NickServ::Alist::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, ::NickServ::Nick *na, TemplateFileServer::Replacements &replacements)
{
- std::vector<::ChanServ::Channel *> chans = na->GetAccount()->GetRefs<::ChanServ::Channel *>(::ChanServ::channel);
+ std::vector<::ChanServ::Channel *> chans = na->GetAccount()->GetRefs<::ChanServ::Channel *>();
std::sort(chans.begin(), chans.end(), ChannelSort);
int chan_count = 0;
diff --git a/modules/webcpanel/pages/nickserv/cert.cpp b/modules/webcpanel/pages/nickserv/cert.cpp
index 436725b04..cdf23a1b3 100644
--- a/modules/webcpanel/pages/nickserv/cert.cpp
+++ b/modules/webcpanel/pages/nickserv/cert.cpp
@@ -1,8 +1,9 @@
/*
- * (C) 2003-2014 Anope Team
+ * (C) 2003-2016 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+ *
*/
#include "../../webcpanel.h"
@@ -31,7 +32,7 @@ bool WebCPanel::NickServ::Cert::OnRequest(HTTPProvider *server, const Anope::str
WebPanel::RunCommand(na->GetAccount()->GetDisplay(), na->GetAccount(), "NickServ", "nickserv/cert", params, replacements);
}
- std::vector<NSCertEntry *> cl = na->GetAccount()->GetRefs<NSCertEntry *>(certentry);
+ std::vector<NSCertEntry *> cl = na->GetAccount()->GetRefs<NSCertEntry *>();
for (NSCertEntry *e : cl)
replacements["CERTS"] = e->GetCert();
diff --git a/modules/webcpanel/pages/nickserv/info.cpp b/modules/webcpanel/pages/nickserv/info.cpp
index b3c743ed3..efbf1a425 100644
--- a/modules/webcpanel/pages/nickserv/info.cpp
+++ b/modules/webcpanel/pages/nickserv/info.cpp
@@ -34,7 +34,7 @@ bool WebCPanel::NickServ::Info::OnRequest(HTTPProvider *server, const Anope::str
const Anope::string &post_greet = HTTPUtils::URLDecode(message.post_data["greet"].replace_all_cs("+", " "));
if (post_greet.empty())
- na->GetAccount()->ShrinkOK<Anope::string>("greet");
+ na->GetAccount()->Shrink<Anope::string>("greet");
else if (!greet || post_greet != *greet)
na->GetAccount()->Extend<Anope::string>("greet", post_greet);
diff --git a/modules/webcpanel/pages/operserv/akill.cpp b/modules/webcpanel/pages/operserv/akill.cpp
index 58b68b0b2..950ed2bd9 100644
--- a/modules/webcpanel/pages/operserv/akill.cpp
+++ b/modules/webcpanel/pages/operserv/akill.cpp
@@ -7,15 +7,12 @@
#include "../../webcpanel.h"
-WebCPanel::OperServ::Akill::Akill(const Anope::string &cat, const Anope::string &u) : WebPanelProtectedPage(cat, u)
+WebCPanel::OperServ::Akill::Akill(const Anope::string &cat, const Anope::string &u) : WebPanelProtectedPage(cat, u), akills("xlinemanager/sgline")
{
}
bool WebCPanel::OperServ::Akill::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, ::NickServ::Nick *na, TemplateFileServer::Replacements &replacements)
{
-
- static ServiceReference<XLineManager> akills("XLineManager","xlinemanager/sgline");
-
if (!na->GetAccount()->o || !na->GetAccount()->o->GetType()->HasCommand("operserv/akill"))
{
replacements["NOACCESS"];
diff --git a/modules/webcpanel/pages/operserv/akill.h b/modules/webcpanel/pages/operserv/akill.h
index 7367f593f..5ad75eaeb 100644
--- a/modules/webcpanel/pages/operserv/akill.h
+++ b/modules/webcpanel/pages/operserv/akill.h
@@ -13,6 +13,8 @@ namespace OperServ
class Akill : public WebPanelProtectedPage
{
+ ServiceReference<XLineManager> akills;
+
public:
Akill(const Anope::string &cat, const Anope::string &u);
diff --git a/modules/webcpanel/webcpanel.cpp b/modules/webcpanel/webcpanel.cpp
index 5da56a6d4..14889c97d 100644
--- a/modules/webcpanel/webcpanel.cpp
+++ b/modules/webcpanel/webcpanel.cpp
@@ -78,7 +78,7 @@ class ModuleWebCPanel : public Module
template_base = Anope::DataDir + "/modules/webcpanel/templates/" + template_name;
page_title = block->Get<Anope::string>("title", "Anope IRC Services");
- provider = ServiceReference<HTTPProvider>("HTTPProvider", provider_name);
+ provider = ServiceReference<HTTPProvider>(provider_name);
if (!provider)
throw ModuleException("Unable to find HTTPD provider. Is m_httpd loaded?");
@@ -250,7 +250,7 @@ namespace WebPanel
{
void RunCommand(const Anope::string &user, NickServ::Account *nc, const Anope::string &service, const Anope::string &c, std::vector<Anope::string> &params, TemplateFileServer::Replacements &r, const Anope::string &key)
{
- ServiceReference<Command> cmd("Command", c);
+ ServiceReference<Command> cmd(c);
if (!cmd)
{
r[key] = "Unable to find command " + c;
@@ -286,7 +286,7 @@ namespace WebPanel
void RunCommandWithName(NickServ::Account *nc, const Anope::string &service, const Anope::string &c, const Anope::string &cmdname, std::vector<Anope::string> &params, TemplateFileServer::Replacements &r, const Anope::string &key)
{
- ServiceReference<Command> cmd("Command", c);
+ ServiceReference<Command> cmd(c);
if (!cmd)
{
r[key] = "Unable to find command " + c;
diff --git a/modules/webcpanel/webcpanel.h b/modules/webcpanel/webcpanel.h
index 8e77b975a..23350ae32 100644
--- a/modules/webcpanel/webcpanel.h
+++ b/modules/webcpanel/webcpanel.h
@@ -31,7 +31,9 @@ struct Section
class Panel : public Section, public Service
{
public:
- Panel(Module *c, const Anope::string &n) : Service(c, "Panel", n) { }
+ static constexpr const char *NAME = "panel";
+
+ Panel(Module *c, const Anope::string &n) : Service(c, NAME, "") { }
std::vector<Section> sections;
@@ -74,6 +76,7 @@ class WebPanelPage : public HTTPPage
class WebPanelProtectedPage : public WebPanelPage
{
Anope::string category;
+ ServiceReference<Panel> panel;
public:
WebPanelProtectedPage(const Anope::string &cat, const Anope::string &u, const Anope::string &ct = "text/html") : WebPanelPage(u, ct), category(cat)
@@ -82,7 +85,6 @@ class WebPanelProtectedPage : public WebPanelPage
bool OnRequest(HTTPProvider *provider, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply) override final
{
- ServiceReference<Panel> panel("Panel", "webcpanel");
NickServ::Nick *na;
if (!panel || !(na = panel->GetNickFromSession(client, message)))