admin: Allow omitting of the user name with some commands

This changes admin to assume that an "empty username" was specified if some
arguments is empty which shouldn't be empty. This empty username is then
interpreted as meaning the current user.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter
2011-02-18 14:47:52 +01:00
parent 3f0e200073
commit 4faad67f81
+34 -12
View File
@@ -614,8 +614,12 @@ class CAdminMod : public CModule {
void AddServer(const CString& sLine) { void AddServer(const CString& sLine) {
CString sUsername = sLine.Token(1); CString sUsername = sLine.Token(1);
const CString sServer = sLine.Token(2, true); CString sServer = sLine.Token(2, true);
if (sServer.empty()) {
sServer = sUsername;
sUsername = m_pUser->GetUserName();
}
if (sServer.empty()) { if (sServer.empty()) {
PutModule("Usage: addserver <username> <server>"); PutModule("Usage: addserver <username> <server>");
return; return;
@@ -632,9 +636,12 @@ class CAdminMod : public CModule {
} }
void ReconnectUser(const CString& sLine) { void ReconnectUser(const CString& sLine) {
const CString sUsername = sLine.Token(1); CString sUserName = sLine.Token(1, true);
CUser* pUser = GetUser(sUsername); if (sUserName.empty()) {
sUserName = m_pUser->GetUserName();
}
CUser* pUser = GetUser(sUserName);
if (!pUser) { if (!pUser) {
PutModule("User not found."); PutModule("User not found.");
return; return;
@@ -658,9 +665,12 @@ class CAdminMod : public CModule {
} }
void DisconnectUser(const CString& sLine) { void DisconnectUser(const CString& sLine) {
const CString sUsername = sLine.Token(1); CString sUserName = sLine.Token(1, true);
CUser* pUser = GetUser(sUsername); if (sUserName.empty()) {
sUserName = m_pUser->GetUserName();
}
CUser* pUser = GetUser(sUserName);
if (!pUser) { if (!pUser) {
PutModule("User not found."); PutModule("User not found.");
return; return;
@@ -678,9 +688,12 @@ class CAdminMod : public CModule {
} }
void ListCTCP(const CString& sLine) { void ListCTCP(const CString& sLine) {
CString sUsername = sLine.Token(1); CString sUserName = sLine.Token(1, true);
CUser* pUser = GetUser(sUsername); if (sUserName.empty()) {
sUserName = m_pUser->GetUserName();
}
CUser* pUser = GetUser(sUserName);
if (!pUser) if (!pUser)
return; return;
@@ -703,10 +716,15 @@ class CAdminMod : public CModule {
} }
void AddCTCP(const CString& sLine) { void AddCTCP(const CString& sLine) {
CString sUsername = sLine.Token(1); CString sUserName = sLine.Token(1);
CString sCTCPRequest = sLine.Token(2); CString sCTCPRequest = sLine.Token(2);
CString sCTCPReply = sLine.Token(3, true); CString sCTCPReply = sLine.Token(3, true);
if (sCTCPRequest.empty()) {
sCTCPRequest = sUserName;
sCTCPReply = sLine.Token(2, true);
sUserName = m_pUser->GetUserName();
}
if (sCTCPRequest.empty()) { if (sCTCPRequest.empty()) {
PutModule("Usage: AddCTCP [user] [request] [reply]"); PutModule("Usage: AddCTCP [user] [request] [reply]");
PutModule("This will cause ZNC to reply to the CTCP instead of forwarding it to clients."); PutModule("This will cause ZNC to reply to the CTCP instead of forwarding it to clients.");
@@ -714,7 +732,7 @@ class CAdminMod : public CModule {
return; return;
} }
CUser* pUser = GetUser(sUsername); CUser* pUser = GetUser(sUserName);
if (!pUser) if (!pUser)
return; return;
@@ -725,10 +743,14 @@ class CAdminMod : public CModule {
} }
void DelCTCP(const CString& sLine) { void DelCTCP(const CString& sLine) {
CString sUsername = sLine.Token(1); CString sUserName = sLine.Token(1);
CString sCTCPRequest = sLine.Token(2); CString sCTCPRequest = sLine.Token(2, true);
CUser* pUser = GetUser(sUsername); if (sCTCPRequest.empty()) {
sCTCPRequest = sUserName;
sUserName = m_pUser->GetUserName();
}
CUser* pUser = GetUser(sUserName);
if (!pUser) if (!pUser)
return; return;