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 @@
- IF BindHostLoop ?>
+ IF BindHostEdit ?>
BindHost:
-
+ IF BindHostLoop ?>
+
+ ELSE ?>
+
+ ENDIF ?>
- ENDIF ?>
- IF DCCBindHostLoop ?>
DCCBindHost:
-
+ IF DCCBindHostLoop ?>
+
+ ELSE ?>
+
+ ENDIF ?>
- ENDIF ?>
+ ENDIF ?>
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;