mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 11:09:23 +01:00
topic now checks for +t mode before denying topic changes, and also allows halfops in addition to ops.
default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop thanks jemfinch for the suggestions.
This commit is contained in:
parent
8e84da8391
commit
c4e5dbbe0b
@ -64,7 +64,7 @@ conf.registerChannelValue(Topic.undo, 'max',
|
||||
registry.NonNegativeInteger(10, """Determines the number of previous
|
||||
topics to keep around in case the undo command is called."""))
|
||||
conf.registerChannelValue(Topic, 'requireManageCapability',
|
||||
registry.String('admin; channel,op',
|
||||
registry.String('channel,op; channel,halfop',
|
||||
"""Determines the
|
||||
capabilities required (if any) to make any topic changes,
|
||||
(everything except for read-only operations). Use 'channel,capab' for
|
||||
|
@ -173,7 +173,7 @@ class Topic(callbacks.Plugin):
|
||||
manually anyway.
|
||||
"""
|
||||
c = irc.state.channels[channel]
|
||||
if msg.nick in c.ops:
|
||||
if msg.nick in c.ops or msg.nick in c.halfops or 't' not in c.modes:
|
||||
return True
|
||||
capabilities = self.registryValue('requireManageCapability')
|
||||
if capabilities:
|
||||
|
@ -73,6 +73,10 @@ class TopicTestCase(ChannelPluginTestCase):
|
||||
|
||||
def testManageCapabilities(self):
|
||||
try:
|
||||
self.irc.feedMsg(ircmsgs.mode(self.channel, args=('+o', self.nick),
|
||||
prefix=self.prefix))
|
||||
self.irc.feedMsg(ircmsgs.mode(self.channel, args=('+t'),
|
||||
prefix=self.prefix))
|
||||
world.testing = False
|
||||
origuser = self.prefix
|
||||
self.prefix = 'stuff!stuff@stuff'
|
||||
|
Loading…
Reference in New Issue
Block a user