Fix #624: Can´t rename network via webinterface

This commit is contained in:
J-P Nurmi
2014-08-19 20:59:19 +02:00
parent 0065506ff6
commit 2e42f3103c
5 changed files with 36 additions and 24 deletions

View File

@@ -867,27 +867,31 @@ public:
return true;
}
CString sName = WebSock.GetParam("network").Trim_n();
CString sName = WebSock.GetParam("name").Trim_n();
if (sName.empty()) {
WebSock.PrintErrorPage("Network name is a required argument");
return true;
}
if (!pNetwork) {
if (!spSession->IsAdmin() && !pUser->HasSpaceForNewNetwork()) {
WebSock.PrintErrorPage("Network number limit reached. Ask an admin to increase the limit for you, or delete few old ones from Your Settings");
return true;
}
if (!CIRCNetwork::IsValidNetwork(sName)) {
WebSock.PrintErrorPage("Network name should be alphanumeric");
return true;
}
if (!pNetwork && !spSession->IsAdmin() && !pUser->HasSpaceForNewNetwork()) {
WebSock.PrintErrorPage("Network number limit reached. Ask an admin to increase the limit for you, or delete few old ones from Your Settings");
return true;
}
if (!pNetwork || pNetwork->GetName() != sName) {
CString sNetworkAddError;
CIRCNetwork* pOldNetwork = pNetwork;
pNetwork = pUser->AddNetwork(sName, sNetworkAddError);
if (!pNetwork) {
WebSock.PrintErrorPage(sNetworkAddError);
return true;
}
if (pOldNetwork) {
for (CModule* pModule : pOldNetwork->GetModules()) {
CString sPath = pUser->GetUserPath() + "/networks/" + sName + "/moddata/" + pModule->GetModName();
pModule->MoveRegistry(sPath);
}
pNetwork->Clone(*pOldNetwork, false);
pUser->DeleteNetwork(pOldNetwork->GetName());
}
}
CString sArg;