webadmin: Ask for confirmation when deleting a network

Closes #142
This commit is contained in:
Kyle Fuller
2012-03-19 00:18:15 +00:00
parent 27bebf1ca4
commit 5618cf78d7
2 changed files with 44 additions and 4 deletions
@@ -0,0 +1,23 @@
<? INC Header.tmpl ?>
<div class="section">
<h3>Confirm Network Deletion</h3>
<div class="sectionbg">
<div class="sectionbody">
<div class="subsection">
Are you sure you want to delete "<? VAR Username ?>/<? VAR Network ?>"?
<form action="delnetwork" method="post">
<? INC _csrf_check.tmpl ?>
<input type="hidden" name="user" value="<? VAR Username ?>" />
<input type="hidden" name="name" value="<? VAR Network ?>" />
<div class="yesnobutton"><input type="submit" value="Yes" /></div>
</form>
<form action="listusers" method="get">
<div class="yesnobutton"><input type="submit" value="No" /></div>
</form>
</div>
</div>
</div>
</div>
<? INC Footer.tmpl ?>
+21 -4
View File
@@ -384,14 +384,19 @@ public:
return NetworkPage(WebSock, Tmpl, pNetwork->GetUser(), pNetwork);
} else if (sPageName == "delnetwork") {
CUser* pUser = CZNC::Get().FindUser(WebSock.GetParam("user", false));
CString sUser = WebSock.GetParam("user");
if (sUser.empty() && !WebSock.IsPost()) {
sUser = WebSock.GetParam("user", false);
}
CUser* pUser = CZNC::Get().FindUser(sUser);
// Admin||Self Check
if (!spSession->IsAdmin() && (!spSession->GetUser() || spSession->GetUser() != pUser)) {
return false;
}
return DelNetwork(WebSock, pUser);
return DelNetwork(WebSock, pUser, Tmpl);
} else if (sPageName == "editchan") {
CIRCNetwork* pNetwork = SafeGetNetworkFromParam(WebSock);
@@ -810,8 +815,11 @@ public:
return true;
}
bool DelNetwork(CWebSock& WebSock, CUser* pUser) {
CString sNetwork = WebSock.GetParam("name", false);
bool DelNetwork(CWebSock& WebSock, CUser* pUser, CTemplate& Tmpl) {
CString sNetwork = WebSock.GetParam("name");
if (sNetwork.empty() && !WebSock.IsPost()) {
sNetwork = WebSock.GetParam("name", false);
}
if (!pUser) {
WebSock.PrintErrorPage("That user doesn't exist");
@@ -823,6 +831,15 @@ public:
return true;
}
if (!WebSock.IsPost()) {
// Show the "Are you sure?" page:
Tmpl.SetFile("del_network.tmpl");
Tmpl["Username"] = pUser->GetUserName();
Tmpl["Network"] = sNetwork;
return true;
}
pUser->DeleteNetwork(sNetwork);
if (!CZNC::Get().WriteConfig()) {