diff --git a/plugins/Alias/config.py b/plugins/Alias/config.py index 6b5cad431..c049f5139 100644 --- a/plugins/Alias/config.py +++ b/plugins/Alias/config.py @@ -43,5 +43,7 @@ def configure(advanced): Alias = conf.registerPlugin('Alias') conf.registerGroup(Alias, 'aliases') conf.registerGroup(Alias, 'escapedaliases') +conf.registerGlobalValue(Alias, 'validName', + registry.String(r'^[a-z.|!?][a-z0-9.|!]*$', _("""Regex which alias names must match in order to be valid"""))) # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: diff --git a/plugins/Alias/plugin.py b/plugins/Alias/plugin.py index 7ecd5f852..d68106a1b 100644 --- a/plugins/Alias/plugin.py +++ b/plugins/Alias/plugin.py @@ -336,13 +336,9 @@ class Alias(callbacks.Plugin): irc.error(_('There is no such alias.')) unlock = wrap(unlock, [('checkCapability', 'admin'), 'commandName']) - _validNameRe = re.compile(r'^[a-z.|!?][a-z0-9.|!]*$') def addAlias(self, irc, name, alias, lock=False): - if not self._validNameRe.search(name): - raise AliasError('Names can only contain alphanumerical ' - 'characters, dots, pipes, and ' - 'exclamation/interrogatin marks ' - '(and the first character cannot be a number).') + if not re.search(self.registryValue('validName'), name): + raise AliasError('Invalid alias name.') realName = callbacks.canonicalName(name) if name != realName: s = format(_('That name isn\'t valid. Try %q instead.'), realName) diff --git a/plugins/Alias/test.py b/plugins/Alias/test.py index d35a9c914..913b1ab56 100644 --- a/plugins/Alias/test.py +++ b/plugins/Alias/test.py @@ -112,8 +112,7 @@ class AliasTestCase(ChannelPluginTestCase): self.failIf('foobar' in cb.aliases) self.assertError('foobar') - self.assertRegexp('alias add café ignore', 'Error.*can only contain') - self.assertRegexp('alias add 1abc ignore', 'Error.*can only contain') + self.assertRegexp('alias add abc\x07 ignore', 'Error.*Invalid') def testOptionalArgs(self): self.assertNotError('alias add myrepr "repr @1"')