#!/usr/bin/env perl
# conf.pl
#
-# Copyright (c) 1999-2006 The SquirrelMail Project Team
+# Copyright (c) 1999-2007 The SquirrelMail Project Team
# Licensed under the GNU GPL. For full terms see COPYING.
#
# A simple configure script to configure SquirrelMail
$icon_theme_def = '' if ( !$icon_theme_def );
$disable_plugins = 'false' if ( !$disable_plugins );
$disable_plugins_user = '' if ( !$disable_plugins_user );
+$only_secure_cookies = 'true' if ( !$only_secure_cookies );
if ( $ARGV[0] eq '--install-plugin' ) {
print "Activating plugin " . $ARGV[1] . "\n";
exit(0);
}
+
+
+####################################################################################
+
+# used in multiple places, define once
+$list_supported_imap_servers =
+ " bincimap = Binc IMAP server\n" .
+ " courier = Courier IMAP server\n" .
+ " cyrus = Cyrus IMAP server\n" .
+ " dovecot = Dovecot Secure IMAP server\n" .
+ " exchange = Microsoft Exchange IMAP server\n" .
+ " hmailserver = hMailServer\n" .
+ " macosx = Mac OS X Mailserver\n" .
+ " mercury32 = Mercury/32\n" .
+ " uw = University of Washington's IMAP server\n";
+
#####################################################################################
if ( $config_use_color == 1 ) {
$WHT = "\x1B[37;1m";
print "R Return to Main Menu\n";
} elsif ( $menu == 4 ) {
print $WHT. "General Options\n" . $NRM;
- print "1. Data Directory : $WHT$data_dir$NRM\n";
- print "2. Attachment Directory : $WHT$attachment_dir$NRM\n";
- print "3. Directory Hash Level : $WHT$dir_hash_level$NRM\n";
- print "4. Default Left Size : $WHT$default_left_size$NRM\n";
- print "5. Usernames in Lowercase : $WHT$force_username_lowercase$NRM\n";
- print "6. Allow use of priority : $WHT$default_use_priority$NRM\n";
- print "7. Hide SM attributions : $WHT$hide_sm_attributions$NRM\n";
- 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 " 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";
- print "12. Allow server charset search : $WHT$allow_charset_search$NRM\n";
- print "13. Allow advanced search : $WHT$allow_advanced_search$NRM\n";
- print "14. PHP session name : $WHT$session_name$NRM\n";
- print "15. Time zone configuration : $WHT$time_zone_type$NRM\n";
- print "16. Location base : $WHT$config_location_base$NRM\n";
+ print "1. Data Directory : $WHT$data_dir$NRM\n";
+ print "2. Attachment Directory : $WHT$attachment_dir$NRM\n";
+ print "3. Directory Hash Level : $WHT$dir_hash_level$NRM\n";
+ print "4. Default Left Size : $WHT$default_left_size$NRM\n";
+ print "5. Usernames in Lowercase : $WHT$force_username_lowercase$NRM\n";
+ print "6. Allow use of priority : $WHT$default_use_priority$NRM\n";
+ print "7. Hide SM attributions : $WHT$hide_sm_attributions$NRM\n";
+ 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 " 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";
+ print "12. Allow server charset search : $WHT$allow_charset_search$NRM\n";
+ print "13. Allow advanced search : $WHT$allow_advanced_search$NRM\n";
+ print "14. PHP session name : $WHT$session_name$NRM\n";
+ print "15. Time zone configuration : $WHT$time_zone_type$NRM\n";
+ print "16. Location base : $WHT$config_location_base$NRM\n";
+ print "17. Only secure cookies if poss. : $WHT$only_secure_cookies$NRM\n";
print "\n";
print "R Return to Main Menu\n";
} elsif ( $menu == 5 ) {
elsif ( $command == 14 ) { $session_name = command317(); }
elsif ( $command == 15 ) { $time_zone_type = command318(); }
elsif ( $command == 16 ) { $config_location_base = command_config_location_base(); }
+ elsif ( $command == 17 ) { $only_secure_cookies = command319(); }
} elsif ( $menu == 5 ) {
if ( $command == 1 ) { $use_icons = commandB3(); }
# elsif ( $command == 3 ) { $icon_theme_def = commandB7(); }
print "these servers. If you would like to use them, please select your\n";
print "IMAP server. If you do not wish to use these work-arounds, you can\n";
print "set this to \"other\", and none will be used.\n";
- print " courier = Courier IMAP server\n";
- print " cyrus = Cyrus IMAP server\n";
- print " dovecot = Dovecot Secure IMAP server\n";
- print " exchange = Microsoft Exchange IMAP server\n";
- print " hmailserver = hMailServer\n";
- print " macosx = Mac OS X Mailserver\n";
- print " mercury32 = Mercury Mail Transport System\n";
- print " uw = University of Washington's IMAP server\n";
+ print $list_supported_imap_servers;
print "\n";
print " other = Not one of the above servers\n";
print "\n";
return $config_location_base;
}
+# only_secure_cookies (since 1.5.2)
+sub command319 {
+ print "This option allows you to specify that if a user session is initiated\n";
+ print "under a secure (HTTPS, SSL-encrypted) connection, the cookies given to\n";
+ print "the browser will ONLY be transmitted via a secure connection henceforth.\n\n";
+ print "Generally this is a Good Thing, and should NOT be disabled. However,\n";
+ print "if you intend to use the Secure Login or Show SSL Link plugins to\n";
+ print "encrypt the user login, but not the rest of the SquirrelMail session,\n";
+ print "this can be turned off. Think twice before doing so.\n";
+ print "\n";
+
+ if ( lc($only_secure_cookies) eq 'true' ) {
+ $default_value = "y";
+ } else {
+ $default_value = "n";
+ }
+ print "Transmit cookies only on secure connection when available? (y/n) [$WHT$default_value$NRM]: $WHT";
+ $only_secure_cookies = <STDIN>;
+ if ( ( $only_secure_cookies =~ /^y\n/i ) || ( ( $only_secure_cookies =~ /^\n/ ) && ( $default_value eq "y" ) ) ) {
+ $only_secure_cookies = 'true';
+ } else {
+ $only_secure_cookies = 'false';
+ }
+ return $only_secure_cookies;
+}
+
sub command_userThemes {
print "\nDefine the user themes that you wish to use. If you have added\n";
print CF "\$no_list_for_subscribe = $no_list_for_subscribe;\n";
# string
- print CF "\$smtp_auth_mech = '$smtp_auth_mech';\n";
- print CF "\$smtp_sitewide_user = '". quote_single($smtp_sitewide_user) ."';\n";
- print CF "\$smtp_sitewide_pass = '". quote_single($smtp_sitewide_pass) ."';\n";
+ print CF "\$smtp_auth_mech = '$smtp_auth_mech';\n";
+ print CF "\$smtp_sitewide_user = '". quote_single($smtp_sitewide_user) ."';\n";
+ print CF "\$smtp_sitewide_pass = '". quote_single($smtp_sitewide_pass) ."';\n";
# string
- print CF "\$imap_auth_mech = '$imap_auth_mech';\n";
+ print CF "\$imap_auth_mech = '$imap_auth_mech';\n";
# boolean
- print CF "\$use_imap_tls = $use_imap_tls;\n";
+ print CF "\$use_imap_tls = $use_imap_tls;\n";
# boolean
- print CF "\$use_smtp_tls = $use_smtp_tls;\n";
+ print CF "\$use_smtp_tls = $use_smtp_tls;\n";
# string
- print CF "\$session_name = '$session_name';\n";
+ print CF "\$session_name = '$session_name';\n";
+ # boolean
+ print CF "\$only_secure_cookies = $only_secure_cookies;\n";
print CF "\n";
$continue = 0;
while ( $continue != 1 ) {
print "Please select your IMAP server:\n";
- print " bincimap = Binc IMAP server\n";
- print " courier = Courier IMAP server\n";
- print " cyrus = Cyrus IMAP server\n";
- print " dovecot = Dovecot Secure IMAP server\n";
- print " exchange = Microsoft Exchange IMAP server\n";
- print " hmailserver = hMailServer\n";
- print " macosx = Mac OS X Mailserver\n";
- print " mercury32 = Mercury/32\n";
- print " uw = University of Washington's IMAP server\n";
+ print $list_supported_imap_servers;
print "\n";
print " quit = Do not change anything\n";
print "\n";