diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-11-11 07:20:44 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-11-11 07:20:44 +0000 |
commit | 0264072b537e3059f56ac98f9719efd80836adb6 (patch) | |
tree | 36d8df4ca14e206c79f36ff27f29443dc9805c0e /src | |
parent | 0bd3141407c7701beed90b8e560a07126db64f25 (diff) |
Made disabling chanserv levels *really* disable them so noone can use them (even founder), and have the ability to set it to 10000 for founders.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2641 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.c | 2 | ||||
-rw-r--r-- | src/chanserv.c | 24 | ||||
-rw-r--r-- | src/core/cs_access.c | 2 |
3 files changed, 14 insertions, 14 deletions
diff --git a/src/channels.c b/src/channels.c index b8f0e081d..57c9917e1 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1771,7 +1771,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) */ if (give_modes && (get_ignore(user->nick) == NULL) && (!user->nc || !user->nc->HasFlag(NI_AUTOOP))) { - if (owner && (IsFounder(user, ci) || check_access(user, ci, CA_AUTOOWNER))) + if (owner && check_access(user, ci, CA_AUTOOWNER)) add_modes |= CUS_OWNER; else if (admin && check_access(user, ci, CA_AUTOPROTECT)) add_modes |= CUS_PROTECT; diff --git a/src/chanserv.c b/src/chanserv.c index 491c60e48..e961921b1 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -29,14 +29,14 @@ static int def_levels[][2] = { { CA_NOJOIN, -2 }, { CA_INVITE, 5 }, { CA_AKICK, 10 }, - { CA_SET, ACCESS_INVALID }, - { CA_CLEAR, ACCESS_INVALID }, + { CA_SET, ACCESS_FOUNDER }, + { CA_CLEAR, ACCESS_FOUNDER }, { CA_UNBAN, 5 }, { CA_OPDEOP, 5 }, { CA_ACCESS_LIST, 1 }, { CA_ACCESS_CHANGE, 10 }, { CA_MEMO, 10 }, - { CA_ASSIGN, ACCESS_INVALID }, + { CA_ASSIGN, ACCESS_FOUNDER }, { CA_BADWORDS, 10 }, { CA_NOKICK, 1 }, { CA_FANTASIA, 3 }, @@ -51,17 +51,17 @@ static int def_levels[][2] = { { CA_HALFOPME, 4 }, { CA_HALFOP, 5 }, { CA_PROTECTME, 10 }, - { CA_PROTECT, ACCESS_INVALID }, + { CA_PROTECT, ACCESS_FOUNDER }, { CA_KICKME, 5 }, { CA_KICK, 5 }, - { CA_SIGNKICK, ACCESS_INVALID }, + { CA_SIGNKICK, ACCESS_FOUNDER }, { CA_BANME, 5 }, { CA_BAN, 5 }, - { CA_TOPIC, ACCESS_INVALID }, - { CA_INFO, ACCESS_INVALID }, - { CA_AUTOOWNER, ACCESS_INVALID }, - { CA_OWNER, ACCESS_INVALID }, - { CA_OWNERME, ACCESS_INVALID }, + { CA_TOPIC, ACCESS_FOUNDER }, + { CA_INFO, ACCESS_FOUNDER }, + { CA_AUTOOWNER, ACCESS_FOUNDER }, + { CA_OWNER, ACCESS_FOUNDER }, + { CA_OWNERME, ACCESS_FOUNDER }, { -1 } }; @@ -1562,6 +1562,8 @@ int check_access(User * user, ChannelInfo * ci, int what) if (level > 0) ci->last_used = time(NULL); + if (limit == ACCESS_INVALID) + return 0; if (what == ACCESS_FOUNDER) return IsFounder(user, ci); if (level >= ACCESS_FOUNDER) @@ -1569,8 +1571,6 @@ int check_access(User * user, ChannelInfo * ci, int what) /* Hacks to make flags work */ if (what == CA_AUTODEOP && (ci->HasFlag(CI_SECUREOPS)) && level == 0) return 1; - if (limit == ACCESS_INVALID) - return 0; if (what == CA_AUTODEOP || what == CA_NOJOIN) return level <= ci->levels[what]; else diff --git a/src/core/cs_access.c b/src/core/cs_access.c index 83ea0f0f7..b8792bfca 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -202,7 +202,7 @@ class CommandCSAccess : public Command notice_lang(s_ChanServ, u, CHAN_ACCESS_NICKS_ONLY); return MOD_CONT; } - if (na->HasFlag(NS_FORBIDDEN)); + else if (na->HasFlag(NS_FORBIDDEN)) { notice_lang(s_ChanServ, u, NICK_X_FORBIDDEN, nick); return MOD_CONT; |