summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/webcpanel/pages/nickserv/confirm.cpp26
-rw-r--r--modules/webcpanel/pages/nickserv/confirm.h24
-rw-r--r--modules/webcpanel/templates/default/nickserv/confirm.html29
-rw-r--r--modules/webcpanel/webcpanel.cpp9
-rw-r--r--modules/webcpanel/webcpanel.h1
5 files changed, 88 insertions, 1 deletions
diff --git a/modules/webcpanel/pages/nickserv/confirm.cpp b/modules/webcpanel/pages/nickserv/confirm.cpp
new file mode 100644
index 000000000..00d2196a4
--- /dev/null
+++ b/modules/webcpanel/pages/nickserv/confirm.cpp
@@ -0,0 +1,26 @@
+/*
+ * (C) 2003-2022 Anope Team
+ * Contact us at team@anope.org
+ *
+ * Please read COPYING and README for further details.
+ */
+
+#include "../../webcpanel.h"
+
+WebCPanel::NickServ::Confirm::Confirm(const Anope::string &cat, const Anope::string &u) : WebPanelProtectedPage(cat, u)
+{
+}
+
+bool WebCPanel::NickServ::Confirm::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, NickAlias *na, TemplateFileServer::Replacements &replacements)
+{
+
+ std::vector<Anope::string> params;
+ params.push_back(message.post_data["code"]);
+
+ WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/confirm", params, replacements);
+
+ TemplateFileServer page("nickserv/confirm.html");
+
+ page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
+}
diff --git a/modules/webcpanel/pages/nickserv/confirm.h b/modules/webcpanel/pages/nickserv/confirm.h
new file mode 100644
index 000000000..6b0744a76
--- /dev/null
+++ b/modules/webcpanel/pages/nickserv/confirm.h
@@ -0,0 +1,24 @@
+/*
+ * (C) 2003-2022 Anope Team
+ * Contact us at team@anope.org
+ *
+ * Please read COPYING and README for further details.
+ */
+
+namespace WebCPanel
+{
+
+namespace NickServ
+{
+
+class Confirm : public WebPanelProtectedPage
+{
+ public:
+ Confirm(const Anope::string &cat, const Anope::string &u);
+
+ bool OnRequest(HTTPProvider *, const Anope::string &, HTTPClient *, HTTPMessage &, HTTPReply &, NickAlias *, TemplateFileServer::Replacements &) anope_override;
+};
+
+}
+
+}
diff --git a/modules/webcpanel/templates/default/nickserv/confirm.html b/modules/webcpanel/templates/default/nickserv/confirm.html
new file mode 100644
index 000000000..66dbe34df
--- /dev/null
+++ b/modules/webcpanel/templates/default/nickserv/confirm.html
@@ -0,0 +1,29 @@
+{INCLUDE header.html}
+ <div class="panel-heading">Confirm your Email</div>
+ <div class="panel-body">
+ {FOR M IN MESSAGES}
+ <div class="alert alert-info">
+ {M}<br>
+ </div>
+ {END FOR}
+
+ <em>You can <strong>CONFIRM</strong> your registration by entering your confirmation code below.</em>
+
+ <hr>
+
+ <h4>Confirm your account</h4>
+ <form class="form-horizontal" method="post" action="/nickserv/confirm">
+ <div class="form-group">
+ <label class="control-label col-lg-2" for="confirm">Confirmation Code:</label>
+ <div class="col-lg-5">
+ <input class="form-control" type="text" name="code" id="code" placeholder="Code from Email">
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-lg-offset-2 col-lg-5">
+ <button type="submit" class="btn btn-primary">Confirm Me!</button>
+ </div>
+ </div>
+ </form>
+ </div>
+{INCLUDE footer.html}
diff --git a/modules/webcpanel/webcpanel.cpp b/modules/webcpanel/webcpanel.cpp
index abe0af32a..9b46fe6c9 100644
--- a/modules/webcpanel/webcpanel.cpp
+++ b/modules/webcpanel/webcpanel.cpp
@@ -28,6 +28,7 @@ class ModuleWebCPanel : public Module
WebCPanel::NickServ::Cert nickserv_cert;
WebCPanel::NickServ::Access nickserv_access;
WebCPanel::NickServ::Alist nickserv_alist;
+ WebCPanel::NickServ::Confirm nickserv_confirm;
WebCPanel::ChanServ::Info chanserv_info;
WebCPanel::ChanServ::Set chanserv_set;
@@ -49,7 +50,7 @@ class ModuleWebCPanel : public Module
id(this, "webcpanel_id"), ip(this, "webcpanel_ip"), last_login(this, "webcpanel_last_login"),
style_css("style.css", "/static/style.css", "text/css"), logo_png("logo.png", "/static/logo.png", "image/png"), cubes_png("cubes.png", "/static/cubes.png", "image/png"), favicon_ico("favicon.ico", "/favicon.ico", "image/x-icon"),
index("/"), logout("/logout"), _register("/register"), confirm("/confirm"),
- nickserv_info("NickServ", "/nickserv/info"), nickserv_cert("NickServ", "/nickserv/cert"), nickserv_access("NickServ", "/nickserv/access"), nickserv_alist("NickServ", "/nickserv/alist"),
+ nickserv_info("NickServ", "/nickserv/info"), nickserv_cert("NickServ", "/nickserv/cert"), nickserv_access("NickServ", "/nickserv/access"), nickserv_alist("NickServ", "/nickserv/alist"), nickserv_confirm("NickServ", "/nickserv/confirm"),
chanserv_info("ChanServ", "/chanserv/info"), chanserv_set("ChanServ", "/chanserv/set"), chanserv_access("ChanServ", "/chanserv/access"), chanserv_akick("ChanServ", "/chanserv/akick"),
chanserv_modes("ChanServ", "/chanserv/modes"), chanserv_drop("ChanServ", "/chanserv/drop"), memoserv_memos("MemoServ", "/memoserv/memos"), hostserv_request("HostServ", "/hostserv/request"),
operserv_akill("OperServ", "/operserv/akill")
@@ -107,6 +108,11 @@ class ModuleWebCPanel : public Module
s.subsections.push_back(ss);
provider->RegisterPage(&this->nickserv_alist);
+ ss.name = "Confirm";
+ ss.url = "/nickserv/confirm";
+ s.subsections.push_back(ss);
+ provider->RegisterPage(&this->nickserv_confirm);
+
panel.sections.push_back(s);
}
@@ -214,6 +220,7 @@ class ModuleWebCPanel : public Module
provider->UnregisterPage(&this->nickserv_cert);
provider->UnregisterPage(&this->nickserv_access);
provider->UnregisterPage(&this->nickserv_alist);
+ provider->UnregisterPage(&this->nickserv_confirm);
provider->UnregisterPage(&this->chanserv_info);
provider->UnregisterPage(&this->chanserv_set);
diff --git a/modules/webcpanel/webcpanel.h b/modules/webcpanel/webcpanel.h
index 87a498d46..0313be234 100644
--- a/modules/webcpanel/webcpanel.h
+++ b/modules/webcpanel/webcpanel.h
@@ -166,6 +166,7 @@ namespace WebPanel
#include "pages/nickserv/cert.h"
#include "pages/nickserv/access.h"
#include "pages/nickserv/alist.h"
+#include "pages/nickserv/confirm.h"
#include "pages/chanserv/info.h"
#include "pages/chanserv/set.h"