From b8822b8bfbfc765a54d35071767094c2e6409f9f Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Sun, 1 Apr 2012 11:52:31 +0700 Subject: [PATCH] webadmin: allow edit bindhost without global list. --- modules/data/webadmin/tmpl/add_edit_user.tmpl | 30 ++++++---- modules/webadmin.cpp | 60 ++++++++++--------- 2 files changed, 51 insertions(+), 39 deletions(-) diff --git a/modules/data/webadmin/tmpl/add_edit_user.tmpl b/modules/data/webadmin/tmpl/add_edit_user.tmpl index 33322555..6f364901 100644 --- a/modules/data/webadmin/tmpl/add_edit_user.tmpl +++ b/modules/data/webadmin/tmpl/add_edit_user.tmpl @@ -74,27 +74,33 @@
- +
BindHost:
- + + + + +
- -
DCCBindHost:
- + + + + +
- +
Quit Message:
diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index 099b4d0d..ca71e081 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -967,41 +967,47 @@ public: // To change BindHosts be admin or don't have DenySetBindHost if (spSession->IsAdmin() || !spSession->GetUser()->DenySetBindHost()) { + Tmpl["BindHostEdit"] = "true"; 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"); + if (vsBindHosts.empty()) { + Tmpl["BindHost"] = pUser->GetBindHost(); + Tmpl["DCCBindHost"] = pUser->GetDCCBindHost(); + } else { + 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; + l["BindHost"] = sBindHost; + k["BindHost"] = sBindHost; - if (pUser && pUser->GetBindHost() == 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... + if (pUser && !bFoundBindHost && !pUser->GetBindHost().empty()) { + CTemplate& l = Tmpl.AddRow("BindHostLoop"); + + l["BindHost"] = pUser->GetBindHost(); l["Checked"] = "true"; - bFoundBindHost = true; } + if (pUser && !bFoundDCCBindHost && !pUser->GetDCCBindHost().empty()) { + CTemplate& l = Tmpl.AddRow("DCCBindHostLoop"); - if (pUser && pUser->GetDCCBindHost() == sBindHost) { - k["Checked"] = "true"; - bFoundDCCBindHost = true; + l["BindHost"] = pUser->GetDCCBindHost(); + l["Checked"] = "true"; } } - - // If our current bindhost is not in the global list... - if (pUser && !bFoundBindHost && !pUser->GetBindHost().empty()) { - CTemplate& l = Tmpl.AddRow("BindHostLoop"); - - 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;