* Mon Dec 30 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-7.sme

- fix CGI::param called in list context [SME: 12789]
- update webmail settings for roundcube [SME: 12743]
- remove requires runit [SME: 12566]
- move action pseudonym-cleanup and migrate 10AdminEmail from smeserver-mini-qmail [SME: 12808]
This commit is contained in:
2024-12-30 22:09:15 -05:00
parent f4311551ca
commit 6dd24d9479
6 changed files with 80 additions and 19 deletions

View File

@@ -0,0 +1,24 @@
{
my $conf = esmith::ConfigDB->open;
return unless $conf;
my $admin_email = $conf->get_value_and_delete('AdminEmail');
return unless defined $admin_email;
my $admin = $DB->get('admin') ||
$DB->new_record('admin', {type => 'system'});
if ($admin_email)
{
$admin->merge_props(
EmailForward => 'forward',
ForwardAddress => $admin_email,
);
}
else
{
$admin->merge_props(
EmailForward => 'local',
ForwardAddress => '',
);
}
}

View File

@@ -0,0 +1,22 @@
#!/usr/bin/perl -w
use strict;
use esmith::AccountsDB;
use esmith::event;
my $accounts = esmith::AccountsDB->open() or
die "Unable to open accounts db: $!";
my ($self, $account) = @ARGV;
# Find all "pseudonyms" entries in the e-smith accounts database and
# if the pseudonyms has an unexisting Account associated we change
# it to user "admin".
foreach my $pseudo ( $accounts->pseudonyms ) {
unless ( $accounts->get($pseudo->prop('Account')) ) {
$pseudo->set_prop( 'Account', 'admin' );
print "orphaned pseudonym " . $pseudo->key. " has been associated to admin account"
}
}

View File

@@ -336,23 +336,20 @@ sub change_settings_access
$db->set_prop('php',"status", "enabled" );
$db->set_prop('mariadb',"status", "enabled" );
$db->set_prop('imp',"status", 'enabled' );
$db->set_prop('horde',"status", 'enabled' );
$db->set_prop('horde',"access", "public" );
$db->set_prop('horde',"HttpsOnly", "yes" );
$cdb->set_prop('roundcube',"status", 'enabled' );
$cdb->set_prop('roundcube',"access", "public" );
}
elsif ( $webmail eq "localnetworkSSL" || $webmail eq "localnetwork" ) {
$db->set_prop('php',"status", "enabled" );
$db->set_prop('mariadb',"status", "enabled" );
$db->set_prop('imp',"status", 'enabled' );
$db->set_prop('horde',"status", 'enabled' );
$db->set_prop('horde',"access", "private" );
$db->set_prop('horde',"HttpsOnly", "yes" );
$cdb->set_prop('roundcube',"status", 'enabled' );
$cdb->set_prop('roundcube',"access", "private" );
}
else {
$db->set_prop('imp',"status", 'disabled' );
$db->set_prop('horde',"status", 'disabled' );
$cdb->set_prop('roundcube',"status", 'disabled' );
}
unless ( system( "/sbin/e-smith/signal-event", "email-update" ) == 0 )
@@ -558,19 +555,16 @@ sub get_current_webmail_status {
# determine status of webmail
my $WebmailStatus = "disabled";
my $IMPStatus = $db->get_prop('imp', 'status') || 'disabled';
my $HordeStatus = $db->get_prop('horde', 'status') || 'disabled';
my $RoundcubeStatus = $cdb->get_prop('roundcube', 'status') || 'disabled';
my $MysqlStatus = $db->get_prop('mariadb', 'status') || 'disabled';
my $PHPStatus = $db->get_prop('php', 'status') || 'disabled';
my $Networkaccess = $db->get_prop('horde','access') || 'disabled';
my $Networkaccess = $db->get_prop('roundcube','access') || 'disabled';
# all four components must be on for webmail to be working
if ( ( $IMPStatus eq "enabled" )
&& ( $HordeStatus eq "enabled" )
if ( ( $RoundcubeStatus eq "enabled" )
&& ( $MysqlStatus eq "enabled" )
&& ( $PHPStatus eq "enabled" )
&& ( $Networkaccess eq "public"))
@@ -578,8 +572,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" ))

View File

@@ -364,7 +364,7 @@ sub print_begin_page {
my $key = $account->key();
push (@emailPseudonyms, $key) if ($type eq 'pseudonym');
}
my $urlprefix = $fm->build_cgi_params(uri_unescape($q->param('pseudonym')));
my $urlprefix = $fm->build_cgi_params(uri_unescape(scalar $q->param('pseudonym')));
print " <tr>\n <td colspan='2'>\n";
print $q->p($q->a({href => "pseudonyms?$urlprefix&wherenext=Create", -class => "button-like"},
$fm->localise("CLICK_TO_CREATE")));