mirror of
https://github.com/anope/anope.git
synced 2026-07-01 02:26:38 +02:00
Include ip for web clients in command log messages for source
This commit is contained in:
@@ -59,6 +59,8 @@ class CoreExport CommandSource
|
||||
public:
|
||||
/* The account executing the command */
|
||||
Reference<NickCore> nc;
|
||||
/* for web clients */
|
||||
Anope::string ip;
|
||||
/* Where the reply should go */
|
||||
CommandReply *reply;
|
||||
/* Channel the command was executed on (fantasy) */
|
||||
|
||||
@@ -55,7 +55,7 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
|
||||
params.push_back("DEL");
|
||||
params.push_back(message.get_data["mask"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/access", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/access", params, replacements);
|
||||
}
|
||||
else if (message.post_data["mask"].empty() == false && message.post_data["access"].empty() == false && message.post_data["provider"].empty() == false)
|
||||
{
|
||||
@@ -69,7 +69,7 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
|
||||
params.push_back(message.post_data["mask"]);
|
||||
params.push_back(message.post_data["access"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/access", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/access", params, replacements);
|
||||
}
|
||||
else if (provider == "chanserv/xop")
|
||||
{
|
||||
@@ -78,7 +78,7 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
|
||||
params.push_back("ADD");
|
||||
params.push_back(message.post_data["mask"]);
|
||||
|
||||
WebPanel::RunCommandWithName(na->nc, "ChanServ", "chanserv/xop", message.post_data["access"], params, replacements);
|
||||
WebPanel::RunCommandWithName(client, na->nc, "ChanServ", "chanserv/xop", message.post_data["access"], params, replacements);
|
||||
}
|
||||
else if (provider == "chanserv/flags")
|
||||
{
|
||||
@@ -88,7 +88,7 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
|
||||
params.push_back(message.post_data["mask"]);
|
||||
params.push_back(message.post_data["access"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/flags", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/flags", params, replacements);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ bool WebCPanel::ChanServ::Akick::OnRequest(HTTPProvider *server, const Anope::st
|
||||
params.push_back("DEL");
|
||||
params.push_back(message.get_data["mask"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/akick", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/akick", params, replacements);
|
||||
}
|
||||
else if (message.post_data["mask"].empty() == false)
|
||||
{
|
||||
@@ -64,7 +64,7 @@ bool WebCPanel::ChanServ::Akick::OnRequest(HTTPProvider *server, const Anope::st
|
||||
if (message.post_data["reason"].empty() == false)
|
||||
params.push_back(message.post_data["reason"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/akick", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/akick", params, replacements);
|
||||
}
|
||||
|
||||
replacements["ESCAPED_CHANNEL"] = HTTPUtils::URLEncode(chname);
|
||||
|
||||
@@ -25,7 +25,7 @@ bool WebCPanel::ChanServ::Drop::OnRequest(HTTPProvider *server, const Anope::str
|
||||
params.push_back(channel);
|
||||
params.push_back(channel);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/drop", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/drop", params, replacements);
|
||||
}
|
||||
else
|
||||
replacements["MESSAGES"] = "Invalid Confirmation";
|
||||
|
||||
@@ -82,7 +82,7 @@ bool WebCPanel::ChanServ::Modes::OnRequest(HTTPProvider *server, const Anope::st
|
||||
params.push_back("SET");
|
||||
params.push_back("-" + Anope::string(cm->mchar));
|
||||
params.push_back(message.get_data["mask"]);
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/mode", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/mode", params, replacements);
|
||||
}
|
||||
else if (message.post_data["mask"].empty() == false)
|
||||
{
|
||||
@@ -91,7 +91,7 @@ bool WebCPanel::ChanServ::Modes::OnRequest(HTTPProvider *server, const Anope::st
|
||||
params.push_back("SET");
|
||||
params.push_back("+" + Anope::string(cm->mchar));
|
||||
params.push_back(message.post_data["mask"]);
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/mode", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "ChanServ", "chanserv/mode", params, replacements);
|
||||
}
|
||||
|
||||
std::vector<Anope::string> v = c->GetModeList(cm->name);
|
||||
|
||||
@@ -21,7 +21,7 @@ bool WebCPanel::Confirm::OnRequest(HTTPProvider *server, const Anope::string &pa
|
||||
if (!email.empty())
|
||||
params.push_back(email);
|
||||
|
||||
WebPanel::RunCommand(user, NULL, "NickServ", "nickserv/register", params, replacements);
|
||||
WebPanel::RunCommand(client, user, NULL, "NickServ", "nickserv/register", params, replacements);
|
||||
}
|
||||
|
||||
TemplateFileServer page("confirm.html");
|
||||
|
||||
@@ -18,7 +18,7 @@ bool WebCPanel::HostServ::Request::OnRequest(HTTPProvider *server, const Anope::
|
||||
std::vector<Anope::string> params;
|
||||
params.push_back(HTTPUtils::URLDecode(message.post_data["req"]));
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "HostServ", "hostserv/request", params, replacements, "CMDR");
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "HostServ", "hostserv/request", params, replacements, "CMDR");
|
||||
}
|
||||
|
||||
if (na->HasVhost())
|
||||
|
||||
@@ -57,7 +57,7 @@ bool WebCPanel::MemoServ::Memos::OnRequest(HTTPProvider *server, const Anope::st
|
||||
params.push_back(HTTPUtils::URLDecode(message.post_data["receiver"]));
|
||||
params.push_back(HTTPUtils::URLDecode(message.post_data["message"]));
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "MemoServ", "memoserv/send", params, replacements, "CMDR");
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "MemoServ", "memoserv/send", params, replacements, "CMDR");
|
||||
}
|
||||
if (message.get_data.count("del") > 0 && message.get_data.count("number") > 0)
|
||||
{
|
||||
@@ -66,7 +66,7 @@ bool WebCPanel::MemoServ::Memos::OnRequest(HTTPProvider *server, const Anope::st
|
||||
params.push_back(chname);
|
||||
params.push_back(message.get_data["number"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "MemoServ", "memoserv/del", params, replacements, "CMDR");
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "MemoServ", "memoserv/del", params, replacements, "CMDR");
|
||||
}
|
||||
if (message.get_data.count("read") > 0 && message.get_data.count("number") > 0)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,7 @@ bool WebCPanel::NickServ::Access::OnRequest(HTTPProvider *server, const Anope::s
|
||||
params.push_back("ADD");
|
||||
params.push_back(message.post_data["access"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "NickServ", "nickserv/access", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/access", params, replacements);
|
||||
}
|
||||
else if (message.get_data.count("del") > 0 && message.get_data.count("mask") > 0)
|
||||
{
|
||||
@@ -27,7 +27,7 @@ bool WebCPanel::NickServ::Access::OnRequest(HTTPProvider *server, const Anope::s
|
||||
params.push_back("DEL");
|
||||
params.push_back(message.get_data["mask"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "NickServ", "nickserv/access", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/access", params, replacements);
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < na->nc->access.size(); ++i)
|
||||
|
||||
@@ -20,7 +20,7 @@ bool WebCPanel::NickServ::Cert::OnRequest(HTTPProvider *server, const Anope::str
|
||||
params.push_back("ADD");
|
||||
params.push_back(message.post_data["certfp"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "NickServ", "nickserv/cert", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/cert", params, replacements);
|
||||
}
|
||||
else if (message.get_data.count("del") > 0 && message.get_data.count("mask") > 0)
|
||||
{
|
||||
@@ -28,7 +28,7 @@ bool WebCPanel::NickServ::Cert::OnRequest(HTTPProvider *server, const Anope::str
|
||||
params.push_back("DEL");
|
||||
params.push_back(message.get_data["mask"]);
|
||||
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "NickServ", "nickserv/cert", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/cert", params, replacements);
|
||||
}
|
||||
|
||||
NSCertList *cl = na->nc->GetExt<NSCertList>("certificates");
|
||||
|
||||
@@ -34,7 +34,7 @@ bool WebCPanel::OperServ::Akill::OnRequest(HTTPProvider *server, const Anope::st
|
||||
cmdstr << " " << HTTPUtils::URLDecode(message.post_data["mask"]);
|
||||
cmdstr << " " << HTTPUtils::URLDecode(message.post_data["reason"]);
|
||||
params.push_back(cmdstr.str());
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "OperServ", "operserv/akill", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "OperServ", "operserv/akill", params, replacements);
|
||||
}
|
||||
|
||||
if (message.get_data["del"] == "1" && message.get_data.count("number") > 0)
|
||||
@@ -42,7 +42,7 @@ bool WebCPanel::OperServ::Akill::OnRequest(HTTPProvider *server, const Anope::st
|
||||
std::vector<Anope::string> params;
|
||||
params.push_back("DEL");
|
||||
params.push_back(HTTPUtils::URLDecode(message.get_data["number"]));
|
||||
WebPanel::RunCommand(na->nc->display, na->nc, "OperServ", "operserv/akill", params, replacements);
|
||||
WebPanel::RunCommand(client, na->nc->display, na->nc, "OperServ", "operserv/akill", params, replacements);
|
||||
}
|
||||
|
||||
for (unsigned i = 0, end = akills->GetCount(); i < end; ++i)
|
||||
|
||||
@@ -231,7 +231,7 @@ class ModuleWebCPanel : public Module
|
||||
|
||||
namespace WebPanel
|
||||
{
|
||||
void RunCommand(const Anope::string &user, NickCore *nc, const Anope::string &service, const Anope::string &c, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key)
|
||||
void RunCommand(HTTPClient *client, const Anope::string &user, NickCore *nc, const Anope::string &service, const Anope::string &c, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key)
|
||||
{
|
||||
ServiceReference<Command> cmd("Command", c);
|
||||
if (!cmd)
|
||||
@@ -266,12 +266,15 @@ namespace WebPanel
|
||||
my_reply(r, key);
|
||||
|
||||
CommandSource source(user, NULL, nc, &my_reply, bi);
|
||||
source.ip = client->clientaddr.addr();
|
||||
|
||||
CommandInfo info;
|
||||
info.name = c;
|
||||
|
||||
cmd->Run(source, "", info, params);
|
||||
}
|
||||
|
||||
void RunCommandWithName(NickCore *nc, const Anope::string &service, const Anope::string &c, const Anope::string &cmdname, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key)
|
||||
void RunCommandWithName(HTTPClient *client, NickCore *nc, const Anope::string &service, const Anope::string &c, const Anope::string &cmdname, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key)
|
||||
{
|
||||
ServiceReference<Command> cmd("Command", c);
|
||||
if (!cmd)
|
||||
@@ -303,6 +306,7 @@ namespace WebPanel
|
||||
my_reply(r, key);
|
||||
|
||||
CommandSource source(nc->display, NULL, nc, &my_reply, bi);
|
||||
source.ip = client->clientaddr.addr();
|
||||
|
||||
cmd->Run(source, cmdname, *info, params);
|
||||
}
|
||||
|
||||
@@ -143,6 +143,7 @@ class WebPanelProtectedPage : public WebPanelPage
|
||||
namespace WebPanel
|
||||
{
|
||||
/** Run a command
|
||||
* @param client HTTP client command is being issued for
|
||||
* @param User name to run command as, probably nc->display unless nc == NULL
|
||||
* @param nc Nick core to run command from
|
||||
* @param service Service for source.owner and source.service
|
||||
@@ -151,9 +152,9 @@ namespace WebPanel
|
||||
* @param r Replacements, reply from command goes back here into key
|
||||
* @param key The key to put the replies into r
|
||||
*/
|
||||
extern void RunCommand(const Anope::string &user, NickCore *nc, const Anope::string &service, const Anope::string &c, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key = "MESSAGES");
|
||||
extern void RunCommand(HTTPClient *client, const Anope::string &user, NickCore *nc, const Anope::string &service, const Anope::string &c, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key = "MESSAGES");
|
||||
|
||||
extern void RunCommandWithName(NickCore *nc, const Anope::string &service, const Anope::string &c, const Anope::string &cmdname, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key = "MESSAGES");
|
||||
extern void RunCommandWithName(HTTPClient *client, NickCore *nc, const Anope::string &service, const Anope::string &c, const Anope::string &cmdname, std::vector<Anope::string> ¶ms, TemplateFileServer::Replacements &r, const Anope::string &key = "MESSAGES");
|
||||
}
|
||||
|
||||
#include "pages/index.h"
|
||||
|
||||
+6
-1
@@ -146,7 +146,12 @@ Anope::string Log::FormatSource() const
|
||||
else if (nc)
|
||||
return nc->display;
|
||||
else if (source)
|
||||
return source->GetNick();
|
||||
{
|
||||
Anope::string buf = source->GetNick();
|
||||
if (!buf.empty() && !source->ip.empty())
|
||||
buf += " (" + source->ip + ")";
|
||||
return buf;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user