From afcdca067056e4740fb5f36e2dcf1f54616ea506 Mon Sep 17 00:00:00 2001 From: brain Date: Sat, 24 Jun 2006 18:00:28 +0000 Subject: Dont allow /REMOVE of a uline, dont allow /REMOVE of a user who isnt on the channel (*slaps* Om) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4057 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_remove.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp index 7662ef5d4..aa8246464 100644 --- a/src/modules/m_remove.cpp +++ b/src/modules/m_remove.cpp @@ -76,6 +76,12 @@ class cmd_remove : public command_t return; } + if (!channel->HasUser(target)) + { + Srv->SendTo(NULL,user,"NOTICE "+std::string(user->nick)+" :*** The user "+target->nick+" is not on channel "+channel->name); + return; + } + /* And see if the person calling the command has access to use it on the channel */ uprivs = Srv->ChanMode(user, channel); @@ -115,7 +121,7 @@ class cmd_remove : public command_t if (ulevel > 1) { /* For now, we'll let everyone remove their level and below, eg ops can remove ops, halfops, voices, and those with no mode (no moders actually are set to 1) */ - if(ulevel >= tlevel && tlevel != 5) + if ((ulevel >= tlevel && tlevel != 5) && (!Srv->IsUlined(target->server))) { Srv->PartUserFromChannel(target, channel->name, reason); WriteServ(user->fd, "NOTICE %s :%s removed %s from the channel", channel->name, user->nick, target->nick); -- cgit v1.2.3