From dddb5270c8545c19c6619575bf99166ba6819e20 Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Wed, 19 Aug 2015 04:22:31 +0000 Subject: [PATCH] Refix bug 1226 after revert This patch properly fixes bug 1226 without introducing a breaking change to idempotency which was introduced in PR #1358 We can properly assign permissions to databases with a '.' in the name of the database as well as assign priviliges to all databases as specified with '*' --- database/mysql/mysql_user.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/database/mysql/mysql_user.py b/database/mysql/mysql_user.py index 4f0dee5374c..5ea825f7514 100644 --- a/database/mysql/mysql_user.py +++ b/database/mysql/mysql_user.py @@ -320,6 +320,11 @@ def privileges_unpack(priv): privs = [] for item in priv.strip().split('/'): pieces = item.strip().split(':') + dbpriv = pieces[0].rsplit(".", 1) + # Do not escape if privilege is for database '*' (all databases) + if dbpriv[0].strip('`') != '*': + pieces[0] = "`%s`.%s" % (dbpriv[0].strip('`'), dbpriv[1]) + if '.' in pieces[0]: pieces[0] = pieces[0].split('.') for idx, piece in enumerate(pieces):