summaryrefslogtreecommitdiff
path: root/modules/extra/webcpanel/pages/nickserv/info.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-09-01 18:54:51 -0400
committerAdam <Adam@anope.org>2012-09-01 18:54:51 -0400
commite3d5140dcc936ff411c438b7e3997104cb5f085a (patch)
tree49d7ee0b3e531a1c81e35fb10f25e6340fa781ba /modules/extra/webcpanel/pages/nickserv/info.cpp
parentf81d0113a21187d68c5fa0f1262e5514465b1953 (diff)
Added a web panel module + a default template
Diffstat (limited to 'modules/extra/webcpanel/pages/nickserv/info.cpp')
-rw-r--r--modules/extra/webcpanel/pages/nickserv/info.cpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/modules/extra/webcpanel/pages/nickserv/info.cpp b/modules/extra/webcpanel/pages/nickserv/info.cpp
new file mode 100644
index 000000000..7ae07ad28
--- /dev/null
+++ b/modules/extra/webcpanel/pages/nickserv/info.cpp
@@ -0,0 +1,111 @@
+/*
+ * (C) 2003-2012 Anope Team
+ * Contact us at team@anope.org
+ *
+ * Please read COPYING and README for further details.
+ */
+
+#include "../../webcpanel.h"
+
+WebCPanel::NickServ::Info::Info(const Anope::string &cat, const Anope::string &u) : WebPanelProtectedPage(cat, u)
+{
+}
+
+void WebCPanel::NickServ::Info::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, NickAlias *na, TemplateFileServer::Replacements &replacements)
+{
+ if (message.post_data.empty() == false)
+ {
+ if (message.post_data.count("email") > 0)
+ {
+ if (message.post_data["email"] != na->nc->email)
+ {
+ if (!message.post_data["email"].empty() && !MailValidate(message.post_data["email"]))
+ replacements["ERRORS"] = "Invalid email";
+ else
+ {
+ na->nc->email = message.post_data["email"];
+ replacements["MESSAGES"] = "Email updated";
+ }
+ }
+ }
+ if (message.post_data.count("greet") > 0)
+ {
+ if (message.post_data["greet"].replace_all_cs("+", " ") != na->nc->greet)
+ {
+ na->nc->greet = HTTPUtils::URLDecode(message.post_data["greet"]);
+ replacements["MESSAGES"] = "Greet updated";
+ }
+ }
+ if (na->nc->HasFlag(NI_AUTOOP) != message.post_data.count("autoop"))
+ {
+ if (!na->nc->HasFlag(NI_AUTOOP))
+ na->nc->SetFlag(NI_AUTOOP);
+ else
+ na->nc->UnsetFlag(NI_AUTOOP);
+ replacements["MESSAGES"] = "Autoop updated";
+ }
+ if (na->nc->HasFlag(NI_PRIVATE) != message.post_data.count("private"))
+ {
+ if (!na->nc->HasFlag(NI_PRIVATE))
+ na->nc->SetFlag(NI_PRIVATE);
+ else
+ na->nc->UnsetFlag(NI_PRIVATE);
+ replacements["MESSAGES"] = "Private updated";
+ }
+ if (na->nc->HasFlag(NI_SECURE) != message.post_data.count("secure"))
+ {
+ if (!na->nc->HasFlag(NI_SECURE))
+ na->nc->SetFlag(NI_SECURE);
+ else
+ na->nc->UnsetFlag(NI_SECURE);
+ replacements["MESSAGES"] = "Secure updated";
+ }
+ if (message.post_data["kill"] == "on" && !na->nc->HasFlag(NI_KILLPROTECT))
+ {
+ na->nc->SetFlag(NI_KILLPROTECT);
+ na->nc->UnsetFlag(NI_KILL_QUICK);
+ replacements["MESSAGES"] = "Kill updated";
+ }
+ else if (message.post_data["kill"] == "quick" && !na->nc->HasFlag(NI_KILL_QUICK))
+ {
+ na->nc->UnsetFlag(NI_KILLPROTECT);
+ na->nc->SetFlag(NI_KILL_QUICK);
+ replacements["MESSAGES"] = "Kill updated";
+ }
+ else if (message.post_data["kill"] == "off" && (na->nc->HasFlag(NI_KILLPROTECT) || na->nc->HasFlag(NI_KILL_QUICK)))
+ {
+ na->nc->UnsetFlag(NI_KILLPROTECT);
+ na->nc->UnsetFlag(NI_KILL_QUICK);
+ replacements["MESSAGES"] = "Kill updated";
+ }
+ }
+
+ replacements["DISPLAY"] = HTTPUtils::Escape(na->nc->display);
+ if (na->nc->email.empty() == false)
+ replacements["EMAIL"] = HTTPUtils::Escape(na->nc->email);
+ replacements["TIME_REGISTERED"] = do_strftime(na->time_registered, na->nc);
+ if (na->HasVhost())
+ {
+ if (na->GetVhostIdent().empty() == false)
+ replacements["VHOST"] = na->GetVhostIdent() + "@" + na->GetVhostHost();
+ else
+ replacements["VHOST"] = na->GetVhostHost();
+ }
+ replacements["GREET"] = HTTPUtils::Escape(na->nc->greet);
+ if (na->nc->HasFlag(NI_AUTOOP))
+ replacements["AUTOOP"];
+ if (na->nc->HasFlag(NI_PRIVATE))
+ replacements["PRIVATE"];
+ if (na->nc->HasFlag(NI_SECURE))
+ replacements["SECURE"];
+ if (na->nc->HasFlag(NI_KILLPROTECT))
+ replacements["KILL_ON"];
+ if (na->nc->HasFlag(NI_KILL_QUICK))
+ replacements["KILL_QUICK"];
+ if (!na->nc->HasFlag(NI_KILLPROTECT) && !na->nc->HasFlag(NI_KILL_QUICK))
+ replacements["KILL_OFF"];
+
+ TemplateFileServer page("nickserv/info.html");
+ page.Serve(server, page_name, client, message, reply, replacements);
+}
+