X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fmail_fetch%2Foptions.php;h=8d667b756ea9ce4a88c61825bf3739eab126bd43;hb=c4faef335b2362c81b8ebf026d4066c12d70536c;hp=4f9abd17e8db460b7b5ad3fa641176d6bbbe366e;hpb=929da10db42a7764d611a14ac36b07a1a6089710;p=squirrelmail.git
diff --git a/plugins/mail_fetch/options.php b/plugins/mail_fetch/options.php
index 4f9abd17..8d667b75 100644
--- a/plugins/mail_fetch/options.php
+++ b/plugins/mail_fetch/options.php
@@ -5,7 +5,7 @@
*
* Setup of the mailfetch plugin.
*
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright 1999-2020 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,46 @@ 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);
+global $imap_stream_options; // in case not defined in config
/* 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 +104,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 +243,14 @@ echo '