summaryrefslogtreecommitdiff
path: root/modules/commands/cs_xop.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-08-19 16:14:26 -0400
committerAdam <Adam@anope.org>2011-08-19 16:14:26 -0400
commitfd999b996fe4c76ee10016dbcad316365d1b7988 (patch)
tree09fa7a75bebd80026c9fd9aa18bcf00c99a77c98 /modules/commands/cs_xop.cpp
parentb4f57247b8ed1de0ae2720d05601b64cd2d2e9b3 (diff)
Fixed some problems with deleting access
Diffstat (limited to 'modules/commands/cs_xop.cpp')
-rw-r--r--modules/commands/cs_xop.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/commands/cs_xop.cpp b/modules/commands/cs_xop.cpp
index e4409f59d..e886496c1 100644
--- a/modules/commands/cs_xop.cpp
+++ b/modules/commands/cs_xop.cpp
@@ -316,7 +316,7 @@ class XOPBase : public Command
ChanAccess *highest = access.Highest();
int u_level = (highest ? XOPChanAccess::DetermineLevel(highest) : 0);
- if ((!access.HasPriv(CA_FOUNDER) && !access.HasPriv(CA_ACCESS_CHANGE) && !u->HasPriv("chanserv/access/modify")) || (level <= u_level && !access.Founder))
+ if ((!access.Founder && !access.HasPriv(CA_ACCESS_CHANGE) && !u->HasPriv("chanserv/access/modify")) || (level <= u_level && !access.Founder))
{
source.Reply(ACCESS_DENIED);
return;
@@ -394,7 +394,7 @@ class XOPBase : public Command
AccessGroup access = ci->AccessFor(u);
ChanAccess *highest = access.Highest();
bool override = false;
- if (!mask.equals_ci(u->Account()->display) && !access.HasPriv(CA_ACCESS_CHANGE) && (!highest || level >= XOPChanAccess::DetermineLevel(highest)))
+ if ((!mask.equals_ci(u->Account()->display) && !access.HasPriv(CA_ACCESS_CHANGE) && !access.Founder) || ((!highest || level <= XOPChanAccess::DetermineLevel(highest)) && !access.Founder))
{
if (u->HasPriv("chanserv/access/modify"))
override = true;