Prechádzať zdrojové kódy

fix path disclose problem in functions.php
don't display system information, if plugin is disabled.
use squirrelmail option widgets instead of own functions. Option saving is
handled by sm.

tokul 20 rokov pred
rodič
commit
f7ceeacbb7

+ 8 - 1
plugins/bug_report/bug_report.php

@@ -25,8 +25,15 @@ define('SM_PATH','../../');
 
 require_once(SM_PATH . 'include/validate.php');
 
+/** is bug_report plugin disabled */
+if (! is_plugin_enabled('bug_report')) {
+    error_box(_("Plugin is disabled."),$color);
+    echo "\n</body></html>\n";
+    exit();
+}
+
 // loading form functions
-require_once(SM_PATH . 'functions/forms.php');
+include_once(SM_PATH . 'functions/forms.php');
 
 displayPageHeader($color, 'None');
 

+ 13 - 17
plugins/bug_report/index.php

@@ -1,19 +1,15 @@
 <?php
-
-   /**
-    **  index.php -- Displays the main frameset
-    **
-    **  Copyright (c) 1999-2005 The SquirrelMail Project Team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    **  Redirects to the login page.
-    **
-    * @version $Id$
-    * @package plugins
-    * @subpackage bug_report
-    **/
-
-   header("Location:../../src/login.php\n\n");
-   exit();
-
+/**
+ * index.php -- Displays the main frameset
+ *
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * Redirects to the login page.
+ * @version $Id$
+ * @package plugins
+ * @subpackage bug_report
+ */
+header("Location:../../index.php\n\n");
+exit();
 ?>

+ 18 - 31
plugins/bug_report/setup.php

@@ -13,10 +13,6 @@
  * @subpackage bug_report
  */
 
-/* This button fills out a form with your setup information already
-   gathered -- all you have to do is type. */
-
-
 /**
  * Initialize the bug report plugin
  * @return void
@@ -26,9 +22,8 @@ function squirrelmail_plugin_init_bug_report() {
     global $squirrelmail_plugin_hooks;
 
     $squirrelmail_plugin_hooks['menuline']['bug_report'] = 'bug_report_button';
-    $squirrelmail_plugin_hooks['options_display_inside']['bug_report'] = 'bug_report_options';
-    $squirrelmail_plugin_hooks['options_display_save']['bug_report'] = 'bug_report_save';
     $squirrelmail_plugin_hooks['loading_prefs']['bug_report'] = 'bug_report_load';
+    $squirrelmail_plugin_hooks['optpage_loadhook_display']['bug_report'] = 'bug_report_block';
 }
 
 
@@ -47,20 +42,6 @@ function bug_report_button() {
     echo "&nbsp;&nbsp;\n";
 }
 
-/**
- * Saves bug report options
- * @access private
- */
-function bug_report_save() {
-    global $username,$data_dir;
-
-    if( sqgetGlobalVar('bug_report_bug_report_visible', $vis, SQ_POST) ) {
-        setPref($data_dir, $username, 'bug_report_visible', '1');
-    } else {
-        setPref($data_dir, $username, 'bug_report_visible', '');
-    }
-}
-
 /**
  * Loads bug report options
  * @access private
@@ -69,22 +50,28 @@ function bug_report_load() {
     global $username, $data_dir;
     global $bug_report_visible;
 
-    $bug_report_visible = getPref($data_dir, $username, 'bug_report_visible');
+    $bug_report_visible = (bool) getPref($data_dir, $username, 'bug_report_visible',false);
 }
 
 /**
- * Adds bug report options to display page
+ * Register bug report option block
+ * @since 1.5.1
  * @access private
  */
-function bug_report_options() {
-    global $bug_report_visible;
-
-    echo '<tr>' . html_tag('td',_("Bug Reports:"),'right','','style="white-space: nowrap;"') . "\n" .
-         '<td><input name="bug_report_bug_report_visible" type="checkbox"';
-    if ($bug_report_visible) {
-        echo ' checked="checked"';
-    }
-    echo ' /> ' . _("Show button in toolbar") . "</td></tr>\n";
+function bug_report_block() {
+    global $optpage_data;
+    $optpage_data['grps']['bug_report'] = _("Bug Reports");
+    $optionValues = array();
+    // FIXME: option needs refresh in SMOPT_REFRESH_RIGHT 
+    // (menulink is processed before options are saved/loaded)
+    $optionValues[] = array(
+        'name'    => 'bug_report_visible',
+        'caption' => _("Show button in toolbar"),
+        'type'    => SMOPT_TYPE_BOOLEAN,
+        'refresh' => SMOPT_REFRESH_ALL,
+        'initial_value' => false
+        );
+    $optpage_data['vals']['bug_report'] = $optionValues;
 }
 
 ?>

+ 6 - 0
plugins/bug_report/show_system_specs.php

@@ -19,6 +19,12 @@
 define('SM_PATH','../../');
 include_once(SM_PATH . 'include/validate.php');
 
+/** is bug_report plugin disabled */
+if (! is_plugin_enabled('bug_report')) {
+    error_box(_("Plugin is disabled."),$color);
+    echo "\n</body></html>\n";
+    exit();
+}
 ?>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>

+ 3 - 0
plugins/bug_report/system_specs.php

@@ -13,6 +13,9 @@
  * @subpackage bug_report
  */
 
+/** @ignore */
+if (!defined('SM_PATH')) define('SM_PATH','../../');
+
 /**
  * load required libraries
  */