From 5c227a2032a4949db015dba04a013a146df2d7b3 Mon Sep 17 00:00:00 2001 From: Brian Read Date: Mon, 3 Nov 2025 11:34:55 +0000 Subject: [PATCH] * Mon Nov 03 2025 Brian Read 11.0.0-125.sme - Arrange that Macaddress, InternalIP and comment cleared out when host entry switched to self [SME: 13207] --- .../lib/SrvMngr/Controller/Hostentries.pm | 43 ++++++++++++++----- smeserver-manager.spec | 5 ++- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm index 9e44278..b8caa07 100644 --- a/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm +++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm @@ -116,15 +116,38 @@ sub do_update { $ndb = esmith::NetworksDB::UTF8->open || die "Couldn't open networks db"; my $notif = ''; my $result = ''; - $hos_datas{'name'} = lc $c->param('Name'); - $hos_datas{'domain'} = lc $c->param('Domain'); - $hos_datas{'hostname'} = $c->param('Hostname'); - $hos_datas{'comment'} = $c->param('Comment'); - $hos_datas{'hosttype'} = $c->param('Hosttype'); - $hos_datas{'internalip'} = $c->param('Internalip'); - $hos_datas{'macaddress'} = $c->param('Macaddress'); - $hos_datas{'externalip'} = $c->param('Externalip'); - my $hostname = "$hos_datas{'name'}.$hos_datas{'domain'}"; + # Fetch parameters with forced scalar context and default empty string if undefined + $hos_datas{'name'} = lc(scalar $c->param('Name') // ''); + $hos_datas{'domain'} = lc(scalar $c->param('Domain') // ''); + $hos_datas{'hostname'} = scalar $c->param('Hostname') // ''; + $hos_datas{'comment'} = scalar $c->param('Comment') // ''; + $hos_datas{'hosttype'} = scalar $c->param('Hosttype') // ''; + $hos_datas{'internalip'} = scalar $c->param('Internalip') // ''; + $hos_datas{'externalip'} = scalar $c->param('Externalip') // ''; + + my $hostname = "$hos_datas{'name'}.$hos_datas{'domain'}"; + + + if (my $hostrec = $hdb->get($hostname)) { + my $hosttype = $hostrec->prop('HostType') // ''; + #$c->app->log->info("$hosttype $hos_datas{'hosttype'} $hos_datas{'comment'} $hostrec->prop('Comment')"); + # Clear comment if hosttype changes to 'self' and comment was not intentionally changed + if ($hosttype ne 'Self' + && $hos_datas{'hosttype'} eq 'Self' + && $hos_datas{'comment'} eq $hostrec->prop('Comment')) { + $hos_datas{'comment'} = ''; + } + } + + # Clear MAC address if hosttype is 'self', otherwise get from param + if ($hos_datas{'hosttype'} eq 'Self') { + $hos_datas{'macaddress'} = ''; + $hos_datas{'internalip'} = ''; + #$c->app->log->info("yes $hos_datas{'hosttype'} $hos_datas{'macaddress'}"); + } else { + $hos_datas{'macaddress'} = scalar $c->param('Macaddress') // ''; + #$c->app->log->info("no $hos_datas{'hosttype'} $hos_datas{'macaddress'}"); + } if ($trt eq 'ADD') { $hos_datas{'hostname'} = $hostname; @@ -521,4 +544,4 @@ sub must_be_local { # Not OK. The IP is not on any of our local networks. return $c->l('hos_ERR_IP_NOT_LOCAL'); } ## end sub must_be_local -1; +1; \ No newline at end of file diff --git a/smeserver-manager.spec b/smeserver-manager.spec index e4038db..8d45bb9 100644 --- a/smeserver-manager.spec +++ b/smeserver-manager.spec @@ -2,7 +2,7 @@ Summary: Sme Server Configuration : Manager 2 %define name smeserver-manager Name: %{name} %define version 11.0.0 -%define release 124 +%define release 125 Version: %{version} Release: %{release}%{?dist} License: GPL @@ -147,6 +147,9 @@ true %defattr(-,root,root) %changelog +* Mon Nov 03 2025 Brian Read 11.0.0-125.sme +- Arrange that Macaddress, InternalIP and comment cleared out when host entry switched to self [SME: 13207] + * Fri Oct 24 2025 Brian Read 11.0.0-124.sme - Adjust CSS for logout button to remove overlap of border and rounding [SME: 13247]