mirror of
https://github.com/anope/anope.git
synced 2026-07-03 22:03:14 +02:00
Fix bug #1045, patch from Adam, suspended channels can no longer be administered, and control over checking forbidden and suspended channels has been moved out of the modules and into the core.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2243 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
+3
-1
@@ -217,7 +217,9 @@ struct ModuleLang_ {
|
||||
|
||||
enum CommandFlags
|
||||
{
|
||||
CFLAG_ALLOW_UNREGISTERED = 1
|
||||
CFLAG_ALLOW_UNREGISTERED = 1,
|
||||
CFLAG_ALLOW_FORBIDDEN = 2,
|
||||
CFLAG_ALLOW_SUSPENDED = 4
|
||||
};
|
||||
|
||||
/** Every services command is a class, inheriting from Command.
|
||||
|
||||
+23
-3
@@ -53,7 +53,7 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char *
|
||||
{
|
||||
Command *c = findCommand(cmdTable, cmd);
|
||||
int retVal = 0;
|
||||
|
||||
ChannelInfo *ci;
|
||||
|
||||
if (!c)
|
||||
{
|
||||
@@ -125,6 +125,27 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char *
|
||||
if (MOD_RESULT == EVENT_STOP)
|
||||
return;
|
||||
|
||||
if (params.size() > 0 && ircdproto->IsChannelValid(params[0].c_str()))
|
||||
{
|
||||
if ((ci = cs_findchan(params[0].c_str())))
|
||||
{
|
||||
if ((ci->flags & CI_FORBIDDEN) && (!c->HasFlag(CFLAG_ALLOW_FORBIDDEN)))
|
||||
{
|
||||
notice_lang(service, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
alog("Access denied for user %s with service %s and command %s because of FORBIDDEN channel %s",
|
||||
u->nick, service, cmd, ci->name);
|
||||
return;
|
||||
}
|
||||
else if ((ci->flags & CI_SUSPENDED) && (!c->HasFlag(CFLAG_ALLOW_SUSPENDED)))
|
||||
{
|
||||
notice_lang(service, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
alog("Access denied for user %s with service %s and command %s because of SUSPENDED channel %s",
|
||||
u->nick, service, cmd, ci->name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
retVal = c->Execute(u, params);
|
||||
|
||||
FOREACH_MOD(I_OnPostCommand, OnPostCommand(u, c->service, c->name, params));
|
||||
@@ -140,8 +161,7 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char *
|
||||
* @param cmd Command
|
||||
* @return void
|
||||
*/
|
||||
void mod_help_cmd(char *service, User * u, CommandHash * cmdTable[],
|
||||
const char *cmd)
|
||||
void mod_help_cmd(char *service, User * u, CommandHash * cmdTable[], const char *cmd)
|
||||
{
|
||||
spacesepstream tokens(cmd);
|
||||
std::string token;
|
||||
|
||||
@@ -35,12 +35,6 @@ class CommandBSAct : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (!check_access(u, ci, CA_SAY))
|
||||
{
|
||||
notice_lang(s_BotServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -49,12 +49,6 @@ class CommandBSAssign : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if ((ci->botflags & BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !u->nc->HasPriv("botserv/administration")))
|
||||
{
|
||||
notice_lang(s_BotServ, u, PERMISSION_DENIED);
|
||||
|
||||
@@ -255,12 +255,6 @@ class CommandBSBadwords : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (!check_access(u, ci, CA_BADWORDS) && (!need_args || !u->nc->HasPriv("botserv/administration")))
|
||||
{
|
||||
notice_lang(s_BotServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -90,10 +90,6 @@ class CommandBSInfo : public Command
|
||||
notice_lang(s_BotServ, u, PERMISSION_DENIED);
|
||||
return MOD_CONT;
|
||||
}
|
||||
if (ci->flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, query);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
notice_lang(s_BotServ, u, BOT_INFO_CHAN_HEADER, ci->name);
|
||||
if (ci->bi)
|
||||
|
||||
@@ -42,8 +42,6 @@ class CommandBSKick : public Command
|
||||
syntax_error(s_BotServ, u, "KICK", BOT_KICK_SYNTAX);
|
||||
else if (!(ci = cs_findchan(chan)))
|
||||
notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
else if (!check_access(u, ci, CA_SET) && !u->nc->HasPriv("botserv/administration"))
|
||||
notice_lang(s_BotServ, u, ACCESS_DENIED);
|
||||
else if (!ci->bi)
|
||||
|
||||
@@ -37,12 +37,6 @@ class CommandBSSay : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (!check_access(u, ci, CA_SAY))
|
||||
{
|
||||
notice_lang(s_BotServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -64,8 +64,6 @@ class CommandBSSet : public Command
|
||||
return MOD_CONT;
|
||||
} else if (!(ci = cs_findchan(chan)))
|
||||
notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
else if (!u->nc->HasPriv("botserv/administration") && !check_access(u, ci, CA_SET))
|
||||
notice_lang(s_BotServ, u, ACCESS_DENIED);
|
||||
else {
|
||||
|
||||
@@ -34,8 +34,6 @@ class CommandBSUnassign : public Command
|
||||
notice_lang(s_BotServ, u, BOT_ASSIGN_READONLY);
|
||||
else if (!(ci = cs_findchan(chan)))
|
||||
notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
else if (!u->nc->HasPriv("botserv/administration") && !check_access(u, ci, CA_ASSIGN))
|
||||
notice_lang(s_BotServ, u, ACCESS_DENIED);
|
||||
else if (!ci->bi)
|
||||
|
||||
@@ -124,8 +124,6 @@ class CommandCSAccess : public Command
|
||||
this->OnSyntaxError(u);
|
||||
else if (!(ci = cs_findchan(chan)))
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
/* We still allow LIST in xOP mode, but not others */
|
||||
else if ((ci->flags & CI_XOP) && !is_list)
|
||||
{
|
||||
@@ -397,8 +395,6 @@ class CommandCSLevels : public Command
|
||||
this->OnSyntaxError(u);
|
||||
} else if (!(ci = cs_findchan(chan))) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
} else if (ci->flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (ci->flags & CI_XOP) {
|
||||
notice_lang(s_ChanServ, u, CHAN_LEVELS_XOP);
|
||||
} else if (!is_founder(u, ci) && !u->nc->HasPriv("chanserv/access/change")) {
|
||||
|
||||
@@ -218,8 +218,6 @@ class CommandCSAKick : public Command
|
||||
syntax_error(s_ChanServ, u, "AKICK", CHAN_AKICK_SYNTAX);
|
||||
} else if (!(ci = cs_findchan(chan))) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
} else if (ci-> flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (!check_access(u, ci, CA_AKICK) && !u->nc->HasPriv("chanserv/access/change"))
|
||||
{
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -64,8 +64,6 @@ class CommandCSBan : public Command
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
|
||||
} else if (!(ci = c->ci)) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
} else if (ci->flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (is_same ? !(u2 = u) : !(u2 = finduser(target))) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, target);
|
||||
} else if (!is_same ? !check_access(u, ci, CA_BAN) :
|
||||
@@ -155,12 +153,6 @@ class CommandCSUnban : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (!check_access(u, ci, CA_UNBAN))
|
||||
{
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
|
||||
@@ -45,8 +45,6 @@ class CommandCSClear : public Command
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
|
||||
} else if (!(ci = c->ci)) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
} else if (ci->flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (!u || !check_access(u, ci, CA_CLEAR)) {
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else if (stricmp(what, "bans") == 0) {
|
||||
|
||||
@@ -32,6 +32,8 @@ class CommandCSDrop : public Command
|
||||
public:
|
||||
CommandCSDrop() : Command("DROP", 1, 1)
|
||||
{
|
||||
this->SetFlag(CFLAG_ALLOW_FORBIDDEN);
|
||||
this->SetFlag(CFLAG_ALLOW_SUSPENDED);
|
||||
}
|
||||
|
||||
CommandReturn Execute(User *u, std::vector<std::string> ¶ms)
|
||||
|
||||
@@ -50,12 +50,6 @@ class CommandCSGetKey : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (!check_access(u, ci, CA_GETKEY))
|
||||
{
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -29,6 +29,7 @@ class CommandCSGetPass : public Command
|
||||
public:
|
||||
CommandCSGetPass() : Command("GETPASS", 1, 1)
|
||||
{
|
||||
this->SetFlag(CFLAG_ALLOW_SUSPENDED);
|
||||
}
|
||||
|
||||
CommandReturn Execute(User *u, std::vector<std::string> ¶ms)
|
||||
@@ -48,11 +49,6 @@ class CommandCSGetPass : public Command
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
if (!enc_decrypt(ci->founderpass, tmp_pass, PASSMAX - 1))
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_GETPASS_UNAVAILABLE);
|
||||
|
||||
@@ -48,12 +48,6 @@ class CommandCSIdentify : public Command
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
if (!nick_identified(u))
|
||||
{
|
||||
notice_lang(s_ChanServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ);
|
||||
|
||||
@@ -44,6 +44,8 @@ class CommandCSInfo : public Command
|
||||
CommandCSInfo() : Command("INFO", 1, 2)
|
||||
{
|
||||
this->SetFlag(CFLAG_ALLOW_UNREGISTERED);
|
||||
this->SetFlag(CFLAG_ALLOW_SUSPENDED);
|
||||
this->SetFlag(CFLAG_ALLOW_FORBIDDEN);
|
||||
}
|
||||
|
||||
CommandReturn Execute(User *u, std::vector<std::string> ¶ms)
|
||||
|
||||
@@ -48,16 +48,6 @@ class CommandCSInvite : public Command
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_SUSPENDED)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (!u || !check_access(u, ci, CA_INVITE))
|
||||
{
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
|
||||
@@ -60,8 +60,6 @@ class CommandCSKick : public Command
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
|
||||
} else if (!(ci = c->ci)) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
} else if (ci->flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (is_same ? !(u2 = u) : !(u2 = finduser(target))) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, target);
|
||||
} else if (!is_on_chan(c, u2)) {
|
||||
|
||||
@@ -72,8 +72,6 @@ class CommandCSLogout : public Command
|
||||
this->OnSyntaxError(u);
|
||||
else if (!(ci = cs_findchan(chan)))
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if ((ci->flags & CI_FORBIDDEN))
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
else if (nick && !(u2 = finduser(nick)))
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, nick);
|
||||
else if (u2 != u && !is_real_founder(u, ci) && !is_admin)
|
||||
|
||||
@@ -64,8 +64,6 @@ static CommandReturn do_util(User *u, CSModeUtil *util, const char *chan, const
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
|
||||
} else if (!(ci = c->ci)) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
|
||||
} else if (ci->flags & CI_FORBIDDEN) {
|
||||
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)) {
|
||||
|
||||
@@ -57,15 +57,7 @@ class CommandCSRegister : public Command
|
||||
else if (!(c = findchan(chan)))
|
||||
notice_lang(s_ChanServ, u, CHAN_REGISTER_NONE_CHANNEL, chan);
|
||||
else if ((ci = cs_findchan(chan)))
|
||||
{
|
||||
if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
alog("%s: Attempt to register FORBIDden channel %s by %s!%s@%s", s_ChanServ, ci->name, u->nick, u->GetIdent().c_str(), u->host);
|
||||
notice_lang(s_ChanServ, u, CHAN_MAY_NOT_BE_REGISTERED, chan);
|
||||
}
|
||||
else
|
||||
notice_lang(s_ChanServ, u, CHAN_ALREADY_REGISTERED, chan);
|
||||
}
|
||||
notice_lang(s_ChanServ, u, CHAN_ALREADY_REGISTERED, chan);
|
||||
else if (!stricmp(chan, "#"))
|
||||
notice_lang(s_ChanServ, u, CHAN_MAY_NOT_BE_REGISTERED, chan);
|
||||
else if (!chan_has_user_status(c, u, CUS_OP))
|
||||
|
||||
@@ -34,8 +34,6 @@ class CommandCSSendPass : public Command
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
else if (!(ci = cs_findchan(chan)) || !(founder = ci->founder))
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
else
|
||||
{
|
||||
char buf[BUFSIZE];
|
||||
|
||||
@@ -574,8 +574,6 @@ class CommandCSSet : public Command
|
||||
syntax_error(s_ChanServ, u, "SET", CHAN_SET_SYNTAX);
|
||||
} else if (!(ci = cs_findchan(chan))) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
} else if (ci->flags & CI_FORBIDDEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (!is_servadmin && !check_access(u, ci, CA_SET)) {
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
} else if (stricmp(cmd, "FOUNDER") == 0) {
|
||||
|
||||
@@ -44,8 +44,6 @@ class CommandCSStatus : public Command
|
||||
}
|
||||
if (!ci)
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_NOT_REGGED, temp);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_FORBIDDEN, chan);
|
||||
else if ((u2 = finduser(nick)))
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_INFO, chan, nick, get_access(u2, ci));
|
||||
else /* !u2 */
|
||||
|
||||
@@ -127,6 +127,7 @@ class CommandCSUnSuspend : public Command
|
||||
public:
|
||||
CommandCSUnSuspend() : Command("UNSUSPEND", 1, 1)
|
||||
{
|
||||
this->SetFlag(CFLAG_ALLOW_SUSPENDED);
|
||||
}
|
||||
|
||||
CommandReturn Execute(User *u, std::vector<std::string> ¶ms)
|
||||
|
||||
@@ -36,8 +36,6 @@ class CommandCSTopic : public Command
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan);
|
||||
else if (!(ci = c->ci))
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
else if (!check_access(u, ci, CA_TOPIC) && !u->nc->HasCommand("chanserv/topic"))
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
else
|
||||
|
||||
@@ -366,8 +366,6 @@ class XOPBase : public Command
|
||||
|
||||
if (!(ci = cs_findchan(chan)))
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
else if (!(ci->flags & CI_XOP))
|
||||
notice_lang(s_ChanServ, u, CHAN_XOP_ACCESS, s_ChanServ);
|
||||
else if (!stricmp(cmd, "ADD"))
|
||||
|
||||
@@ -48,11 +48,6 @@ class CommandMSDel : public Command
|
||||
notice_lang(s_MemoServ, u, READ_ONLY_MODE);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_MemoServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (!check_access(u, ci, CA_MEMO))
|
||||
{
|
||||
notice_lang(s_MemoServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -56,11 +56,6 @@ class CommandMSInfo : public Command
|
||||
notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, name);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_MemoServ, u, CHAN_X_FORBIDDEN, name);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (!check_access(u, ci, CA_MEMO))
|
||||
{
|
||||
notice_lang(s_MemoServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -43,11 +43,6 @@ class CommandMSList : public Command
|
||||
notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_MemoServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (!check_access(u, ci, CA_MEMO))
|
||||
{
|
||||
notice_lang(s_MemoServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -43,11 +43,6 @@ class CommandMSRead : public Command
|
||||
notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_MemoServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (!check_access(u, ci, CA_MEMO))
|
||||
{
|
||||
notice_lang(s_MemoServ, u, ACCESS_DENIED);
|
||||
|
||||
@@ -88,11 +88,6 @@ class CommandMSSet : public Command
|
||||
notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (ci->flags & CI_FORBIDDEN)
|
||||
{
|
||||
notice_lang(s_MemoServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
else if (!is_servadmin && !check_access(u, ci, CA_MEMO))
|
||||
{
|
||||
notice_lang(s_MemoServ, u, ACCESS_DENIED);
|
||||
|
||||
Reference in New Issue
Block a user