diff options
| author | Adam <Adam@anope.org> | 2012-09-01 18:54:51 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2012-09-01 18:54:51 -0400 |
| commit | e3d5140dcc936ff411c438b7e3997104cb5f085a (patch) | |
| tree | 49d7ee0b3e531a1c81e35fb10f25e6340fa781ba /modules/extra/webcpanel/pages/nickserv/info.cpp | |
| parent | f81d0113a21187d68c5fa0f1262e5514465b1953 (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.cpp | 111 |
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); +} + |
