3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-24 03:29:28 +01:00

opercmds: apply claim checks to massban as well

This commit is contained in:
James Lu 2017-08-07 00:33:01 -07:00
parent 8b4e73e0ed
commit f0a82859a0

View File

@ -92,21 +92,31 @@ massban_parser.add_argument('banmask')
# Regarding default ban reason: it's a good idea not to leave in the caller to prevent retaliation... # Regarding default ban reason: it's a good idea not to leave in the caller to prevent retaliation...
massban_parser.add_argument('reason', nargs='*', default=["User banned"]) massban_parser.add_argument('reason', nargs='*', default=["User banned"])
massban_parser.add_argument('--quiet', '-q', action='store_true') massban_parser.add_argument('--quiet', '-q', action='store_true')
massban_parser.add_argument('--force', '-f', action='store_true')
def massban(irc, source, args, use_regex=False): def massban(irc, source, args, use_regex=False):
"""<channel> <banmask / exttarget> [<kick reason>] [--quiet/-q] """<channel> <banmask / exttarget> [<kick reason>] [--quiet/-q] [--force/-f]
Applies (i.e. kicks affected users) the given PyLink banmask on the specified channel. Applies (i.e. kicks affected users) the given PyLink banmask on the specified channel.
The --quiet option can also be given to mass-mute the given user on networks where this is supported The --quiet option can also be given to mass-mute the given user on networks where this is supported
(currently ts6, unreal, and inspircd). No kicks will be sent in this case.""" (currently ts6, unreal, and inspircd). No kicks will be sent in this case.
Relay CLAIM checking is used on Relay channels if it is enabled; use the --force option
to override this if needed."""
permissions.check_permissions(irc, source, ['opercmds.massban']) permissions.check_permissions(irc, source, ['opercmds.massban'])
args = massban_parser.parse_args(args) args = massban_parser.parse_args(args)
reason = ' '.join(args.reason) reason = ' '.join(args.reason)
if args.force:
permissions.check_permissions(irc, source, ['opercmds.massban.force'])
if args.channel not in irc.channels: if args.channel not in irc.channels:
irc.error("Unknown channel %r" % args.channel) irc.error("Unknown channel %r." % args.channel)
return
elif 'relay' in world.plugins and (not world.plugins['relay'].check_claim(irc, args.channel, source)) and (not args.force):
irc.error("You do not have access to set bans in %s. Ask someone to op you or use the --force option." % args.channel)
return return
results = 0 results = 0