From 10334aeb929beb4310a28089ff645aa309711157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lavoie?= Date: Wed, 26 Nov 2014 14:46:39 -0500 Subject: [PATCH] Allow dashes in username Otherwise, trying to manage `debian-sys-maint` will fail miserably, quoted or not. --- lib/puppet/type/mysql_user.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/puppet/type/mysql_user.rb b/lib/puppet/type/mysql_user.rb index 5078649de..1ab12e8ea 100644 --- a/lib/puppet/type/mysql_user.rb +++ b/lib/puppet/type/mysql_user.rb @@ -12,8 +12,8 @@ # http://dev.mysql.com/doc/refman/5.5/en/identifiers.html # Regex should problably be more like this: /^[`'"]?[^`'"]*[`'"]?@[`'"]?[\w%\.]+[`'"]?$/ # If at least one special char is used, string must be quoted - raise(ArgumentError, "Database user #{value} must be quotted as it contains special characters") if value =~ /^[^'`"].*[^0-9a-zA-Z$_].*[^'`"]@[\w%\.:]+/ - raise(ArgumentError, "Invalid database user #{value}") unless value =~ /^(?:['`"][^'`"]*['`"]|[0-9a-zA-Z$_]*)@[\w%\.:]+/ + raise(ArgumentError, "Database user #{value} must be quotted as it contains special characters") if value =~ /^[^'`"].*[^0-9a-zA-Z$_\-].*[^'`"]@[\w%\.:]+/ + raise(ArgumentError, "Invalid database user #{value}") unless value =~ /^(?:['`"][^'`"]*['`"]|[0-9a-zA-Z$_\-]*)@[\w%\.:]+/ username = value.split('@')[0] if not ((username =~ /['"`]*['"`]$/ and username.size <= 18) or username.size <= 16) raise ArgumentError, 'MySQL usernames are limited to a maximum of 16 characters'