Allow disabling the use of adding networks for non admins

Closes #122
This commit is contained in:
Kyle Fuller
2012-02-15 16:05:57 +00:00
parent b9ff3ddcb1
commit 8863d853c9
5 changed files with 36 additions and 0 deletions
+3
View File
@@ -149,6 +149,9 @@ AC_ARG_ENABLE( [poll],
AS_HELP_STRING([--disable-poll], [use select() instead of poll()]),
[POLL="$enableval"],
[POLL="yes"])
AC_ARG_ENABLE([add-networks],
AS_HELP_STRING([--enable-add-networks], [allow non-admins to add networks]),
[ if test x"$enableval" = "xyes" ; then appendCXX "-DENABLE_ADD_NETWORK" ; fi ])
if test "$DEBUG" != "no"; then
appendCXX -ggdb3
+7
View File
@@ -571,6 +571,13 @@ class CAdminMod : public CModule {
}
void AddNetwork(const CString& sLine) {
#ifndef ENABLE_ADD_NETWORK
if (!m_pUser->IsAdmin()) {
PutModule("Permission denied");
return;
}
#endif
CString sUser = sLine.Token(1);
CString sNetwork = sLine.Token(2);
CUser *pUser = m_pUser;
+7
View File
@@ -700,6 +700,13 @@ public:
}
}
} else {
#ifndef ENABLE_ADD_NETWORK
if (!spSession->IsAdmin()) {
WebSock.PrintErrorPage("Permission denied");
return true;
}
#endif
Tmpl["Action"] = "addnetwork";
Tmpl["Title"] = "Add Network for User [" + pUser->GetUserName() + "]";
Tmpl["IRCConnectEnabled"] = "true";
+12
View File
@@ -641,7 +641,19 @@ void CClient::AcceptLogin(CUser& User) {
PutStatusNotice("If you want to choose another network, use /znc JumpNetwork <network>, or connect to ZNC with username " + m_pUser->GetUserName() + "/<network> (instead of just " + m_pUser->GetUserName() + ")");
}
} else {
#ifndef ENABLE_ADD_NETWORK
if (!m_pUser->IsAdmin()) {
/* Since this user cannot add his own network,
* lets make them a default network */
m_pNetwork = m_pUser->AddNetwork("default");
} else {
#endif
PutStatusNotice("You have no networks configured. Use /znc AddNetwork <network> to add one.");
#ifndef ENABLE_ADD_NETWORK
}
#endif
}
SetNetwork(m_pNetwork, false);
+7
View File
@@ -429,6 +429,13 @@ void CClient::UserCommand(CString& sLine) {
PutStatus("Total: " + CString(vChans.size()) + " - Joined: " + CString(uNumJoined) +
" - Detached: " + CString(uNumDetached) + " - Disabled: " + CString(uNumDisabled));
} else if (sCommand.Equals("ADDNETWORK")) {
#ifndef ENABLE_ADD_NETWORK
if (!m_pUser->IsAdmin()) {
PutStatus("Permission denied");
return;
}
#endif
CString sNetwork = sLine.Token(1);
if (sNetwork.empty()) {