|
|
|
@@ -395,19 +395,16 @@ sub get_current_webmail_status {
|
|
|
|
|
# determine status of webmail
|
|
|
|
|
my $WebmailStatus = "disabled";
|
|
|
|
|
|
|
|
|
|
my $IMPStatus = $cdb->get_prop('imp', 'status') || 'disabled';
|
|
|
|
|
|
|
|
|
|
my $HordeStatus = $cdb->get_prop('horde', 'status') || 'disabled';
|
|
|
|
|
my $RoundcubeStatus = $cdb->get_prop('roundcube', 'status') || 'disabled';
|
|
|
|
|
|
|
|
|
|
my $MysqlStatus = $cdb->get_prop('mariadb', 'status') || 'disabled';
|
|
|
|
|
|
|
|
|
|
my $PHPStatus = $cdb->get_prop('php', 'status') || 'disabled';
|
|
|
|
|
my $PHPStatus = $cdb->get_prop('php81', 'status') || 'disabled';
|
|
|
|
|
|
|
|
|
|
my $Networkaccess = $cdb->get_prop('horde','access') || 'disabled';
|
|
|
|
|
my $Networkaccess = $cdb->get_prop('roundcube','access') || 'disabled';
|
|
|
|
|
|
|
|
|
|
# all four components must be on for webmail to be working
|
|
|
|
|
if ( ( $IMPStatus eq "enabled" )
|
|
|
|
|
&& ( $HordeStatus eq "enabled" )
|
|
|
|
|
# all 3 components must be on for webmail to be working
|
|
|
|
|
if ( ( $RoundcubeStatus eq "enabled" )
|
|
|
|
|
&& ( $MysqlStatus eq "enabled" )
|
|
|
|
|
&& ( $PHPStatus eq "enabled" )
|
|
|
|
|
&& ( $Networkaccess eq "public"))
|
|
|
|
@@ -415,8 +412,7 @@ sub get_current_webmail_status {
|
|
|
|
|
$WebmailStatus = "enabledSSL";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elsif ( ( $IMPStatus eq "enabled" )
|
|
|
|
|
&& ( $HordeStatus eq "enabled" )
|
|
|
|
|
elsif ( ( $RoundcubeStatus eq "enabled" )
|
|
|
|
|
&& ( $MysqlStatus eq "enabled" )
|
|
|
|
|
&& ( $PHPStatus eq "enabled" )
|
|
|
|
|
&& ( $Networkaccess eq "private" ))
|
|
|
|
@@ -507,8 +503,7 @@ sub get_webmail_opt {
|
|
|
|
|
|
|
|
|
|
return [[ $c->l('DISABLED') => 'disabled' ],
|
|
|
|
|
[ $c->l('mai_ENABLED_SECURE_ONLY') => 'enabledSSL' ],
|
|
|
|
|
[ $c->l('mai_ONLY_LOCAL_NETWORK_SSL') => 'localnetworkSSL' ],
|
|
|
|
|
[ $c->l('mai_ENABLED_BOTH') => 'public' ]];
|
|
|
|
|
[ $c->l('mai_ONLY_LOCAL_NETWORK_SSL') => 'localnetworkSSL' ]];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -519,10 +514,10 @@ sub get_webmail_options {
|
|
|
|
|
|
|
|
|
|
my %options = (
|
|
|
|
|
disabled => 'DISABLED',
|
|
|
|
|
enabledSSL => 'mai_ENABLED_SECURE_ONLY',
|
|
|
|
|
localnetworkSSL => 'mai_ONLY_LOCAL_NETWORK_SSL' );
|
|
|
|
|
enabledSSL => 'mai_ENABLED_SECURE_ONLY',
|
|
|
|
|
localnetworkSSL => 'mai_ONLY_LOCAL_NETWORK_SSL')
|
|
|
|
|
|
|
|
|
|
\%options;
|
|
|
|
|
return \%options;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -658,6 +653,7 @@ sub display_multidrop {
|
|
|
|
|
sub change_settings_reception {
|
|
|
|
|
|
|
|
|
|
my $c = shift;
|
|
|
|
|
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
|
|
|
|
|
|
|
|
|
my $FetchmailMethod = ( $c->param('FetchmailMethod') || 'standard' );
|
|
|
|
|
|
|
|
|
@@ -724,6 +720,7 @@ sub change_settings_reception {
|
|
|
|
|
sub change_settings_delivery {
|
|
|
|
|
|
|
|
|
|
my ($c) = shift;
|
|
|
|
|
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
|
|
|
|
|
|
|
|
|
my $EmailUnknownUser = ($c->param('EmailUnknownUser') || 'returntosender');
|
|
|
|
|
|
|
|
|
@@ -752,7 +749,8 @@ sub change_settings_delivery {
|
|
|
|
|
sub change_settings_access {
|
|
|
|
|
|
|
|
|
|
my $c = shift;
|
|
|
|
|
|
|
|
|
|
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
|
|
|
|
|
|
|
|
|
my $pop3Access = ($c->param('POPAccess') || 'private');
|
|
|
|
|
if ($pop3Access eq 'disabled') {
|
|
|
|
|
$cdb->set_prop('pop3', "status", "disabled" );
|
|
|
|
@@ -802,38 +800,22 @@ sub change_settings_access {
|
|
|
|
|
#------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
my $webmail = ($c->param('WebMail') || 'disabled');
|
|
|
|
|
if ( $webmail eq "enabled" ) {
|
|
|
|
|
$cdb->set_prop('php', "status", $webmail );
|
|
|
|
|
$cdb->set_prop('mariadb',"status", $webmail );
|
|
|
|
|
$cdb->set_prop('imp',"status", $webmail );
|
|
|
|
|
$cdb->set_prop('horde', "status", $webmail );
|
|
|
|
|
$cdb->set_prop('imp',"access", "full" );
|
|
|
|
|
$cdb->set_prop('horde',"access", "public" );
|
|
|
|
|
$cdb->set_prop('horde',"HttpsOnly", "no" );
|
|
|
|
|
}
|
|
|
|
|
elsif ( $webmail eq "enabledSSL" ) {
|
|
|
|
|
$cdb->set_prop('php',"status", "enabled" );
|
|
|
|
|
if ( $webmail eq "enabledSSL" ) {
|
|
|
|
|
$cdb->set_prop('php81',"status", "enabled" );
|
|
|
|
|
$cdb->set_prop('mariadb',"status", "enabled" );
|
|
|
|
|
$cdb->set_prop('imp',"status", 'enabled' );
|
|
|
|
|
$cdb->set_prop('horde',"status", 'enabled' );
|
|
|
|
|
$cdb->set_prop('imp',"access", "SSL" );
|
|
|
|
|
$cdb->set_prop('horde',"access", "public" );
|
|
|
|
|
$cdb->set_prop('horde',"HttpsOnly", "yes" );
|
|
|
|
|
$cdb->set_prop('roundcube',"status", 'enabled' );
|
|
|
|
|
$cdb->set_prop('roundcube',"access", "public" );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elsif ( $webmail eq "localnetworkSSL" ) {
|
|
|
|
|
$cdb->set_prop('php',"status", "enabled" );
|
|
|
|
|
$cdb->set_prop('php81',"status", "enabled" );
|
|
|
|
|
$cdb->set_prop('mariadb',"status", "enabled" );
|
|
|
|
|
$cdb->set_prop('imp',"status", 'enabled' );
|
|
|
|
|
$cdb->set_prop('horde',"status", 'enabled' );
|
|
|
|
|
$cdb->set_prop('imp',"access", "SSL" );
|
|
|
|
|
$cdb->set_prop('horde',"access", "private" );
|
|
|
|
|
$cdb->set_prop('horde',"HttpsOnly", "yes" );
|
|
|
|
|
$cdb->set_prop('roundcube',"status", 'enabled' );
|
|
|
|
|
$cdb->set_prop('roundcube',"access", "private" );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
$cdb->set_prop('imp',"status", 'disabled' );
|
|
|
|
|
$cdb->set_prop('horde',"status", 'disabled' );
|
|
|
|
|
$cdb->set_prop('roundcube',"status", 'disabled' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
unless ( system( "/sbin/e-smith/signal-event", "email-update" ) == 0 ) {
|
|
|
|
@@ -847,6 +829,8 @@ sub change_settings_access {
|
|
|
|
|
sub change_settings_filtering {
|
|
|
|
|
|
|
|
|
|
my $c = shift;
|
|
|
|
|
$cdb = esmith::ConfigDB->open || die "Couldn't open config db";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my $virus_status = ( $c->param('VirusStatus') || 'disabled' );
|
|
|
|
|
$cdb->set_prop("qpsmtpd", 'VirusScan', $virus_status);
|
|
|
|
|