diff options
Diffstat (limited to 'modules/commands/cs_access.cpp')
-rw-r--r-- | modules/commands/cs_access.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/commands/cs_access.cpp b/modules/commands/cs_access.cpp index d269b1499..ae1e03fbf 100644 --- a/modules/commands/cs_access.cpp +++ b/modules/commands/cs_access.cpp @@ -307,7 +307,7 @@ class CommandCSAccess : public Command AccessGroup u_access = ci->AccessFor(u); ChanAccess *highest = u_access.Highest(); int u_level = (highest ? AccessChanAccess::DetermineLevel(highest) : 0); - if (level >= u_level && !u_access.Founder) + if (level >= u_level && !u_access.Founder && !u->HasPriv("chanserv/access/modify")) { source.Reply(ACCESS_DENIED); return; @@ -318,7 +318,7 @@ class CommandCSAccess : public Command return; } - bool override = !ci->AccessFor(u).HasPriv(CA_ACCESS_CHANGE) || level >= u_level; + bool override = !ci->AccessFor(u).HasPriv(CA_ACCESS_CHANGE) || (level >= u_level && !u_access.Founder); if (mask.find_first_of("!*@") == Anope::string::npos && findnick(mask) == NULL) mask += "!*@*"; |