X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=config%2Fconf.pl;h=2de4eefb819b676cf3920bfbc627397b49abad12;hp=91682f1957933fe958bed6916b01fadd1027a982;hb=041d360b6d4e68428aa55fdc08940938535886f9;hpb=615b279318005eb6df28b2e3ecd61e2053a9cb01 diff --git a/config/conf.pl b/config/conf.pl index 91682f19..2de4eefb 100755 --- a/config/conf.pl +++ b/config/conf.pl @@ -1,7 +1,7 @@ #!/usr/bin/env perl # conf.pl # -# Copyright (c) 1999-2010 The SquirrelMail Project Team +# Copyright (c) 1999-2017 The SquirrelMail Project Team # Licensed under the GNU GPL. For full terms see COPYING. # # A simple configure script to configure SquirrelMail @@ -43,7 +43,23 @@ $dir = cwd(); ############################################################ -# First, lets read in the data already in there... +# Try to determine what the version of SquirrelMail is +############################################################ +$sm_version = 'unknown'; +if ( -e "../include/constants.php" && -r "../include/constants.php") { + open( FILE, "../include/constants.php" ); + while ( $line = ) { + if ($line =~ m/^define\('SM_VERSION', ?'(\d+\.\d+\.\d+( ?\[\w+]|))'/) { + $sm_version = $1; + last; + } + } + close(FILE); +} + + +############################################################ +# First, let's read in the data already in there... ############################################################ if ( -e "config.php" ) { # Make sure that file is readable @@ -410,6 +426,8 @@ $hide_sm_attributions = 'false' if ( !$hide_sm_attributions ); # since 1.2.5 $edit_identity = 'true' if ( !$edit_identity ); $edit_name = 'true' if ( !$edit_name ); +# since 1.4.23/1.5.2 +$edit_reply_to = 'true' if ( !$edit_reply_to ); # since 1.4.0 $use_smtp_tls= 'false' if ( !$use_smtp_tls); @@ -417,6 +435,12 @@ $smtp_auth_mech = 'none' if ( !$smtp_auth_mech ); $use_imap_tls = 'false' if ( !$use_imap_tls ); $imap_auth_mech = 'login' if ( !$imap_auth_mech ); +# $use_imap_tls and $use_smtp_tls are switched to integer since 1.5.1 +$use_imap_tls = 0 if ( $use_imap_tls eq 'false'); +$use_imap_tls = 1 if ( $use_imap_tls eq 'true'); +$use_smtp_tls = 0 if ( $use_smtp_tls eq 'false'); +$use_smtp_tls = 1 if ( $use_smtp_tls eq 'true'); + # since 1.5.0 $show_alternative_names = 'false' if ( !$show_alternative_names ); # $available_languages option available only in 1.5.0. removed due to $languages @@ -473,11 +497,6 @@ if ( !%fontsets) { 'verasans', 'bitstream vera sans,verdana,sans-serif'); } -# $use_imap_tls and $use_smtp_tls are switched to integer since 1.5.1 -$use_imap_tls = 0 if ( $use_imap_tls eq 'false'); -$use_imap_tls = 1 if ( $use_imap_tls eq 'true'); -$use_smtp_tls = 0 if ( $use_smtp_tls eq 'false'); -$use_smtp_tls = 1 if ( $use_smtp_tls eq 'true'); # sorting options changed names and reversed values in 1.5.1 $disable_thread_sort = 'false' if ( !$disable_thread_sort ); $disable_server_sort = 'false' if ( !$disable_server_sort ); @@ -494,6 +513,8 @@ $only_secure_cookies = 'true' if ( !$only_secure_cookies ); $disable_security_tokens = 'false' if ( !$disable_security_tokens ); $check_referrer = '' if ( !$check_referrer ); $ask_user_info = 'true' if ( !$ask_user_info ); +$use_transparent_security_image = 'true' if ( !$use_transparent_security_image ); +$display_imap_login_error = 'false' if ( !$display_imap_login_error ); if ( $ARGV[0] eq '--install-plugin' ) { print "Activating plugin " . $ARGV[1] . "\n"; @@ -581,7 +602,7 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { print $WHT. "SquirrelMail Configuration : " . $NRM; if ( $config == 1 ) { print "Read: config.php"; } elsif ( $config == 2 ) { print "Read: config_default.php"; } - print " ($print_config_version)\n"; + print "\nConfig version $print_config_version; SquirrelMail version $sm_version\n"; print "---------------------------------------------------------\n"; if ( $menu == 0 ) { @@ -714,6 +735,7 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { print "8. Allow use of receipts : $WHT$default_use_mdn$NRM\n"; print "9. Allow editing of identity : $WHT$edit_identity$NRM\n"; print " Allow editing of name : $WHT$edit_name$NRM\n"; + print " Allow editing of reply-to : $WHT$edit_reply_to$NRM\n"; print " Remove username from header : $WHT$hide_auth_header$NRM\n"; print "10. Disable server thread sort : $WHT$disable_thread_sort$NRM\n"; print "11. Disable server-side sorting : $WHT$disable_server_sort$NRM\n"; @@ -725,6 +747,8 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { print "17. Only secure cookies if poss. : $WHT$only_secure_cookies$NRM\n"; print "18. Disable secure forms : $WHT$disable_security_tokens$NRM\n"; print "19. Page referal requirement : $WHT$check_referrer$NRM\n"; + print "20. Security image : $WHT" . (lc($use_transparent_security_image) eq 'true' ? 'Transparent' : 'Textual') . "$NRM\n"; + print "21. Display login error from IMAP: $WHT$display_imap_login_error$NRM\n"; print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 5 ) { @@ -1001,6 +1025,8 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { elsif ( $command == 17 ) { $only_secure_cookies = command319(); } elsif ( $command == 18 ) { $disable_security_tokens = command320(); } elsif ( $command == 19 ) { $check_referrer = command321(); } + elsif ( $command == 20 ) { $use_transparent_security_image = command322(); } + elsif ( $command == 21 ) { $display_imap_login_error = command323(); } } elsif ( $menu == 5 ) { if ( $command == 1 ) { $use_icons = commandB3(); } # elsif ( $command == 3 ) { $icon_theme_def = command53(); } @@ -2555,11 +2581,13 @@ sub command310 { if ( ( $new_edit =~ /^y\n/i ) || ( ( $new_edit =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { $edit_identity = 'true'; $edit_name = 'true'; - $hide_auth_header = command311b(); + $edit_reply_to = 'true'; + $hide_auth_header = command311c(); } else { $edit_identity = 'false'; $edit_name = command311(); - $hide_auth_header = command311b(); + $edit_reply_to = command311b(); + $hide_auth_header = command311c(); } return $edit_identity; } @@ -2588,15 +2616,37 @@ sub command311 { sub command311b { print "$NRM"; - print "\n SquirrelMail adds username information to every outgoing - email in order to prevent possible sender forging when users are - allowed to change their email and/or full name. + print "\n Given that users are not allowed to modify their + email address, can they edit their reply-to address? + + "; + + if ( lc($edit_reply_to) eq 'true' ) { + $default_value = "y"; + } else { + $default_value = "n"; + } + print "Allow the user to edit their reply-to address? (y/n) [$WHT$default_value$NRM]: $WHT"; + $new_edit = ; + if ( ( $new_edit =~ /^y\n/i ) || ( ( $new_edit =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { + $edit_reply_to = 'true'; + } else { + $edit_reply_to = 'false'; + } + return $edit_reply_to; +} + +sub command311c { + print "$NRM"; + print "\n SquirrelMail adds username information to every outgoing email in + order to prevent possible sender forging by users that are allowed + to change their email and/or full name. - You can remove user information from this header (y) if you think that - it violates privacy or security. + You can remove user information from this header (y) if you think + that it violates privacy or security. - Note: If users are allowed to change their email addresses, - this setting will make it difficult to determine who sent what where. + Note: If users are allowed to change their email addresses, this + setting will make it difficult to determine who sent what where. Use at your own risk. Note: If you have defined a header encryption key in your SMTP or @@ -2817,7 +2867,7 @@ sub command320 { -# check_referrer (since 1.1.5.2) +# check_referrer (since 1.5.2) sub command321 { print "This option allows you to enable referal checks for all page requests\n"; print "made to SquirrelMail. This can help ensure that page requests came\n"; @@ -2848,6 +2898,63 @@ sub command321 { +# use_transparent_security_image (since 1.5.2) +sub command322 { + print "When HTML messages are being displayed, SquirrelMail's default behavior\n"; + print "is to remove all remote images and replace them with a local one.\n"; + print "\n"; + print "This option allows you to specify whether the local image should contain\n"; + print "text that indicates to the user that \"this image has been removed for\n"; + print "security reasons\" (translated into most languages), or if it should be\n"; + print "transparent.\n"; + print "\n"; + + if ( lc($use_transparent_security_image) eq 'true' ) { + $default_value = "y"; + } else { + $default_value = "n"; + } + print "Use transparent security image? (y/n) [$WHT$default_value$NRM]: $WHT"; + $use_transparent_security_image = ; + if ( ( $use_transparent_security_image =~ /^y\n/i ) || ( ( $use_transparent_security_image =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { + $use_transparent_security_image = 'true'; + } else { + $use_transparent_security_image = 'false'; + } + return $use_transparent_security_image; +} + + + +# display_imap_login_error (since 1.5.2) +sub command323 { + print "Some IMAP servers return detailed information about why a login is\n"; + print "being refused (the username or password could be invalid or there\n"; + print "might be an administrative lock on the account).\n"; + print "\n"; + print "Enabling this option will cause SquirrelMail to display login failure\n"; + print "messages directly from the IMAP server. When it is disabled, login\n"; + print "failures are always reported to the user with the traditional \"Unknown\n"; + print "user or password incorrect.\"\n"; + print "\n"; + + if ( lc($display_imap_login_error) eq 'true' ) { + $default_value = "y"; + } else { + $default_value = "n"; + } + print "Display login error messages directly from the IMAP server? (y/n) [$WHT$default_value$NRM]: $WHT"; + $display_imap_login_error = ; + if ( ( $display_imap_login_error =~ /^y\n/i ) || ( ( $display_imap_login_error =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { + $display_imap_login_error = 'true'; + } else { + $display_imap_login_error = 'false'; + } + return $display_imap_login_error; +} + + + sub command_userThemes { print "\nDefine the user themes that you wish to use. If you have added\n"; print "a theme of your own, just follow the instructions (?) about\n"; @@ -4110,7 +4217,7 @@ sub command91 { print "[$WHT$addrbook_dsn$NRM]: $WHT"; $new_dsn = ; if ( $new_dsn eq "\n" ) { - $new_dsn = ""; + $new_dsn = $addrbook_dsn; } else { $new_dsn =~ s/[\r\n]//g; $new_dsn =~ s/^\s+$//g; @@ -4152,7 +4259,7 @@ sub command93 { print "[$WHT$prefs_dsn$NRM]: $WHT"; $new_dsn = ; if ( $new_dsn eq "\n" ) { - $new_dsn = ""; + $new_dsn = $prefs_dsn; } else { $new_dsn =~ s/[\r\n]//g; $new_dsn =~ s/^\s+$//g; @@ -4255,7 +4362,7 @@ sub command98 { print "[$WHT$addrbook_global_dsn$NRM]: $WHT"; $new_dsn = ; if ( $new_dsn eq "\n" ) { - $new_dsn = ""; + $new_dsn = $addrbook_global_dsn; } else { $new_dsn =~ s/[\r\n]//g; $new_dsn =~ s/^\s+$//g; @@ -4641,12 +4748,12 @@ sub commandB8 { print "1 " . ($sm_debug_mode & 1 ? "y" : " ") . " Simple debugging (PHP E_ERROR)\n"; print "2 " . ($sm_debug_mode & 512 ? "y" : " ") - . " Moderate debugging (PHP E_ALL)\n"; + . " Moderate debugging (PHP E_ALL without E_STRICT)\n"; print "3 " . ($sm_debug_mode & 524288 ? "y" : " ") - . " Advanced debugging (PHP E_ALL plus log errors\n"; - print " intentionally suppressed)\n"; + . " Advanced debugging (PHP E_ALL (without E_STRICT) plus\n"; + print " log errors intentionally suppressed)\n"; print "4 " . ($sm_debug_mode & 536870912 ? "y" : " ") - . " Strict debugging (PHP E_STRICT)\n"; + . " Strict debugging (PHP E_ALL and E_STRICT)\n"; print "\n"; print "SquirrelMail debug mode (0,1,2,3,4) or d when done? : $WHT"; @@ -4930,6 +5037,8 @@ sub save_data { # boolean print CF "\$edit_name = $edit_name;\n"; # boolean + print CF "\$edit_reply_to = $edit_reply_to;\n"; + # boolean print CF "\$hide_auth_header = $hide_auth_header;\n"; # boolean print CF "\$disable_thread_sort = $disable_thread_sort;\n"; @@ -5104,7 +5213,7 @@ sub save_data { # integer print CF " 'search_tree' => $ldap_search_tree[$count]"; } - if ( $ldap_listing[$count] ) { + if ( $ldap_starttls[$count] ) { print CF ",\n"; # boolean print CF " 'starttls' => $ldap_starttls[$count]"; @@ -5159,10 +5268,12 @@ sub save_data { print CF "\$smtp_sitewide_pass = '". quote_single($smtp_sitewide_pass) ."';\n"; # string print CF "\$imap_auth_mech = '$imap_auth_mech';\n"; - # boolean + # integer print CF "\$use_imap_tls = $use_imap_tls;\n"; - # boolean + # integer print CF "\$use_smtp_tls = $use_smtp_tls;\n"; + # boolean + print CF "\$display_imap_login_error = $display_imap_login_error;\n"; # string print CF "\$session_name = '$session_name';\n"; # boolean @@ -5172,6 +5283,9 @@ sub save_data { # string print CF "\$check_referrer = '$check_referrer';\n"; + # boolean + print CF "\$use_transparent_security_image = $use_transparent_security_image;\n"; + print CF "\n"; # boolean @@ -5402,13 +5516,13 @@ sub set_defaults { $domain = "gmail.com"; $imapServerAddress = "imap.gmail.com"; $imapPort = 993; - $use_imap_tls = true; + $use_imap_tls = 1; $imap_auth_mech = "login"; $smtpServerAddress = "smtp.gmail.com"; $smtpPort = 465; $pop_before_smtp = false; $useSendmail = false; - $use_smtp_tls = true; + $use_smtp_tls = 1; $smtp_auth_mech = "login"; $continue = 1;