From 570fab6e445a6f4644b44a4c44bb072d51e0fe37 Mon Sep 17 00:00:00 2001 From: psychon Date: Fri, 31 Dec 2010 08:32:58 +0000 Subject: [PATCH] webadmin: Add DCCBindHost Before this commit, editing some user in webadmin cleared their DCCBindHost. That's definitely not what we want. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2226 726aef4b-f618-498e-8847-2d620e286838 --- modules/webadmin.cpp | 23 +++++++++++++++++++++-- modules/webadmin/tmpl/add_edit_user.tmpl | 11 +++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index 89b3f21a..d0b43c74 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -233,11 +233,16 @@ public: sArg = WebSock.GetParam("bindhost"); // To change BindHosts be admin or don't have DenySetBindHost if (spSession->IsAdmin() || !spSession->GetUser()->DenySetBindHost()) { + CString sArg2 = WebSock.GetParam("dccbindhost"); if (!sArg.empty()) { pNewUser->SetBindHost(sArg); } + if (!sArg2.empty()) { + pNewUser->SetDCCBindHost(sArg2); + } } else if (pUser){ pNewUser->SetBindHost(pUser->GetBindHost()); + pNewUser->SetDCCBindHost(pUser->GetDCCBindHost()); } // First apply the old limit in case the new one is too high @@ -681,19 +686,27 @@ public: } // To change BindHosts be admin or don't have DenySetBindHost - const VCString& vsBindHosts = CZNC::Get().GetBindHosts(); - bool bFoundBindHost = false; if (spSession->IsAdmin() || !spSession->GetUser()->DenySetBindHost()) { + const VCString& vsBindHosts = CZNC::Get().GetBindHosts(); + bool bFoundBindHost = false; + bool bFoundDCCBindHost = false; for (unsigned int b = 0; b < vsBindHosts.size(); b++) { const CString& sBindHost = vsBindHosts[b]; CTemplate& l = Tmpl.AddRow("BindHostLoop"); + CTemplate& k = Tmpl.AddRow("DCCBindHostLoop"); l["BindHost"] = sBindHost; + k["BindHost"] = sBindHost; if (pUser && pUser->GetBindHost() == sBindHost) { l["Checked"] = "true"; bFoundBindHost = true; } + + if (pUser && pUser->GetDCCBindHost() == sBindHost) { + k["Checked"] = "true"; + bFoundDCCBindHost = true; + } } // If our current bindhost is not in the global list... @@ -703,6 +716,12 @@ public: l["BindHost"] = pUser->GetBindHost(); l["Checked"] = "true"; } + if (pUser && !bFoundDCCBindHost && !pUser->GetDCCBindHost().empty()) { + CTemplate& l = Tmpl.AddRow("DCCBindHostLoop"); + + l["BindHost"] = pUser->GetDCCBindHost(); + l["Checked"] = "true"; + } } vector vDirs; diff --git a/modules/webadmin/tmpl/add_edit_user.tmpl b/modules/webadmin/tmpl/add_edit_user.tmpl index 6e22e08e..ab489087 100644 --- a/modules/webadmin/tmpl/add_edit_user.tmpl +++ b/modules/webadmin/tmpl/add_edit_user.tmpl @@ -82,6 +82,17 @@
+ +
+
DCCBindHost:
+ +
+
+ +
Quit Message: