From b1451a28c49ddc3f934d1a3724de252beed3bbb3 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sun, 7 Sep 2014 23:54:11 +0200 Subject: [PATCH] makeconf: one admin user is enough to get started Webadmin is more convenient and enabled by default since 7387f00. --- src/znc.cpp | 169 +++++++++++++++++++++++++--------------------------- 1 file changed, 80 insertions(+), 89 deletions(-) diff --git a/src/znc.cpp b/src/znc.cpp index 221efbcd..8e348751 100644 --- a/src/znc.cpp +++ b/src/znc.cpp @@ -651,117 +651,108 @@ bool CZNC::WriteNewConfig(const CString& sConfigFile) { // User CUtils::PrintMessage(""); - CUtils::PrintMessage("Now we need to set up a user..."); + CUtils::PrintMessage("Now we need to set up an admin user..."); CUtils::PrintMessage(""); - bool bFirstUser = true; - + vsLines.push_back(""); + CString sNick; do { + CUtils::GetInput("Username", sUser, "", "AlphaNumeric"); + } while (!CUser::IsValidUserName(sUser)); + + vsLines.push_back(""); + CString sSalt; + sAnswer = CUtils::GetSaltedHashPass(sSalt); + vsLines.push_back("\tPass = " + CUtils::sDefaultHash + "#" + sAnswer + "#" + sSalt + "#"); + + vsLines.push_back("\tAdmin = true"); + + CUtils::GetInput("Nick", sNick, CUser::MakeCleanUserName(sUser)); + vsLines.push_back("\tNick = " + sNick); + CUtils::GetInput("Alt Nick", sAnswer, sNick + "_"); + if (!sAnswer.empty()) { + vsLines.push_back("\tAltNick = " + sAnswer); + } + CUtils::GetInput("Ident", sAnswer, sUser); + vsLines.push_back("\tIdent = " + sAnswer); + CUtils::GetInput("Real Name", sAnswer, "Got ZNC?"); + vsLines.push_back("\tRealName = " + sAnswer); + CUtils::GetInput("Bind Host", sAnswer, "", "optional"); + if (!sAnswer.empty()) { + vsLines.push_back("\tBindHost = " + sAnswer); + } + + set ssUserMods; + GetModules().GetDefaultMods(ssUserMods, CModInfo::UserModule); + vector vsUserModNames; + for (set::const_iterator it = ssUserMods.begin(); it != ssUserMods.end(); ++it) { + vsUserModNames.push_back(it->GetName()); + vsLines.push_back("\tLoadModule = " + it->GetName()); + } + CUtils::PrintMessage("Enabled the default user modules [" + CString(", ").Join(vsUserModNames.begin(), vsUserModNames.end()) + "]"); + + CUtils::PrintMessage(""); + if (CUtils::GetBoolInput("Would you like to set up a network?", true)) { vsLines.push_back(""); - CString sNick; + do { - CUtils::GetInput("Username", sUser, "", "AlphaNumeric"); - } while (!CUser::IsValidUserName(sUser)); + CUtils::GetInput("Network", sNetwork, "", "e.g. `freenode' or `efnet'"); + } while (!CIRCNetwork::IsValidNetwork(sNetwork)); - vsLines.push_back(""); - CString sSalt; - sAnswer = CUtils::GetSaltedHashPass(sSalt); - vsLines.push_back("\tPass = " + CUtils::sDefaultHash + "#" + sAnswer + "#" + sSalt + "#"); + vsLines.push_back("\t"); - if (CUtils::GetBoolInput("Would you like this user to be an admin?", bFirstUser)) { - vsLines.push_back("\tAdmin = true"); - } else { - vsLines.push_back("\tAdmin = false"); + set ssNetworkMods; + GetModules().GetDefaultMods(ssNetworkMods, CModInfo::NetworkModule); + vector vsNetworkModNames; + for (set::const_iterator it = ssNetworkMods.begin(); it != ssNetworkMods.end(); ++it) { + vsNetworkModNames.push_back(it->GetName()); + vsLines.push_back("\t\tLoadModule = " + it->GetName()); } + CUtils::PrintMessage("Enabled the default network modules [" + CString(", ").Join(vsNetworkModNames.begin(), vsNetworkModNames.end()) + "]"); - CUtils::GetInput("Nick", sNick, CUser::MakeCleanUserName(sUser)); - vsLines.push_back("\tNick = " + sNick); - CUtils::GetInput("Alt Nick", sAnswer, sNick + "_"); - if (!sAnswer.empty()) { - vsLines.push_back("\tAltNick = " + sAnswer); - } - CUtils::GetInput("Ident", sAnswer, sUser); - vsLines.push_back("\tIdent = " + sAnswer); - CUtils::GetInput("Real Name", sAnswer, "Got ZNC?"); - vsLines.push_back("\tRealName = " + sAnswer); - CUtils::GetInput("Bind Host", sAnswer, "", "optional"); - if (!sAnswer.empty()) { - vsLines.push_back("\tBindHost = " + sAnswer); - } - - set ssUserMods; - GetModules().GetDefaultMods(ssUserMods, CModInfo::UserModule); - vector vsUserModNames; - for (set::const_iterator it = ssUserMods.begin(); it != ssUserMods.end(); ++it) { - vsUserModNames.push_back(it->GetName()); - vsLines.push_back("\tLoadModule = " + it->GetName()); - } - CUtils::PrintMessage("Enabled the default user modules [" + CString(", ").Join(vsUserModNames.begin(), vsUserModNames.end()) + "]"); - + vsLines.push_back(""); + CUtils::PrintMessage(""); + CUtils::PrintMessage("-- IRC Server --"); CUtils::PrintMessage(""); - if (CUtils::GetBoolInput("Would you like to set up a network?", true)) { - vsLines.push_back(""); - do { - CUtils::GetInput("Network", sNetwork, "", "e.g. `freenode' or `efnet'"); - } while (!CIRCNetwork::IsValidNetwork(sNetwork)); + CString sHost, sPass; + bool bSSL = false; + unsigned int uServerPort = 0; - vsLines.push_back("\t"); - - set ssNetworkMods; - GetModules().GetDefaultMods(ssNetworkMods, CModInfo::NetworkModule); - vector vsNetworkModNames; - for (set::const_iterator it = ssNetworkMods.begin(); it != ssNetworkMods.end(); ++it) { - vsNetworkModNames.push_back(it->GetName()); - vsLines.push_back("\t\tLoadModule = " + it->GetName()); - } - CUtils::PrintMessage("Enabled the default network modules [" + CString(", ").Join(vsNetworkModNames.begin(), vsNetworkModNames.end()) + "]"); - - vsLines.push_back(""); - CUtils::PrintMessage(""); - CUtils::PrintMessage("-- IRC Server --"); - CUtils::PrintMessage(""); - - CString sHost, sPass; - bool bSSL = false; - unsigned int uServerPort = 0; - - while (!CUtils::GetInput("IRC server", sHost, "", "host only") || !CServer::IsValidHostName(sHost)) ; - while (!CUtils::GetNumInput("[" + sHost + "] Port", uServerPort, 1, 65535, 6667)) ; - CUtils::GetInput("[" + sHost + "] Password (probably empty)", sPass); + while (!CUtils::GetInput("IRC server", sHost, "", "host only") || !CServer::IsValidHostName(sHost)) ; + while (!CUtils::GetNumInput("[" + sHost + "] Port", uServerPort, 1, 65535, 6667)) ; + CUtils::GetInput("[" + sHost + "] Password (probably empty)", sPass); #ifdef HAVE_LIBSSL - bSSL = CUtils::GetBoolInput("Does this server use SSL?", uServerPort == 6697); + bSSL = CUtils::GetBoolInput("Does this server use SSL?", uServerPort == 6697); #endif - vsLines.push_back("\t\tServer = " + sHost + ((bSSL) ? " +" : " ") + CString(uServerPort) + " " + sPass); + vsLines.push_back("\t\tServer = " + sHost + ((bSSL) ? " +" : " ") + CString(uServerPort) + " " + sPass); - vsLines.push_back(""); - CUtils::PrintMessage(""); - CUtils::PrintMessage("-- Channels --"); - CUtils::PrintMessage(""); + vsLines.push_back(""); + CUtils::PrintMessage(""); + CUtils::PrintMessage("-- Channels --"); + CUtils::PrintMessage(""); - CString sArg = "a"; - CString sPost = " for ZNC to automatically join?"; - bool bDefault = true; + CString sArg = "a"; + CString sPost = " for ZNC to automatically join?"; + bool bDefault = true; - while (CUtils::GetBoolInput("Would you like to add " + sArg + " channel" + sPost, bDefault)) { - while (!CUtils::GetInput("Channel name", sAnswer)) ; - vsLines.push_back("\t\t"); - vsLines.push_back("\t\t"); - sArg = "another"; - sPost = "?"; - bDefault = false; - } - - vsLines.push_back("\t"); + while (CUtils::GetBoolInput("Would you like to add " + sArg + " channel" + sPost, bDefault)) { + while (!CUtils::GetInput("Channel name", sAnswer)) ; + vsLines.push_back("\t\t"); + vsLines.push_back("\t\t"); + sArg = "another"; + sPost = "?"; + bDefault = false; } - vsLines.push_back(""); + vsLines.push_back("\t"); + } - CUtils::PrintMessage(""); - bFirstUser = false; - } while (CUtils::GetBoolInput("Would you like to set up another user?", false)); + vsLines.push_back(""); + + CUtils::PrintMessage(""); // !User CFile File;