From baf14adf0ce03b484aadcdd5b9c0ea9da9fce2b1 Mon Sep 17 00:00:00 2001 From: orchid-hybrid Date: Sun, 8 Jun 2014 10:18:39 +0100 Subject: [PATCH] Update autoop.cpp Set it so that when you remove all hostmasks of a user, the user is also deleted --- modules/autoop.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/autoop.cpp b/modules/autoop.cpp index bd5ecafc..bca2a3d6 100644 --- a/modules/autoop.cpp +++ b/modules/autoop.cpp @@ -89,13 +89,15 @@ public: return CString(" ").Join(m_ssChans.begin(), m_ssChans.end()); } - void DelHostmasks(const CString& sHostmasks) { + bool DelHostmasks(const CString& sHostmasks) { VCString vsHostmasks; sHostmasks.Split(",", vsHostmasks); for (unsigned int a = 0; a < vsHostmasks.size(); a++) { m_ssHostmasks.erase(vsHostmasks[a]); } + + return m_ssHostmasks.empty(); } void AddHostmasks(const CString& sHostmasks) { @@ -330,11 +332,15 @@ public: pUser->AddHostmasks(sHostmasks); PutModule("Hostmasks(s) added to user [" + pUser->GetUsername() + "]"); } else { - pUser->DelHostmasks(sHostmasks); + if (pUser->DelHostmasks(sHostmasks)) { + PutModule("Removed user [" + pUser->GetUsername() + "]"); + DelUser(sUser); + DelNV(sUser); + } else { PutModule("Hostmasks(s) Removed from user [" + pUser->GetUsername() + "]"); + SetNV(pUser->GetUsername(), pUser->ToString()); + } } - - SetNV(pUser->GetUsername(), pUser->ToString()); } else { PutModule("Unknown command, try HELP"); }