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

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()) {