Updating copyrights. Happy New Year.
[squirrelmail.git] / plugins / mail_fetch / options.php
index 4f9abd17e8db460b7b5ad3fa641176d6bbbe366e..aaec073d465e638aea54257e907223054c7bcbae 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Setup of the mailfetch plugin.
  *
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright 1999-2012 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package plugins
@@ -20,6 +20,11 @@ include_once(SM_PATH . 'plugins/mail_fetch/functions.php' );
 include_once(SM_PATH . 'functions/imap_general.php');
 include_once(SM_PATH . 'functions/forms.php');
 
+// don't load this page if this plugin is not enabled
+//
+global $plugins;
+if (!in_array('mail_fetch', $plugins)) exit;
+
 /* globals */
 sqgetGlobalVar('delimiter',  $delimiter,  SQ_SESSION);
 
@@ -51,22 +56,45 @@ sqgetGlobalVar('mf_lmos',          $mf_lmos,          SQ_POST);
 sqgetGlobalVar('mf_auth',          $mf_auth,          SQ_POST);
 sqgetGlobalVar('mf_type',          $mf_type,          SQ_POST);
 sqgetGlobalVar('submit_mailfetch', $submit_mailfetch, SQ_POST);
+$mf_port = trim($mf_port);
+$mf_server = trim($mf_server);
 
 
 /* end globals */
 
-displayPageHeader( $color, 'None' );
+displayPageHeader( $color );
 
 switch( $mf_action ) {
  case 'add':
+
+     $mf_action = 'config';
+
+     // restrict port number if necessary
+     //
+     $message = validate_mail_fetch_port_number($mf_port);
+     if (!empty($message)) break;
+
+     // restrict server address if necessary
+     //
+     $message = validate_mail_fetch_server_address($mf_server);
+     if (!empty($message)) break;
+
      if ($mf_sn<1) $mf_sn=0;
      if (!isset($mf_server)) return;
      setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?$mf_server:""));
      setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?$mf_port:110));
      setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?$mf_alias:""));
      setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?$mf_user:""));
-     setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?encrypt( $mf_pass )    :""));
-     if( isset($mf_cypher) && $mf_cypher <> 'on' ) SetPref($data_dir,$username,'mailfetch_cypher',    'on');
+     $pass = "";
+     if ( isset($mf_pass) ) {
+        if ( isset($mf_cypher) && $mf_cypher == 'on' ) {
+            setPref($data_dir,$username,"mailfetch_cypher", ($mf_cypher == 'on' ? 'on' : ''));
+            $pass = encrypt($mf_pass);
+        } else {
+            $pass = $mf_pass;
+        }
+     }
+     setPref($data_dir,$username,"mailfetch_pass_$mf_sn",$pass);
      setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?$mf_lmos:""));
      setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?$mf_login:""));
      setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?$mf_fref:""));
@@ -75,17 +103,44 @@ switch( $mf_action ) {
      setPref($data_dir,$username,"mailfetch_type_$mf_sn",(isset($mf_type)?$mf_type:MAIL_FETCH_USE_PLAIN));
      $mf_sn++;
      setPref($data_dir,$username,'mailfetch_server_number', $mf_sn);
-     $mf_action = 'config';
      break;
+
+ // modify a server
+ //
  case 'confirm_modify':
-     //modify    a server
+
+     // restrict port number if necessary
+     //
+     $message = validate_mail_fetch_port_number($mf_port);
+     if (!empty($message)) {
+         $mf_action = 'Modify';
+         break;
+     }
+
+     // restrict server address if necessary
+     //
+     $message = validate_mail_fetch_server_address($mf_server);
+     if (!empty($message)) {
+         $mf_action = 'Modify';
+         break;
+     }
+
      if (!isset($mf_server)) return;
      setPref($data_dir,$username,"mailfetch_server_$mf_sn", (isset($mf_server)?$mf_server:""));
      setPref($data_dir,$username,"mailfetch_port_$mf_sn", (isset($mf_port)?$mf_port:110));
      setPref($data_dir,$username,"mailfetch_alias_$mf_sn", (isset($mf_alias)?$mf_alias:""));
      setPref($data_dir,$username,"mailfetch_user_$mf_sn",(isset($mf_user)?$mf_user:""));
-     setPref($data_dir,$username,"mailfetch_pass_$mf_sn",(isset($mf_pass)?encrypt( $mf_pass )    :""));
-     if( $mf_cypher <> 'on' ) setPref($data_dir,$username,"mailfetch_cypher", 'on');
+     $pass = "";
+     if ( isset($mf_pass) ) {
+        if ( isset($mf_cypher) && $mf_cypher == 'on' ) {
+            setPref($data_dir,$username,"mailfetch_cypher", 'on');
+            $pass = encrypt($mf_pass);
+        } else {
+            setPref($data_dir,$username,"mailfetch_cypher", '');
+            $pass = $mf_pass;
+        }
+     }
+     setPref($data_dir,$username,"mailfetch_pass_$mf_sn",$pass);
      setPref($data_dir,$username,"mailfetch_lmos_$mf_sn",(isset($mf_lmos)?$mf_lmos:""));
      setPref($data_dir,$username,"mailfetch_login_$mf_sn",(isset($mf_login)?$mf_login:""));
      setPref($data_dir,$username,"mailfetch_fref_$mf_sn",(isset($mf_fref)?$mf_fref:""));
@@ -187,6 +242,14 @@ echo '<br /><form method="post" action="'.$PHP_SELF.'">' .
                   ) ,
               'center', '', 'width="95%"' );
 
+// display error or other messages if necessary
+//
+if (!empty($message)) {
+    echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
+         html_tag( 'tr',
+         html_tag( 'td', '<b>' . $message . '</b>', 'center', $color[2] ));
+}
+
 switch( $mf_action ) {
  case 'config':
      echo html_tag( 'table', '', 'center', '', 'width="70%" cellpadding="5" cellspacing="1"' ) .
@@ -426,4 +489,4 @@ switch( $mf_action ) {
                    'center', '', 'width="70%"' );
 }
 
-$oTemplate->display('footer.tpl');
\ No newline at end of file
+$oTemplate->display('footer.tpl');