mirror of
https://github.com/znc/znc.git
synced 2026-05-09 06:44:40 +02:00
Fix *controlpanel not checking whether the bindhost is in the whitelist
(cherry picked from commit e77edb409e)
This commit is contained in:
committed by
Alexey Sokolov
parent
b7e5525f70
commit
7366edfe14
@@ -244,6 +244,29 @@ class CAdminMod : public CModule {
|
||||
}
|
||||
else if (sVar == "bindhost") {
|
||||
if(!pUser->DenySetBindHost() || m_pUser->IsAdmin()) {
|
||||
if (sValue.Equals(m_pUser->GetBindHost())) {
|
||||
PutModule("This bind host is already set!");
|
||||
return;
|
||||
}
|
||||
|
||||
const VCString& vsHosts = CZNC::Get().GetBindHosts();
|
||||
if (!m_pUser->IsAdmin() && !vsHosts.empty()) {
|
||||
VCString::const_iterator it;
|
||||
bool bFound = false;
|
||||
|
||||
for (it = vsHosts.begin(); it != vsHosts.end(); ++it) {
|
||||
if (sValue.Equals(*it)) {
|
||||
bFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bFound) {
|
||||
PutModule("You may not use this bind host. See /msg " + m_pUser->GetStatusPrefix() + "status ListBindHosts for a list");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
pUser->SetBindHost(sValue);
|
||||
PutModule("BindHost = " + sValue);
|
||||
} else {
|
||||
@@ -465,6 +488,29 @@ class CAdminMod : public CModule {
|
||||
PutModule("RealName = " + pNetwork->GetRealName());
|
||||
} else if (sVar.Equals("bindhost")) {
|
||||
if(!pUser->DenySetBindHost() || m_pUser->IsAdmin()) {
|
||||
if (sValue.Equals(pNetwork->GetBindHost())) {
|
||||
PutModule("This bind host is already set!");
|
||||
return;
|
||||
}
|
||||
|
||||
const VCString& vsHosts = CZNC::Get().GetBindHosts();
|
||||
if (!m_pUser->IsAdmin() && !vsHosts.empty()) {
|
||||
VCString::const_iterator it;
|
||||
bool bFound = false;
|
||||
|
||||
for (it = vsHosts.begin(); it != vsHosts.end(); ++it) {
|
||||
if (sValue.Equals(*it)) {
|
||||
bFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bFound) {
|
||||
PutModule("You may not use this bind host. See /msg " + m_pUser->GetStatusPrefix() + "status ListBindHosts for a list");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
pNetwork->SetBindHost(sValue);
|
||||
PutModule("BindHost = " + sValue);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user