diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Backup.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Backup.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Backup.pm 2024-02-18 11:04:27.013707139 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Backup.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Backup; #---------------------------------------------------------------------- -# heading : Administration +# heading : System # description : Backup or restore # navigation : 4000 4200 # Copyright (C) 2002 Mitel Networks Corporation diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm 2021-06-21 10:25:10.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Bugreport; #---------------------------------------------------------------------- -# heading : Miscellaneous +# heading : Investigation # description : Report a bug # navigation : 7000 7300 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Clamav.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Clamav.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Clamav.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Clamav.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Clamav; #---------------------------------------------------------------------- -# heading : Configuration +# heading : System # description : Antivirus (ClamAV) # navigation : 6000 6720 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Datetime.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Datetime.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Datetime.pm 2024-02-18 11:04:27.057708453 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Datetime.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Datetime; #---------------------------------------------------------------------- -# heading : Configuration +# heading : System # description : Date and time # navigation : 6000 6100 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Directory.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Directory.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Directory.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Directory.pm 2024-02-18 10:42:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Directory; #---------------------------------------------------------------------- -# heading : Configuration +# heading : User management # description : Directory # navigation : 6000 6300 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Domains.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Domains.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Domains.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Domains.pm 2024-02-18 10:50:00.000000000 +0000 @@ -1,9 +1,9 @@ package SrvMngr::Controller::Domains; #---------------------------------------------------------------------- -# heading : Configuration +# heading : Network # description : DOMAINS -# navigation : 6000 6600 +# navigation : 5000 5300 # # routes : end #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Emailsettings.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Emailsettings.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Emailsettings.pm 2021-06-21 10:25:10.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Emailsettings.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Emailsettings; #---------------------------------------------------------------------- -# heading : Configuration +# heading : System # description : E-mail # navigation : 6000 6700 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Groups.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Groups.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Groups.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Groups.pm 2024-02-18 10:42:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Groups; #---------------------------------------------------------------------- -# heading : Collaboration +# heading : User management # description : GROUPS # navigation : 2000 2200 #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Hostentries.pm 2024-02-18 10:49:00.000000000 +0000 @@ -1,9 +1,9 @@ package SrvMngr::Controller::Hostentries; #---------------------------------------------------------------------- -# heading : Configuration +# heading : Network # description : Hostnames and addresses -# navigation : 6000 6500 +# navigation : 5000 5200 #---------------------------------------------------------------------- # # routes : end diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ibays.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Ibays.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ibays.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Ibays.pm 2024-02-18 10:45:00.000000000 +0000 @@ -1,8 +1,8 @@ package SrvMngr::Controller::Ibays; #---------------------------------------------------------------------- -# heading : Collaboration -# description : Information bays +# heading : Network +# description : Shared areas (was ibays) # navigation : 2000 2500 # # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Initial.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Initial.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Initial.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Initial.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Initial; #---------------------------------------------------------------------- -# heading : None +# heading : Current User # description : Home # navigation : 1000 1000 # menu : N diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Localnetworks.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Localnetworks.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Localnetworks.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Localnetworks.pm 2024-02-18 10:55:00.000000000 +0000 @@ -1,9 +1,9 @@ package SrvMngr::Controller::Localnetworks; #---------------------------------------------------------------------- -# heading : Security +# heading : Network # description : Local networks -# navigation : 5000 5300 +# navigation : 5000 5600 # # routes : end #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Logout.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Logout.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Logout.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Logout.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Logout; #---------------------------------------------------------------------- -# heading : None +# heading : Current User # description : Logout # navigation : 1000 1900 # menu : U diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Manual.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Manual.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Manual.pm 2021-06-21 10:25:10.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Manual.pm 2024-02-18 10:37:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Manual; #---------------------------------------------------------------------- -# heading : None +# heading : Support # description : Online manual # navigation : 1000 1100 # menu : N diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Portforwarding.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Portforwarding.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Portforwarding.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Portforwarding.pm 2024-02-18 10:57:00.000000000 +0000 @@ -1,9 +1,9 @@ package SrvMngr::Controller::Portforwarding; #---------------------------------------------------------------------- -# heading : Security +# heading : Network # description : Port forwarding -# navigation : 5000 5400 +# navigation : 6000 6200 # # routes : end #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Printers.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Printers.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Printers.pm 2024-02-18 11:04:27.081709170 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Printers.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Printers; #---------------------------------------------------------------------- -# heading : Configuration +# heading : System # description : Printers # navigation : 6000 6400 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Proxy.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Proxy.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Proxy.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Proxy.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Proxy; #---------------------------------------------------------------------- -# heading : Security +# heading : System # description : Proxy settings # navigation : 5000 5500 #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Pseudonyms.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Pseudonyms.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Pseudonyms.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Pseudonyms.pm 2024-02-18 10:42:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Pseudonyms; #---------------------------------------------------------------------- -# heading : Collaboration +# heading : User management # description : Pseudonyms # navigation : 2000 2400 #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Qmailanalog.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Qmailanalog.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Qmailanalog.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Qmailanalog.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Qmailanalog; #---------------------------------------------------------------------- -# heading : Administration +# heading : Investigation # description : Mail log file analysis # navigation : 4000 4500 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Quota.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Quota.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Quota.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Quota.pm 2024-02-18 10:42:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Quota; #---------------------------------------------------------------------- -# heading : Collaboration +# heading : User management # description : Quotas # navigation : 2000 2300 #---------------------------------------------------------------------- @@ -190,4 +190,4 @@ } -1 \ No newline at end of file +1 diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Reboot.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Reboot.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Reboot.pm 2021-06-21 10:25:10.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Reboot.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Reboot; #---------------------------------------------------------------------- -# heading : Administration +# heading : System # description : Reboot or shutdown # navigation : 4000 4700 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Remoteaccess.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Remoteaccess.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Remoteaccess.pm 2021-06-21 10:25:10.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Remoteaccess.pm 2024-02-18 10:53:00.000000000 +0000 @@ -1,9 +1,9 @@ package SrvMngr::Controller::Remoteaccess; #---------------------------------------------------------------------- -# heading : Security +# heading : Network # description : Remote access -# navigation : 5000 5200 +# navigation : 5000 5400 #---------------------------------------------------------------------- # # routes : end diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Review.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Review.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Review.pm 2024-02-18 11:04:27.007706960 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Review.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Review; #---------------------------------------------------------------------- -# heading : None +# heading : Investigation # description : Review configuration # navigation : 1000 1200 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Support.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Support.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Support.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Support.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Support; #---------------------------------------------------------------------- -# heading : None +# heading : Support # description : Support and licensing # navigation : 1000 1200 # menu : N @@ -41,4 +41,4 @@ }; -1; \ No newline at end of file +1; diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Useraccounts.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Useraccounts.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Useraccounts.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Useraccounts.pm 2024-02-18 10:39:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Useraccounts; #---------------------------------------------------------------------- -# heading : Collaboration +# heading : User management # description : Users # navigation : 2000 2100 #---------------------------------------------------------------------- diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Userpassword.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Userpassword.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Userpassword.pm 2024-02-18 11:04:27.048708184 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Userpassword.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Userpassword; #---------------------------------------------------------------------- -# heading : None +# heading : User management # description : User password # navigation : 1000 1250 # menu : U diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm 1970-01-01 01:00:00.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm 2024-02-18 10:43:00.000000000 +0000 @@ -0,0 +1,384 @@ +package SrvMngr::Controller::Uservacations; +#---------------------------------------------------------------------- +# heading : User management +# description : User vacations +# navigation : 3000 3150 +# +# name : Uservacationsget, method : get, url : /uservacations, ctlact : Uservacations#main +# name : Uservacationspost,method : post, url : /Uservacations, ctlact : Uservacations#do_display +# name : Uservacations1, method : get, url : /Uservacations1, ctlact : Uservacations#do_display +# name : Uservacations2, method : post, url : /Uservacations2, ctlact : Uservacations#do_display +# routes : end +#---------------------------------------------------------------------- + +use strict; +use warnings; +use Mojo::Base 'Mojolicious::Controller'; + +#use DateTime; #Not part of SME10 mix +use POSIX; + +use Locale::gettext; +use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session); + +use Data::Dumper; +use esmith::util; +use esmith::HostsDB; +use esmith::AccountsDB; + +our $db = esmith::ConfigDB->open(); +our $adb = esmith::AccountsDB->open(); + +our $PanelUser = $ENV{'REMOTE_USER'} ||''; +$PanelUser = $1 if ($PanelUser =~ /^([a-z][\.\-a-z0-9]*)$/); + +our %delegatedVacations; + +use constant FALSE => 0; +use constant TRUE => 1; + +sub main { + + my $c = shift; + $c->app->log->info( $c->log_req ); + + my %vac_datas = (); + my $title = $c->l('vac_FORM_TITLE'); + my $modul = ''; + + $vac_datas{trt} = 'LIST'; + + my @vacations = get_vacation_table($c); + my $empty = (scalar @vacations == 0); + + $vac_datas{"first"} = 'vac_MODIFY_DESCRIPTION'; + + $c->stash( + title => $title, + modul => $modul, + vac_datas => \%vac_datas, + vacations =>\@vacations, + empty => $empty + ); + $c->render( template => 'uservacations' ); +} + +sub do_display { + + my $c = shift; + $c->app->log->info( $c->log_req ); + + my $rt = $c->current_route; + my $trt = ( $c->param('trt') || 'LIST' ); + + $trt = 'ADD' if ( $rt eq 'Uservacations1' ); + $trt = 'ADD1' if ( $rt eq 'Uservacations2' ); + + my %vac_datas = (); + my $title = $c->l('vac_FORM_TITLE'); + my $modul = ''; + + + if ( $trt eq 'ADD' ) { + # Add or change a vacation message - called from the list panel + # Get the data and pass it across. + my $account = $c->param("account"); + my $user = $adb->get($account); + my $username = $user->prop("FirstName")." ".$user->prop("LastName"); + my $EmailVacation = $user->prop('EmailVacation') || ''; + my $EmailVacationFrom = $user->prop('EmailVacationFrom') || ''; + my $EmailVacationTo = $user->prop('EmailVacationTo') || ''; + my $VacText = get_vacation_text($c); + $c->stash(account=>$account, + username=>$username, + EmailVacation=>$EmailVacation, + EmailVacationFrom=>$EmailVacationFrom, + EmailVacationTo=>$EmailVacationTo, + VacText=>$VacText + ); + } + + if ( $trt eq 'ADD1' ) { + #Add or edit vacation message. + my $ret = add_vac_message($c); + #Return to list page if success + if ($ret eq "OK") { + $trt = "LIST"; + $vac_datas{success} = "vac_SUCCESS"; + + } else { + my $account = $c->param("account"); + my $user = $adb->get($account); + my $username = $user->prop("FirstName")." ".$user->prop("LastName"); + my $EmailVacationFrom = $c->param('EmailVacationFrom') || ''; + my $EmailVacationTo = $c->param('EmailVacationTo') || ''; + my $EmailVacation = $c->param('EmailVacation') || ''; + my $VacText = $c->param("VacText"); + $c->stash(account=>$account, + username=>$username, + EmailVacation=>$EmailVacation, + EmailVacationFrom=>$EmailVacationFrom, + EmailVacationTo=>$EmailVacationTo, + VacText=>$VacText + ); + #Error - return to Add page + $trt = "ADD"; + $vac_datas{error} = $ret; + } + } + + if ( $trt eq 'LIST' ) { + + #List all the users and vacation message details. + my @vacations = get_vacation_table($c); + my $empty = (scalar @vacations == 0); + $c->stash( + empty => $empty, + vacations =>\@vacations + ); + } + + + $vac_datas{'trt'} = $trt; + $c->stash( title => $title, modul => $modul, vac_datas => \%vac_datas ); + $c->render( template => 'uservacations' ); +} + +sub user_accounts_exist +{ + my $q = shift; + #return scalar $adb->users; + if (scalar $adb->users) + { return $q->l('vac_DESCRIPTION'); } +} + +sub get_vacation_table +{ + my $self = shift; + +#We want to retrieve granted group from DB, and retrieve users of groups + my $record = $adb->get($PanelUser); + my $dg; + if ($record) {$dg=$record->prop('delegatedVacations')||'';} + else {$dg = '';} + $dg =~ s/ //g; + my @g = split(/,/, $dg); + my @visiblemembers = (); + + foreach my $g (@g) { + my $members = $adb->get_prop("$g",'Members'); + next unless defined $members; + $members =~ s/ //g; + my @members = split(/,/, $members); + push @visiblemembers , @members ; + } + + foreach my $k ( @visiblemembers ) + { + $delegatedVacations{$k}=1; + } + + + my @users = $adb->users; + return () if (@users == 0); ##$self->l("ACCOUNT_USER_NONE") + return () if (@visiblemembers == 0 && $dg ne '');#; #$self->l("NO_USERS_IN_GRANTED_GROUPS") + + my @data = (); + + for my $user (@users) + { + next if %delegatedVacations and not $delegatedVacations{$user->key}; + # make it clearer which uses have vacation + my $EmailVacation = $user->prop('EmailVacation') || ''; + my $EmailVacationFrom = $user->prop('EmailVacationFrom') || ''; + my $EmailVacationTo = $user->prop('EmailVacationTo') || ''; + my $status = $user->prop('EmailVacation') || ''; + if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; } + + push @data, + { User => $user->key, + FullName => $user->prop('FirstName') . " " .$user->prop('LastName'), + status => $self->l($status), + EmailVacation => $EmailVacation, + EmailVacationFrom => showDate($EmailVacationFrom), + EmailVacationTo => showDate($EmailVacationTo), + Modify => $self->l('vac_MODIFY'), + } + } + return @data; +} + +sub showDate +{ + my $strDate = shift; + my ($Year,$Month,$Day) = ($strDate =~ /(\d{4})(\d{2})(\d{2})/); + #my $Unix = mktime(0,0,0,$Day,$Month,$Year); + return "$Year-$Month-$Day"; +} + + +sub modify_link +{ + my ($data_item, $row, $field) = @_; + + return "uservacations?" . + join("&", + "page=0", + "page_stack=", + "Next=Next", + "User=" . $row->{User}, + "FullName=" . $row->{FullName}, + "EmailVacation=" . $row->{EmailVacation}, + "EmailVacationFrom=" . $row->{EmailVacationFrom}, + "EmailVacationTo=" . $row->{EmailVacationTo}, + "wherenext=VACATION_PAGE_MODIFY"); +} + +# this formats the text to display on screen +sub get_vacation_text +{ + my $q = shift; + my $domain = $db->get_value('DomainName'); + my $user = $q->param('account'); + + my $fullname = $adb->get_prop($user, "FirstName") . " " . + $adb->get_prop($user, "LastName"); + + my $vfile = "/home/e-smith/files/users/$user/.vacation.msg"; + + my $from = $q->l('vac_FROM'); + my $Subject = $q->l('vac_SUBJECT'); + my $away = $q->l('vac_AWAY_FROM_MAIL'); + my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER'); + + #my $ExistingMessage = "$from $fullname <\;$user\@$domain>\;\n"."$Subject $return\n". + # "\n$away\n"."\n--\n$fullname"; + + my $ExistingMessage = "$from $fullname \<$user\@$domain\>\n"."$Subject $return\n". + "\n$away\n"."\n--\n$fullname"; + + + # if exists and is not empty + if (( -e $vfile ) && (! -z $vfile )) + { + open (VACATION, "<$vfile") + or die "Error: Could not open file: $vfile\n"; + my @vacationTemp; + + #reformat so email address isn't hidden inside < > + while () + { + $_ =~ s//>\;/; + push (@vacationTemp, $_); + } + + $ExistingMessage = join ("", @vacationTemp); + + close VACATION; + } + return $ExistingMessage; +} + +# saves the text to .vacation.msg +sub add_vac_message +{ + my $q = shift; + + my $domain = $db->get_value('DomainName'); + my $user = $q->param('account'); + + my $EmailVacation = $q->param('EmailVacation')||"no"; + #die($EmailVacation); + #if ($EmailVacation eq "yes") {$EmailVacation = "yes";} else {$EmailVacation = "no";} + + #Decode To and FROM to standard format - comes over in html5 iso format yyyy-mm-dd + my $EmailVacationFrom = trim($q->param('EmailVacationFrom')); + my ($fromYear,$fromMonth,$fromDay) = ($EmailVacationFrom =~ /(\d{4})-(\d{2})-(\d{2})/); + $EmailVacationFrom = $fromYear.$fromMonth.$fromDay; + if ($EmailVacationFrom !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_FROM_DATE_INCORRECT";} + my $EmailVacationTo = trim($q->param('EmailVacationTo')); + my ($toYear,$toMonth,$toDay) = ($EmailVacationTo =~ /(\d{4})-(\d{2})-(\d{2})/); + $EmailVacationTo = $toYear.$toMonth.$toDay; +# $EmailVacationTo =~ s/-//g; #Just take out "-". + if ($EmailVacationTo !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_TO_DATE_INCORRECT";} + #Check not the same or From follows To. + if ($EmailVacationTo ne "" and $EmailVacationTo eq $EmailVacationFrom) {return "vac_DATES_THE_SAME";} + my $UnixFrom = mktime(0,0,0,$fromDay,$fromMonth,$fromYear); + my $UnixTo = mktime(0,0,0,$toDay,$toMonth,$toYear); + if ($UnixTo < $UnixFrom) {return "vac_TO_DATE_MUST_BE_LATER";} + + + my $new_message = $q->param('VacText'); + my $vfile = "/home/e-smith/files/users/$user/.vacation.msg"; + + my $fullname = $adb->get_prop($user, "FirstName") . " " . + $adb->get_prop($user, "LastName"); + + my $from = 'From:'; + my $away = $q->l('vac_AWAY_FROM_MAIL'); + my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER'); + + my $vacation_text = "$from $fullname \<$user\@$domain\>\n"."Subject: $return\n". + "\n$away \n"."\n--\n$fullname"; + + my $reset = $vacation_text; + + # if exists and is not empty + if (( -e $vfile ) && (! -z $vfile )) + { + open (VACATION, "<$vfile") + or die "Error: Could not open file: $vfile\n"; + my @vacationTemp = ; + $vacation_text = join ("", @vacationTemp); + + close VACATION; + } + + chomp $new_message; + + # reset msg to default, + if ($new_message =~ /reset/) + { $vacation_text = $reset; } + else + { + #or save new_message + unless ($new_message eq "") + { $vacation_text = $new_message; } + } + + # Strip out DOS Carriage Returns (CR) + $vacation_text =~ s/\r//g; + + unlink $vfile; + open (VACATION, ">$vfile") + or die ("Error opening vacation message.\n"); + + print VACATION "$vacation_text"; + close VACATION; + + esmith::util::chownFile($user, $user, + "/home/e-smith/files/users/$user/.vacation.msg"); + + $adb->set_prop($user, 'EmailVacation', $EmailVacation); + $adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom); + $adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo); + + #the first is more correct but is slower + #system ("/sbin/e-smith/signal-event", "email-update", $user) == 0 + system ("/etc/e-smith/events/actions/qmail-update-user event $user") == 0 + or die ("Error occurred updating .qmail\n"); + + if (($EmailVacation eq 'no') && ( -e "/home/e-smith/files/users/$user/.vacation")) + { + system ("/bin/rm /home/e-smith/files/users/$user/.vacation") == 0 + or die ("Error resetting vacation db.\n"); + } + + return "OK"; +} + +sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s }; + +1; diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Viewlogfiles.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Viewlogfiles.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Viewlogfiles.pm 2021-06-21 10:25:10.000000000 +0100 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Viewlogfiles.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Viewlogfiles; #---------------------------------------------------------------------- -# heading : Administration +# heading : Investigation # description : View log files # navigation : 4000 4400 # diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Workgroup.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Workgroup.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Workgroup.pm 2020-11-19 07:53:26.000000000 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Workgroup.pm 2024-02-18 10:47:00.000000000 +0000 @@ -1,8 +1,8 @@ package SrvMngr::Controller::Workgroup; #---------------------------------------------------------------------- -# heading : Configuration -# description : Workgroup +# heading : Network +# description : Samba workgroup # navigation : 6000 6200 # # routes : end diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm 2024-02-18 11:04:27.067708751 +0000 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm 2024-02-18 11:02:00.000000000 +0000 @@ -1,7 +1,7 @@ package SrvMngr::Controller::Yum; #---------------------------------------------------------------------- -# heading : Configuration +# heading : System # description : Software installer # navigation : 4000 4200 #