diff options
-rw-r--r-- | src/core/cs_kick.c | 4 | ||||
-rw-r--r-- | src/core/cs_modes.c | 12 | ||||
-rw-r--r-- | version.log | 3 |
3 files changed, 10 insertions, 9 deletions
diff --git a/src/core/cs_kick.c b/src/core/cs_kick.c index 3795d7ebd..bf8fe72d0 100644 --- a/src/core/cs_kick.c +++ b/src/core/cs_kick.c @@ -123,8 +123,6 @@ int do_cs_kick(User * u) notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan); } else if (is_same ? !(u2 = u) : !(u2 = finduser(params))) { notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, params); - } else if (!is_on_chan(c, u2)) { - notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name); } else if (!is_same ? !check_access(u, ci, CA_KICK) : !check_access(u, ci, CA_KICKME)) { notice_lang(s_ChanServ, u, ACCESS_DENIED); @@ -133,6 +131,8 @@ int do_cs_kick(User * u) notice_lang(s_ChanServ, u, PERMISSION_DENIED); } else if (is_protected(u2)) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); + } else if (!is_on_chan(c, u2)) { + notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name); } else { char *av[3]; diff --git a/src/core/cs_modes.c b/src/core/cs_modes.c index 3a82a1aa6..bdb162d3e 100644 --- a/src/core/cs_modes.c +++ b/src/core/cs_modes.c @@ -243,10 +243,10 @@ int do_owner(User * u) notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name); } else if (ci->flags & CI_VERBOTEN) { notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name); - } else if (!is_on_chan(c, u)) { - notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name); } else if (!is_founder(u, ci)) { notice_lang(s_ChanServ, u, ACCESS_DENIED); + } else if (!is_on_chan(c, u)) { + notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name); } else { anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset, GET_USER(u)); @@ -299,10 +299,10 @@ int do_deowner(User * u) notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name); } else if (ci->flags & CI_VERBOTEN) { notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name); - } else if (!is_on_chan(c, u)) { - notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name); } else if (!is_founder(u, ci)) { notice_lang(s_ChanServ, u, ACCESS_DENIED); + } else if (!is_on_chan(c, u)) { + notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name); } else { anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset, GET_USER(u)); @@ -366,8 +366,6 @@ int do_util(User * u, CSModeUtil * util) notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name); } else if (is_same ? !(u2 = u) : !(u2 = finduser(nick))) { notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, nick); - } else if (!is_on_chan(c, u2)) { - notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name); } else if (is_same ? !check_access(u, ci, util->levelself) : !check_access(u, ci, util->level)) { notice_lang(s_ChanServ, u, ACCESS_DENIED); @@ -376,6 +374,8 @@ int do_util(User * u, CSModeUtil * util) notice_lang(s_ChanServ, u, PERMISSION_DENIED); } else if (*util->mode == '-' && is_protected(u2) && !is_same) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); + } else if (!is_on_chan(c, u2)) { + notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name); } else { anope_cmd_mode(whosends(ci), c->name, "%s %s", util->mode, GET_USER(u2)); diff --git a/version.log b/version.log index fe40593c1..4341ef7e6 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,11 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="3" VERSION_EXTRA="-svn" -VERSION_BUILD="2816" +VERSION_BUILD="2818" # $Log$ # Changes since 1.8.3 Release +#Revision 2818 - Fixed bug #1141, reordered some access checks in cs_kick and cs_modes to hide who is on the channel #Revision 2816 - Fixed os_info to display syntax errors if you entered no text #Revision 2815 - Fixed os_info to backup its databases properly with the now-working ModuleDatabaseBackup function #Revision 2811 - Fixed bug #1140 - Made ModuleDatabaseBackup() not fail when multiple modules want to back up their databases |