]> git.joonet.de Git - adminer.git/commitdiff
Limit commands and import in customization (bug #3194432)
authorJakub Vrana <jakub@vrana.cz>
Tue, 24 May 2011 15:16:13 +0000 (17:16 +0200)
committerJakub Vrana <jakub@vrana.cz>
Tue, 24 May 2011 15:16:13 +0000 (17:16 +0200)
adminer/include/adminer.inc.php
adminer/select.inc.php
editor/include/adminer.inc.php
plugins/plugin.php

index 19a6238b90419742a3ffb6a315feb94275fb2764..c29546ffbddb9c0ca94d94fd9724f57a4880dce2 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+// any method change in this file should be transferred to editor/include/adminer.inc.php and plugins/plugin.php
+
 class Adminer {
        /** @var array operators used in select, null for all operators */
        var $operators;
@@ -295,6 +297,20 @@ username.form['driver'].onchange();
                echo "</div></fieldset>\n";
        }
        
+       /** Print command box in select
+       * @return bool whether to print default commands
+       */
+       function selectCommandPrint() {
+               return !information_schema(DB);
+       }
+       
+       /** Print import box in select
+       * @return bool whether to print default import
+       */
+       function selectImportPrint() {
+               return true;
+       }
+       
        /** Print extra text in the end of a select form
        * @param array fields holding e-mails
        * @param array selectable columns
index f9f3f0ec9302c1e10e606cf8ccdd0e125e12e3b0..bcde4e77dc0a0faf99adfd245b5015b102d44acf 100644 (file)
@@ -395,7 +395,7 @@ if (!$columns) {
                        }
                        echo " (" . ($exact_count ? "" : "~ ") . lang('%d row(s)', $found_rows) . ") " . checkbox("all", 1, 0, lang('whole result')) . "\n";
                        
-                       if (!information_schema(DB)) {
+                       if ($adminer->selectCommandPrint()) {
                                ?>
 <fieldset><legend><?php echo lang('Edit'); ?></legend><div>
 <input type="submit" value="<?php echo lang('Save'); ?>" title="<?php echo lang('Double click on a value to modify it.'); ?>" class="jsonly">
@@ -412,12 +412,14 @@ if (!$columns) {
                        echo " <input type='submit' name='export' value='" . lang('Export') . "' onclick='eventStop(event);'>\n";
                        echo "</div></fieldset>\n";
                }
-               print_fieldset("import", lang('Import'), !$rows);
-               echo "<input type='file' name='csv_file'> ";
-               echo html_select("separator", array("csv" => "CSV,", "csv;" => "CSV;", "tsv" => "TSV"), $adminer_export["format"], 1); // 1 - select
-               echo " <input type='submit' name='import' value='" . lang('Import') . "'>";
-               echo "<input type='hidden' name='token' value='$token'>\n";
-               echo "</div></fieldset>\n";
+               if ($adminer->selectImportPrint()) {
+                       print_fieldset("import", lang('Import'), !$rows);
+                       echo "<input type='file' name='csv_file'> ";
+                       echo html_select("separator", array("csv" => "CSV,", "csv;" => "CSV;", "tsv" => "TSV"), $adminer_export["format"], 1); // 1 - select
+                       echo " <input type='submit' name='import' value='" . lang('Import') . "'>";
+                       echo "<input type='hidden' name='token' value='$token'>\n";
+                       echo "</div></fieldset>\n";
+               }
                
                $adminer->selectEmailPrint(array_filter($email_fields, 'strlen'), $columns);
                
index 4714b0a9094687c7368283b73b8eac3efb0acde5..2692c8925d4392bc41c42a74b1974d9807b00783 100644 (file)
@@ -275,6 +275,14 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                echo "</div></fieldset>\n";
        }
        
+       function selectCommandPrint() {
+               return true;
+       }
+       
+       function selectImportPrint() {
+               return true;
+       }
+       
        function selectEmailPrint($emailFields, $columns) {
                if ($emailFields) {
                        print_fieldset("email", lang('E-mail'), $_POST["email_append"]);
index 35798c981a512e3e73267e9a98e9981a057e905b..344f0310672b4ebcebfa211dfd7acf1bb248319e 100644 (file)
@@ -215,6 +215,16 @@ class AdminerPlugin extends Adminer {
                return $this->_applyPlugin(__FUNCTION__, $args);
        }
 
+       function selectCommandPrint() {
+               $args = func_get_args();
+               return $this->_applyPlugin(__FUNCTION__, $args);
+       }
+
+       function selectImportPrint() {
+               $args = func_get_args();
+               return $this->_applyPlugin(__FUNCTION__, $args);
+       }
+
        function selectEmailPrint() {
                $args = func_get_args();
                return $this->_applyPlugin(__FUNCTION__, $args);