smeserver-roundcube/root/etc/e-smith/db/configuration/migrate/80roundcube
Jean-Philippe Pialasse c53da784a1 * Mon Feb 17 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-7.sme
- fix roundcube not accessible after install [SME: 12928]
- avoid need to relog in case of reloading of configuration [SME: 12929]
2025-02-17 00:53:59 -05:00

31 lines
889 B
Plaintext

{
use MIME::Base64 qw(encode_base64);
my $rec = $DB->get('roundcube') || $DB->new_record('roundcube', {type => 'service'});
# migrate PublicAccess to access
if ( my $PublicAccess = $DB->get_prop_and_delete('roundcube','PublicAccess') ) {
$DB->set_prop('roundcube','access', "private");
$DB->set_prop('roundcube','access', "public") if ($PublicAccess =~ /global/);
$DB->set_prop('roundcube','status', "disabled") if ($PublicAccess == "none");
}
my $pw = $rec->prop('DbPassword');
$rec->set_prop('DbPassword', sprintf("%15.0f", int( (1000000000000000) * rand() ))) unless $pw;
my $pwd = $rec->prop('des_key');
unless ($pwd) {
open( RANDOM, "/dev/urandom" );
my $buf;
read( RANDOM, $buf, 17);
$pwd = encode_base64($buf);
chomp $pwd;
close RANDOM;
$rec->set_prop('des_key', $pwd);
}
}