]> git.joonet.de Git - adminer.git/commitdiff
Allow % in view definer (thanks to Tomas Votruba)
authorJakub Vrana <jakub@vrana.cz>
Mon, 14 Mar 2011 10:24:52 +0000 (11:24 +0100)
committerJakub Vrana <jakub@vrana.cz>
Mon, 14 Mar 2011 10:24:52 +0000 (11:24 +0100)
adminer/include/adminer.inc.php

index 1ac76419617e5f58a9e48ddd0aa042f2e8b09c31..38479b4bedb3c976f04bccc0ea4e63b093cec20f 100644 (file)
@@ -521,7 +521,7 @@ username.form['driver'].onchange();
                                }
                                if ($is_view) {
                                        // remove DEFINER with current user
-                                       $create = preg_replace('~^([A-Z =]+) DEFINER=`' . str_replace("@", "`@`", logged_user()) . '`~', '\\1', $create); //! proper escaping of user
+                                       $create = preg_replace('~^([A-Z =]+) DEFINER=`' . preg_replace('~@(.*)~', '`@`(%|\\1)', logged_user()) . '`~', '\\1', $create); //! proper escaping of user
                                }
                                echo ($style != "CREATE+ALTER" ? $create : ($is_view ? substr_replace($create, " OR REPLACE", 6, 0) : substr_replace($create, " IF NOT EXISTS", 12, 0))) . ";\n\n";
                        }