Blockuser module adds a checkbox to user page in webadmin.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2131 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
darthgandalf
2010-09-11 18:53:30 +00:00
parent 45c7561485
commit 27496f6c85
2 changed files with 46 additions and 0 deletions

View File

@@ -96,6 +96,39 @@ public:
}
}
bool OnEmbeddedWebRequest(CWebSock& WebSock, const CString& sPageName, CTemplate& Tmpl) {
if (sPageName == "webadmin/user" && WebSock.GetSession()->IsAdmin()) {
CString sAction = Tmpl["WebadminAction"];
if (sAction == "display") {
Tmpl["Blocked"] = CString(IsBlocked(Tmpl["Username"]));
Tmpl["Self"] = CString(Tmpl["Username"].Equals(WebSock.GetSession()->GetUser()->GetUserName()));
return true;
}
if (sAction == "change" && WebSock.GetParam("embed_blockuser_presented").ToBool()) {
if (Tmpl["Username"].Equals(WebSock.GetSession()->GetUser()->GetUserName()) &&
WebSock.GetParam("embed_blockuser_block").ToBool()) {
WebSock.GetSession()->AddError("You can't block yourself");
} else if (WebSock.GetParam("embed_blockuser_block").ToBool()) {
if (!WebSock.GetParam("embed_blockuser_old").ToBool()) {
if (Block(Tmpl["Username"])) {
WebSock.GetSession()->AddSuccess("Blocked [" + Tmpl["Username"] + "]");
} else {
WebSock.GetSession()->AddError("Couldn't block [" + Tmpl["Username"] + "]");
}
}
} else if (WebSock.GetParam("embed_blockuser_old").ToBool()){
if (DelNV(Tmpl["Username"])) {
WebSock.GetSession()->AddSuccess("Unblocked [" + Tmpl["Username"] + "]");
} else {
WebSock.GetSession()->AddError("User [" + Tmpl["Username"] + "is not blocked");
}
}
return true;
}
}
return false;
}
private:
bool IsBlocked(const CString& sUser) {
MCString::iterator it;