From dddb5270c8545c19c6619575bf99166ba6819e20 Mon Sep 17 00:00:00 2001
From: Sam Yaple <sam@yaple.net>
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):