From 3cc63a789097d3848429c87258aba9643e6ef1c1 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Pialasse Date: Wed, 11 Jun 2025 18:17:28 -0400 Subject: [PATCH] * Wed Jun 11 2025 Jean-Philippe Pialasse 11.0-5.sme - open esmith using UTF8 [SME: 13036] rewrite smartmatches to grep --- .../SrvMngr/Controller/Letsencrypt-Custom.pm | 42 +++++++++---------- .../lib/SrvMngr/Controller/Letsencrypt.pm | 42 +++++++++---------- smeserver-certificates.spec | 6 ++- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm index 126d967..e01192c 100644 --- a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm +++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm @@ -7,20 +7,15 @@ # use esmith::util; use esmith::util::network; -use esmith::ConfigDB; -use esmith::HostsDB; -use esmith::AccountsDB; -use esmith::NetworksDB; -use esmith::DomainsDB; +use esmith::ConfigDB::UTF8; +use esmith::HostsDB::UTF8; +use esmith::AccountsDB::UTF8; +use esmith::NetworksDB::UTF8; +use esmith::DomainsDB::UTF8; use constant FALSE => 0; use constant TRUE => 1; -#The most common ones -#our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); -#our $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db"); -#our $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db"); -#our $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); -#our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); +our ($cdb,$adb,$ndb,$hdb,$ddb); # Validation routines - parameters for each panel sub validate_LIST { @@ -161,7 +156,7 @@ sub validate_CHECKONEDOMAIN { # Get singleton data for each panel sub get_data_for_panel_LIST { - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); + $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); # Return a hash with the fields required which will be loaded into the shared data my $c = shift; @@ -186,7 +181,7 @@ sub get_data_for_panel_PARAMS { # Return a hash with the fields required which will be loaded into the shared data my $c = shift; - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); + $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); my %ret = ( 'Data1' => 'Data for PARAMS', #Example # fields from Inputs in PARAMS $fields['PARAMS'] @@ -274,8 +269,8 @@ sub actual_DomainList { # #print $element . "\n"; # push @list, $element; # } - my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); - my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); + $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db"); + $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db"); my @data = (); my $check = $c->l('Check Domain'); @@ -288,7 +283,7 @@ sub actual_DomainList { my $checklink = "" . $check . ""; #my $checklink = "check"; - $isincert = "Y" if ($dname ~~ @list); + $isincert = "Y" if (grep(/^$dname$/, @list)); # domain push @data, @@ -303,13 +298,14 @@ sub actual_DomainList { #and hosts for my $h ($hdb->get_hosts_by_domain($dname)) { - next if $ddb->get($h->key); + my $hname = $h->key; + next if $ddb->get($hname); next unless ($h->prop('HostType') eq "Self" || $h->prop('HostType') eq "Local"); $le = $h->prop('letsencryptSSLcert') || 'disabled'; #letsencrypt configure all $isincert = "N"; - $isincert = "Y" if ($h->key ~~ @list); + $isincert = "Y" if (grep(/^$hname$/, @list)); push @data, { - Domain => "--> " . $h->key, + Domain => "--> " . $hname, $h->props, Description => $h->prop('ExternalIP') || $h->prop('InternalIP') || "", Content => $h->prop('HostType'), @@ -444,7 +440,7 @@ sub perform_PARAMS { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); + $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db"); my $db = $cdb; #maybe one of the others my $dbkey = 'letsencrypt'; @@ -485,7 +481,7 @@ sub perform_CHECKALLDOMAINS { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); + $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db"); my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; @@ -502,7 +498,7 @@ sub perform_CHECKALLENABLEDDOMAINS { my $c = shift; my $prefix_data = shift; #Data hash as parameter my $ret = ""; - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); + $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db"); my $db = $cdb; #maybe one of the others my $dbkey = 'ChangeThis'; @@ -553,7 +549,7 @@ sub get_my_ip { sub update_one_domain { my ($self, $domain) = @_; - my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); + $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db"); return "$domain not domain" unless ($ddb->get($domain) || $hdb->get($domain)); ($domain) = ($domain =~ /([\w\p{L}.]+)/); my $output = `/etc/e-smith/events/actions/letsencrypt-setdomains " " $domain `; diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm index 6e700e7..45d1937 100644 --- a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm +++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm @@ -30,11 +30,11 @@ use SrvMngr qw(theme_list init_session); use Data::Dumper; use esmith::util; use esmith::util::network; -use esmith::ConfigDB; -use esmith::AccountsDB; -use esmith::NetworksDB; -use esmith::HostsDB; -use esmith::DomainsDB; +use esmith::ConfigDB::UTF8; +use esmith::AccountsDB::UTF8; +use esmith::NetworksDB::UTF8; +use esmith::HostsDB::UTF8; +use esmith::DomainsDB::UTF8; require '/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm'; #The code that is to be added by the developer @@ -53,11 +53,11 @@ sub main { $c->app->log->info($c->log_req); #The most common ones - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); - my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db"); - my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db"); - my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); - my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); + my $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db"); + my $adb = esmith::AccountsDB::UTF8->open() || die("Couldn't open Accounts db"); + my $ndb = esmith::NetworksDB::UTF8->open() || die("Couldn't open Network db"); + my $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db"); + my $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db"); my %lets_data = (); my $title = $c->l('lets_Letsencrypt_certificate'); my $modul = ''; @@ -98,11 +98,11 @@ sub do_update { my $modul = ''; #The most common ones - you might want to comment out any not used. - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); - my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db"); - my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db"); - my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); - my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); + my $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db"); + my $adb = esmith::AccountsDB::UTF8->open() || die("Couldn't open Accounts db"); + my $ndb = esmith::NetworksDB::UTF8->open() || die("Couldn't open Network db"); + my $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db"); + my $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db"); my %lets_data = (); my $title = $c->l('lets_Letsencrypt_certificate'); @@ -295,11 +295,11 @@ sub do_display { $c->app->log->info($c->log_req); #The most common ones - you might want to comment out any not used. - my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); - my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db"); - my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db"); - my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db"); - my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db"); + my $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db"); + my $adb = esmith::AccountsDB::UTF8->open() || die("Couldn't open Accounts db"); + my $ndb = esmith::NetworksDB::UTF8->open() || die("Couldn't open Network db"); + my $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db"); + my $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db"); my %lets_data = (); my $title = $c->l('lets_Letsencrypt_certificate'); my $modul = ""; @@ -445,4 +445,4 @@ sub do_display { ); $c->render(template => "letsencrypt"); } ## end sub do_display -1; \ No newline at end of file +1; diff --git a/smeserver-certificates.spec b/smeserver-certificates.spec index 5b63484..04e5bfd 100644 --- a/smeserver-certificates.spec +++ b/smeserver-certificates.spec @@ -1,6 +1,6 @@ %define name smeserver-certificates %define version 11.0 -%define release 4 +%define release 5 Summary: This is what smeserver-certificates does. Name: %{name} Version: %{version} @@ -25,6 +25,10 @@ AutoReqProv: no %changelog +* Wed Jun 11 2025 Jean-Philippe Pialasse 11.0-5.sme +- open esmith using UTF8 [SME: 13036] + rewrite smartmatches to grep + * Thu Feb 20 2025 Brian Read 11.0-4.sme - Add local open DB in check on domain sub [SME: 12932]