mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-25 04:02:46 +01:00
ircdb: Honor ignoreDefaultAllow for unknown users too.
This commit is contained in:
parent
a3c79d61f8
commit
59ae6f987d
13
src/ircdb.py
13
src/ircdb.py
@ -1035,7 +1035,8 @@ def _x(capability, ret):
|
|||||||
else:
|
else:
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def _checkCapabilityForUnknownUser(capability, users=users, channels=channels):
|
def _checkCapabilityForUnknownUser(capability, users=users, channels=channels,
|
||||||
|
ignoreDefaultAllow=False):
|
||||||
if isChannelCapability(capability):
|
if isChannelCapability(capability):
|
||||||
(channel, capability) = fromChannelCapability(capability)
|
(channel, capability) = fromChannelCapability(capability)
|
||||||
try:
|
try:
|
||||||
@ -1043,12 +1044,14 @@ def _checkCapabilityForUnknownUser(capability, users=users, channels=channels):
|
|||||||
if capability in c.capabilities:
|
if capability in c.capabilities:
|
||||||
return c._checkCapability(capability)
|
return c._checkCapability(capability)
|
||||||
else:
|
else:
|
||||||
return _x(capability, c.defaultAllow)
|
return _x(capability, (not ignoreDefaultAllow) and c.defaultAllow)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
defaultCapabilities = conf.supybot.capabilities()
|
defaultCapabilities = conf.supybot.capabilities()
|
||||||
if capability in defaultCapabilities:
|
if capability in defaultCapabilities:
|
||||||
return defaultCapabilities.check(capability)
|
return defaultCapabilities.check(capability)
|
||||||
|
elif ignoreDefaultAllow:
|
||||||
|
return _x(capability, False)
|
||||||
else:
|
else:
|
||||||
return _x(capability, conf.supybot.capabilities.default())
|
return _x(capability, conf.supybot.capabilities.default())
|
||||||
|
|
||||||
@ -1082,12 +1085,12 @@ def checkCapability(hostmask, capability, users=users, channels=channels,
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
# Raised when no hostmasks match.
|
# Raised when no hostmasks match.
|
||||||
return _checkCapabilityForUnknownUser(capability, users=users,
|
return _checkCapabilityForUnknownUser(capability, users=users,
|
||||||
channels=channels)
|
channels=channels, ignoreDefaultAllow=ignoreDefaultAllow)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
# Raised when multiple hostmasks match.
|
# Raised when multiple hostmasks match.
|
||||||
log.warning('%s: %s', hostmask, e)
|
log.warning('%s: %s', hostmask, e)
|
||||||
return _checkCapabilityForUnknownUser(capability, users=users,
|
return _checkCapabilityForUnknownUser(capability, users=users,
|
||||||
channels=channels)
|
channels=channels, ignoreDefaultAllow=ignoreDefaultAllow)
|
||||||
if capability in u.capabilities:
|
if capability in u.capabilities:
|
||||||
try:
|
try:
|
||||||
return u._checkCapability(capability, ignoreOwner)
|
return u._checkCapability(capability, ignoreOwner)
|
||||||
@ -1112,6 +1115,8 @@ def checkCapability(hostmask, capability, users=users, channels=channels,
|
|||||||
defaultCapabilities = conf.supybot.capabilities()
|
defaultCapabilities = conf.supybot.capabilities()
|
||||||
if capability in defaultCapabilities:
|
if capability in defaultCapabilities:
|
||||||
return defaultCapabilities.check(capability)
|
return defaultCapabilities.check(capability)
|
||||||
|
elif ignoreDefaultAllow:
|
||||||
|
return _x(capability, False)
|
||||||
else:
|
else:
|
||||||
return _x(capability, conf.supybot.capabilities.default())
|
return _x(capability, conf.supybot.capabilities.default())
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user