]> git.joonet.de Git - adminer.git/commitdiff
Plugin to hide databases
authorJakub Vrana <jakub@vrana.cz>
Fri, 24 Feb 2012 06:56:03 +0000 (22:56 -0800)
committerJakub Vrana <jakub@vrana.cz>
Fri, 24 Feb 2012 06:58:41 +0000 (22:58 -0800)
adminer/plugin.php
plugins/database-hide.php [new file with mode: 0644]

index 082817d3d7561609d7475fe2b75cdf832f3ff6e6..dac12efe85961f4958d909696c2d08766743c3bd 100644 (file)
@@ -10,6 +10,7 @@ function adminer_object() {
        
        $plugins = array(
                // specify enabled plugins here
+               new AdminerDatabaseHide(array('information_schema')),
                new AdminerDumpZip,
                new AdminerDumpXml,
                //~ new AdminerSqlLog("past-" . rtrim(`git describe --tags --abbrev=0`) . ".sql"),
diff --git a/plugins/database-hide.php b/plugins/database-hide.php
new file mode 100644 (file)
index 0000000..19d4530
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+/** Hide some databases from the interface - just to improve design, not a security plugin
+* @author Jakub Vrana, http://www.vrana.cz/
+* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
+*/
+class AdminerDatabaseHide {
+       protected $disabled;
+       
+       /**
+       * @param array case insensitive database names in values
+       */
+       function AdminerDatabaseHide($disabled) {
+               $this->disabled = array_map('strtolower', $disabled);
+       }
+       
+       function databases($flush = true) {
+               $return = array();
+               foreach (get_databases($flush) as $db) {
+                       if (!in_array(strtolower($db), $this->disabled)) {
+                               $return[] = $db;
+                       }
+               }
+               return $return;
+       }
+       
+}