diff -urN smeserver-manager-0.1.0.old/createlinks smeserver-manager-0.1.0/createlinks --- smeserver-manager-0.1.0.old/createlinks 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/createlinks 2020-01-27 12:44:37.876000000 +0400 @@ -7,4 +7,10 @@ #-------------------------------------------------- my $panel = "manager2"; -# panel_link("wbl", $panel); +# links to add + +# templates to expand +for my $event ( qw( manager2-modify bootstrap-console-save console-save ) ) +{ + templates2events("/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf", $event); +} diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/db/configuration/defaults/manager2/status smeserver-manager-0.1.0/root/etc/e-smith/db/configuration/defaults/manager2/status --- smeserver-manager-0.1.0.old/root/etc/e-smith/db/configuration/defaults/manager2/status 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/db/configuration/defaults/manager2/status 2020-01-26 23:10:10.000000000 +0400 @@ -0,0 +1,2 @@ +enabled + diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/db/configuration/defaults/manager2/type smeserver-manager-0.1.0/root/etc/e-smith/db/configuration/defaults/manager2/type --- smeserver-manager-0.1.0.old/root/etc/e-smith/db/configuration/defaults/manager2/type 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/db/configuration/defaults/manager2/type 2020-01-26 23:10:36.000000000 +0400 @@ -0,0 +1,2 @@ +service + diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/db/configuration/migrate/manager2 smeserver-manager-0.1.0/root/etc/e-smith/db/configuration/migrate/manager2 --- smeserver-manager-0.1.0.old/root/etc/e-smith/db/configuration/migrate/manager2 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/db/configuration/migrate/manager2 2020-01-27 11:33:38.489000000 +0400 @@ -0,0 +1,38 @@ +{ + sub gen_pwd { + use MIME::Base64 qw(encode_base64); + my $p = "not set due to error"; + if ( open( RANDOM, "/dev/urandom" ) ){ + my $buf; + # 57 bytes is a full line of Base64 coding, and contains + # 456 bits of randomness - given a perfectly random /dev/random + if ( read( RANDOM, $buf, 57 ) != 57 ){ + warn("Short read from /dev/random: $!"); + } + else{ + $p = encode_base64($buf); + chomp $p; + } + close RANDOM; + } + else{ + warn "Could not open /dev/urandom: $!"; + } + return $p; + } + + my $rec = $DB->get('manager2') + || $DB->new_record('manager2', {type => 'configuration'}); + + my $pwd = $rec->prop('Secrets'); + if (not $pwd or length($pwd) < 57){ + my $pwd = gen_pwd(); + $rec->set_prop('Secrets', $pwd); + } + + my $theme = $rec->prop('Theme'); + if (not $theme){ + $rec->set_prop('Theme', 'default'); + } + +} diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/05Begin smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/05Begin --- smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/05Begin 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/05Begin 2020-01-25 23:10:19.000000000 +0400 @@ -0,0 +1,3 @@ +\{ +# configuration file for Mojolicious Server-Manager2 application +# diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/10Secrets smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/10Secrets --- smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/10Secrets 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/10Secrets 2020-01-26 23:17:12.000000000 +0400 @@ -0,0 +1,8 @@ +{ + my @secrets = split /,/, $manager2{'Secrets'}; + $OUT .= " secrets => ['"; + if ( $secrets[0] ) { $OUT .= "$secrets[0]'"; } + if ( $secrets[1] ) { $OUT .= ",'$secrets[1]'"; } + if ( $secrets[2] ) { $OUT .= ",'$secrets[2]'"; } + $OUT .= "],"; +} diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/20Theme smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/20Theme --- smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/20Theme 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/20Theme 2020-01-26 23:17:52.000000000 +0400 @@ -0,0 +1 @@ + theme => '{ $manager2{'Theme'} || 'default' }', diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/30Other smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/30Other --- smeserver-manager-0.1.0.old/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/30Other 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/templates/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf/30Other 2020-01-25 23:04:33.000000000 +0400 @@ -0,0 +1,3 @@ + modules_dir => "lib/SrvMngr/Controller", + debug => 0, +\} diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Bugreport.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Bugreport.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Bugreport.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Bugreport.pm 2020-01-24 18:57:07.000000000 +0400 @@ -6,6 +6,7 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); use Text::Template; use File::Basename; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Clamav.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Clamav.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Clamav.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Clamav.pm 2020-01-24 18:58:04.000000000 +0400 @@ -6,6 +6,7 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); #package esmith::FormMagick::Panel::clamav; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Datetime.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Datetime.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Datetime.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Datetime.pm 2020-01-27 12:08:26.646000000 +0400 @@ -6,6 +6,7 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); use esmith::FormMagick; #use esmith::FormMagick::Panel::datetime; @@ -57,17 +58,14 @@ } # controls - #$db->get('smb')->set_prop('Workgroup', $workgroup); - #$db->get('smb')->set_prop('ServerName', $servername); - # # Update the system # - ##system ("/sbin/e-smith/signal-event datetime-update") == 0 - ##or $result = $c->l('ERROR_UPDATING'); + system ("/sbin/e-smith/signal-event datetime-update") == 0 + or $result = $c->l('ERROR_UPDATING'); - if ( $result eq '' ) { $result = $c->l('dat_SUCCESS') . " but System update NOT done !!!"; } + if ( $result eq '' ) { $result = $c->l('dat_SUCCESS'); } $c->stash( title => $title, modul => $result ); $c->render(template => 'module'); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Directory.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Directory.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Directory.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Directory.pm 2020-01-24 18:57:46.000000000 +0400 @@ -6,12 +6,15 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + #use esmith::util qw(ldapBase); use esmith::FormMagick::Panel::directory; our $db = esmith::ConfigDB->open() || die "Couldn't open config db"; sub main { + my $c = shift; $c->app->log->info($c->log_req); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Groups.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Groups.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Groups.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Groups.pm 2020-01-25 21:28:45.000000000 +0400 @@ -6,6 +6,7 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); use Data::Dumper; @@ -390,10 +391,7 @@ { return('OK'); } - return ($c->l('grp_ACCOUNT_CONFLICT') . - { group => $groupName . - type => $type, - }); + return ($c->l('grp_ACCOUNT_CONFLICT', $groupName, $type)); } =head2 validate_group FM groupname @@ -438,14 +436,13 @@ my $c = shift; my $groupName = shift; + my $maxGroupNameLength = ($cdb->get('maxGroupNameLength') ? $cdb->get('maxGroupNameLength')->prop('type') : "") || 12; if ( length $groupName > $maxGroupNameLength ) { - - return $c->l('grp_GROUP_TOO_LONG') . - {maxLength => $maxGroupNameLength}; + return $c->l('grp_GROUP_TOO_LONG', $maxGroupNameLength); } else { return ('OK'); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ibays.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ibays.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ibays.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ibays.pm 2020-01-25 20:23:22.000000000 +0400 @@ -6,6 +6,7 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); #use esmith::FormMagick qw( validate_password ); use CGI::FormMagick::Validator qw( call_fm_validation ); @@ -216,8 +217,6 @@ } } - my $title = $c->l('iba_FORM_TITLE'); - $c->stash( title => $title, modul => $result, iba_datas => \%iba_datas ); $c->render(template => 'module'); @@ -512,7 +511,7 @@ if (length($data) <= $max) { return "OK"; } else { - return $c->l("iba_MAX_IBAY_NAME_LENGTH_ERROR") . " " . $data . " " . $max; + return $c->l('iba_MAX_IBAY_NAME_LENGTH_ERROR', $data, $max, $max); # {acctName => $data, # maxIbayNameLength => $max, # maxLength => $max}); @@ -534,8 +533,7 @@ my $acct = $rec->prop("Account"); my $acct_type = $adb->get($acct)->prop('type'); - return $c->l('iba_ACCT_CLASHES_WITH_PSEUDONYM') ." ". $name ." ". $acct_type ." ". $acct; - # {acctName => $name, acctType => $acct_type, acct => $acct}); + return $c->l('iba_ACCT_CLASHES_WITH_PSEUDONYM', $name, $acct_type, $acct); } } elsif (defined getpwnam($name) || defined getgrnam($name)) @@ -547,8 +545,7 @@ # No account record and no account return 'OK'; } - return $c->l('iba_ACCOUNT_EXISTS') ." ". $name ." ". $type; - # {acctName => $name, acctType => $type}); + return $c->l('iba_ACCOUNT_EXISTS', $name, $type); } sub validate_name { @@ -557,8 +554,7 @@ unless ($acctName =~ /^([a-z][\_\.\-a-z0-9]*)$/) { - return $c->l('iba_ACCT_NAME_HAS_INVALID_CHARS') . " ". $acctName; - # {acctName => $acctName}); + return $c->l('iba_ACCT_NAME_HAS_INVALID_CHARS', $acctName); } return "OK"; } diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial_ori.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial_ori.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial_ori.pm 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial_ori.pm 2020-01-23 11:13:34.000000000 +0400 @@ -0,0 +1,53 @@ +package SrvMngr::Controller::Initial; + +use strict; +use warnings; + +use Mojo::Base 'Mojolicious::Controller'; + +use Locale::gettext; +use SrvMngr::I18N; + +sub main { + my $c = shift; + $c->app->log->info($c->log_req); + + #SrvMngr->startsess(); + if ( not defined $c->session->{lang} ) { + init_session( $c ); + } + + my %nav = %{SrvMngr::navigation2->getNavigation( $c->languages() )}; +# $c->app->log->info("nav: " . $c->dumper(%{SrvMngr::navigation2->getNavigation( $c->languages() )})); +# $c->app->log->info("nav: " . $c->dumper(%{SrvMngr::navigation2->getNavigation( $c->session->{lang} )})); + + my $title = $c->l('initial_FORM_TITLE'); + my $modul = $c->render_to_string(inline => $c->l('initial_FRAMES_BODY')); + + $c->stash( title => $title, modul => $modul, nav => \%nav ); + + $c->render(template => 'initial'); + +} + + +sub init_session { + my $c = shift; + + $c->app->log->info("Init datas in welcome page."); + + my %datas = (); + %datas = SrvMngr::Model::Main->init_data( %datas ); + $c->session->{lang} = $datas{'lang'}; + $c->session->{copyRight} = $c->l($datas{'copyRight'}); + $c->session->{releaseVersion} = $datas{'releaseVersion'}; + $c->session->{PwdSet} = $datas{'PwdSet'}; + $c->session->{Unsafe} = $datas{'Unsafe'}; + $c->session->{SystemName} = $datas{'SystemName'}; + $c->session->{DomainName} = $datas{'DomainName'}; + $c->languages($datas{'lang'}); + +} + + +1; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Initial.pm 2020-01-24 22:51:41.000000000 +0400 @@ -7,26 +7,18 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + +#use SrvMngr::Model::Main; sub main { - my $c = shift; + my $c = shift; $c->app->log->info($c->log_req); - #SrvMngr->startsess(); - if (not defined $c->session->{lang}) { - $c->app->log->info("Init datas in welcome page."); - my %datas = (); - %datas = SrvMngr::Model::Main->init_data( %datas ); - $c->session->{lang} = $datas{'lang'}; - $c->session->{copyRight} = $c->l($datas{'copyRight'}); - $c->session->{releaseVersion} = $datas{'releaseVersion'}; - $c->session->{PwdSet} = $datas{'PwdSet'}; - $c->session->{Unsafe} = $datas{'Unsafe'}; - $c->session->{SystemName} = $datas{'SystemName'}; - $c->session->{DomainName} = $datas{'DomainName'}; - $c->languages($datas{'lang'}); + if ( not defined $c->session->{lang} ) { + SrvMngr::init_session_cgi ( $c ); } my $title = $c->l('initial_FORM_TITLE'); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Main.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Main.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Main.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Main.pm 2020-01-24 18:56:26.000000000 +0400 @@ -8,17 +8,14 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + sub whatever { my $c = shift; - my $whatever = $c->param('whatever'); $c->app->log->info($c->log_req); - my $modul .= 'Mail result is 11 + 54.'; - - $c->stash( releaseVersion => $c->session->{releaseVersion}, copyRight => $c->session->{copyRight}, - PwdSet => $c->session->{PwdSet}, Unsafe => $c->session->{Unsafe}, - modul => $modul); + my $whatever = $c->param('whatever'); $c->render(text => "whatever: /$whatever did not match.", status => 404); }; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Manual.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Manual.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Manual.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Manual.pm 2020-01-24 18:56:59.000000000 +0400 @@ -8,6 +8,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + sub main { my $c = shift; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modsearch.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modsearch.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modsearch.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modsearch.pm 2020-01-24 18:57:24.000000000 +0400 @@ -7,6 +7,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + #use esmith::config; #use esmith::NavigationDB; #use esmith::util; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modules.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modules.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modules.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Modules.pm 2020-01-24 18:56:36.000000000 +0400 @@ -7,6 +7,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + #use esmith::config; #use esmith::NavigationDB; #use esmith::util; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Printers.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Printers.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Printers.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Printers.pm 2020-01-24 18:58:30.000000000 +0400 @@ -7,6 +7,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + use esmith::FormMagick::Panel::printers; our $adb = esmith::AccountsDB->open || die "Couldn't open accounts db"; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Proxy.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Proxy.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Proxy.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Proxy.pm 2020-01-24 18:57:58.000000000 +0400 @@ -7,6 +7,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + our $db = esmith::ConfigDB->open || die "Couldn't open config db"; sub main { diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Qmailanalog.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Qmailanalog.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Qmailanalog.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Qmailanalog.pm 2020-01-24 18:58:43.000000000 +0400 @@ -9,6 +9,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + sub main { my $c = shift; $c->app->log->info($c->log_req); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Quota.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Quota.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Quota.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Quota.pm 2020-01-24 18:58:36.000000000 +0400 @@ -12,7 +12,7 @@ use Locale::gettext; use SrvMngr::I18N; -use esmith::FormMagick::Panel::quota; +use SrvMngr qw(theme_list init_session_cgi); #our $db = esmith::ConfigDB->open || die "Couldn't open config db"; our $adb = esmith::AccountsDB->open || die "Couldn't open accounts db"; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Reboot.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Reboot.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Reboot.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Reboot.pm 2020-01-24 18:58:55.000000000 +0400 @@ -4,6 +4,11 @@ use warnings; use Mojo::Base 'Mojolicious::Controller'; +use Locale::gettext; +use SrvMngr::I18N; + +use SrvMngr qw(theme_list init_session_cgi); + #use esmith::util; #use File::Basename; #use Exporter; @@ -12,8 +17,6 @@ #our @EXPORT = qw( change_settings #); -use Locale::gettext; -use SrvMngr::I18N; sub main { diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Request.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Request.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Request.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Request.pm 2020-01-24 18:57:31.000000000 +0400 @@ -5,6 +5,8 @@ use Mojo::Base 'Mojolicious::Controller'; +use SrvMngr qw(theme_list init_session_cgi); + use esmith::AccountsDB qw(open_ro); use esmith::ConfigDB qw(open_ro); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Review.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Review.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Review.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Review.pm 2020-01-24 18:57:39.000000000 +0400 @@ -8,6 +8,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + #use SrvMngr::Review_sub qw(print_page); #use smeserver::Panel::review; use esmith::FormMagick::Panel::review; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Starterwebsite.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Starterwebsite.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Starterwebsite.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Starterwebsite.pm 2020-01-24 18:57:14.000000000 +0400 @@ -7,6 +7,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + our $db = esmith::ConfigDB->open_ro || die "Couldn't open config db"; sub main { diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Support.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Support.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Support.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Support.pm 2020-01-24 18:57:52.000000000 +0400 @@ -4,6 +4,8 @@ use warnings; use Mojo::Base 'Mojolicious::Controller'; +use SrvMngr qw(theme_list init_session_cgi); + #use esmith::config; #use esmith::NavigationDB; use esmith::util; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Swttheme.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Swttheme.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Swttheme.pm 1970-01-01 04:00:00.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Swttheme.pm 2020-01-27 13:04:14.692000000 +0400 @@ -0,0 +1,45 @@ +package SrvMngr::Controller::Swttheme; + +use strict; +use warnings; + +use Mojo::Base 'Mojolicious::Controller'; + +#use SrvMngr qw(theme_list init_session_cgi); + +our $db = esmith::ConfigDB->open() || die "Couldn't open config db"; + +sub main { + + my $c = shift; + + my $from = $c->param('From') || '/'; + my $theme = $c->param('Theme'); + + $c->app->log->info(" swt theme '$from' '$theme' "); + + my $oldTheme = $c->session->{CurrentTheme}; + + if ( $theme ne $oldTheme ) { +# $c->app->renderer->paths([$c->app->home->rel_file('themes/default/templates')]); +# $c->app->static->paths([$c->app->home->rel_file('themes/default/public')]); +# if ( $theme ne 'default' ) { +# # Put the new theme first +# my $t_path = $c->app->home->rel_file('themes/'.$theme); +# unshift @{$c->app->renderer->paths}, $t_path.'/templates' if -d $t_path.'/templates'; +# unshift @{$c->app->static->paths}, $t_path.'/public' if -d $t_path.'/public'; +# } + $c->session->{CurrentTheme} = $theme; + + $db->get('manager2')->set_prop('Theme', $theme); + system ("/sbin/e-smith/signal-event manager2-modify") == 0 + or warn "$c->l('ERROR_UPDATING')"; + } + + $from = '/initial' if $from eq '/'; + $c->redirect_to( $from); + +} + + +1; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Wbl.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Wbl.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Wbl.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Wbl.pm 2020-01-24 18:58:23.000000000 +0400 @@ -8,6 +8,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + ####$locale->{namespace} = 'SrvMngr::I18N::Wbl'; #use esmith::FormMagick::Panel::wbl; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Welcome.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Welcome.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Welcome.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Welcome.pm 2020-01-24 18:56:46.000000000 +0400 @@ -8,6 +8,10 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + +use SrvMngr::Navigation2; + #page d'accueil sub main { @@ -16,22 +20,14 @@ $c->app->log->info("Appel de la page d'accueil."); $c->app->log->info($c->log_req); - if (not defined $c->session->{lang}) { - $c->app->log->info("Init datas in welcome page."); - my %datas = (); - %datas = SrvMngr::Model::Main->init_data( %datas ); - $c->session->{lang} = $datas{'lang'}; - $c->session->{copyRight} = $c->l($datas{'copyRight'}); - $c->session->{releaseVersion} = $datas{'releaseVersion'}; - $c->session->{PwdSet} = $datas{'PwdSet'}; - $c->session->{Unsafe} = $datas{'Unsafe'}; - } + my $title = 'Welcome page'; my $modul .= ' Welcome result is 10 + 33.'; - $c->stash( releaseVersion => $c->session->{releaseVersion}, copyRight => $c->session->{copyRight}, - PwdSet => $c->session->{PwdSet}, Unsafe => $c->session->{Unsafe}, - modul => $modul); + my %nav = (); + #%{SrvMngr::Navigation2->getNavigation( $c->languages() )}; + + $c->stash( title => $title, modul => $modul, navig => \%nav ); $c->render(template => 'welcome'); } diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Workgroup.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Workgroup.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Workgroup.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Workgroup.pm 2020-01-24 18:58:10.000000000 +0400 @@ -7,6 +7,8 @@ use Locale::gettext; use SrvMngr::I18N; +use SrvMngr qw(theme_list init_session_cgi); + use esmith::FormMagick::Panel::workgroup; our $db = esmith::ConfigDB->open || die "Couldn't open config db"; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/en.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/en.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/en.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/en.pm 2020-01-27 00:07:35.789000000 +0400 @@ -121,23 +121,23 @@ 'FM_ISO_COUNTRY_CODE2' => 'This field does not contain an ISO country code', 'FM_US_STATE' => 'This doesn\'t appear to be a valid 2-letter US state abbreviation', 'FM_US_ZIPCODE' => 'US zip codes must contain 5 or 9 numbers', -'FM_MINLENGTH1' => 'Minimum length has been specified meaninglessly as {$minlength}', -'FM_MINLENGTH2' => 'This field must be at least {$minlength} characters', -'FM_MAXLENGTH1' => 'Maximum length has been specified meaninglessly as {$maxlength}', -'FM_MAXLENGTH2' => 'This field must be no more than {$maxlength} characters', +'FM_MINLENGTH1' => 'Minimum length has been specified meaninglessly as [_1]', +'FM_MINLENGTH2' => 'This field must be at least [_1] characters', +'FM_MAXLENGTH1' => 'Maximum length has been specified meaninglessly as [_1]', +'FM_MAXLENGTH2' => 'This field must be no more than [_1] characters', 'FM_EXACTLENGTH1' => 'You must specify the length for the field.', 'FM_EXACTLENGTH2' => 'You must specify the exactlength of the field with an integer', -'FM_EXACTLENGTH3' => 'This field must be exactly {$exactlength} characters', +'FM_EXACTLENGTH3' => 'This field must be exactly [_1] characters', 'FM_LENGTHRANGE1' => 'You must specify the maximum and minimum length for the field.', 'FM_LENGTHRANGE2' => 'You must specify the maximum and minimum lengths of the field with an integer', -'FM_LENGTHRANGE3' => 'This field must be between {$minlength} and {$maxlength} characters', +'FM_LENGTHRANGE3' => 'This field must be between [_1] and [_2] characters', 'FM_URL' => 'This field must contain a URL starting with http:// or ftp://', 'FM_EMAIL_SIMPLE1' => 'You must enter an email address.', 'FM_EMAIL_SIMPLE2' => 'This field doesn\'t look like an RFC822-compliant email address', 'FM_DOMAIN_NAME' => 'This field doesn\'t look like a valid Internet domain name or hostname.', 'FM_IP_NUMBER1' => 'This field must contain a valid IP number and can not be left blank.', 'FM_IP_NUMBER2' => 'Invalid IP address format (expected X.X.X.X)', -'FM_IP_NUMBER3' => '{$octet} is more than 255', +'FM_IP_NUMBER3' => '[_1] is more than 255', 'FM_USERNAME' => 'This field must look like a valid username (3 to 8 letters and numbers)', 'FM_PASSWORD1' => 'You must provide a password.', 'FM_PASSWORD2' => 'The password you provided was not a good password.A good password must contain all of the following: upper case letter, lower case letter, number, @@ -652,9 +652,9 @@ 'quo_Quotas' => 'Quotas', 'grp_FORM_TITLE' => 'Create, modify, or remove user groups', -'grp_GROUP_TOO_LONG' => 'Error: group name is too long.The maximum is {$maxLength} characters.', -'grp_ACCOUNT_CONFLICT' => 'Error: the group "{$group}" can\'t be created because there is -already a {$type} account of that name.', +'grp_GROUP_TOO_LONG' => 'Error: group name is too long. The maximum is [_1] characters.', +'grp_ACCOUNT_CONFLICT' => 'Error: the group "[_1]" can\'t be created because there is +already a [_2] account of that name.', 'grp_INVALID_GROUP_DESCRIPTION' => 'Error: unexpected or missing characters in group description', 'grp_NO_MEMBERS' => 'Error: no members in group.Did not create new group.', 'grp_CREATED_GROUP' => 'Successfully created user group', @@ -680,7 +680,7 @@ something else afterward):', 'grp_CONFIRM_DELETE_GROUP' => 'Are you sure you wish to remove this group?', 'grp_CURRENT_LIST' => 'Current list of User Groups', -'grp_DELETE_DESCRIPTION' => 'You are about to remove the user group "{$group}."', +'grp_DELETE_DESCRIPTION' => 'You are about to remove the user group "[_1]."', 'rbo_FORM_TITLE' => 'Shutdown or reboot', 'rbo_REBOOT' => 'Reboot', @@ -714,8 +714,7 @@ should start with a lower-case letter. For example "johnson", "intra", and "cust3.prj12" are all valid names, but "3associates", "John Smith" and -"Bus!Partner" are not. The name is limited to -{$maxLength} characters.', +"Bus!Partner" are not. The name is limited to [_1] characters.', 'iba_NAME_LABEL' => 'Information bay name', 'iba_USER_ACCESS' => 'User access via file sharing or user ftp', 'iba_PUBLIC_ACCESS' => 'Public access via web or anonymous ftp', @@ -728,8 +727,7 @@ 'iba_HTTPS_Only' => 'Force secure connections', 'iba_REMOVE_TITLE' => 'Remove information bay', 'iba_REMOVE_DESC' => '

-You are about to remove the information bay "{$name}" -({$description}). +You are about to remove the information bay [_1] ([_2]).

All files belonging to this information bay will be deleted.

@@ -738,8 +736,8 @@ 'iba_ERROR_WHILE_CREATING_IBAY' => 'An error occurred while creating the i-bay.', 'iba_SUCCESSFULLY_CREATED_IBAY' => 'Successfully created i-bay.', 'iba_NO_IBAYS' => 'There are no i-bays currently configured.', -'iba_CANT_FIND_IBAY' => 'Can\'t find account for {$name} (does it exist?)', -'iba_CANT_CREATE_IBAY' => 'Can\'t create new account for {$name} (does it already exist?)', +'iba_CANT_FIND_IBAY' => 'Can\'t find account for [_1] (does it exist?)', +'iba_CANT_CREATE_IBAY' => 'Can\'t create new account for [_1] (does it already exist?)', 'iba_ERROR_WHILE_MODIFYING_IBAY' => 'An error occurred while modifying the i-bay.', 'iba_SUCCESSFULLY_MODIFIED_IBAY' => 'Successfully modified i-bay.', 'iba_VIRTUAL_HOST_MESSAGE' => 'The following virtual domains were using this information @@ -747,7 +745,7 @@ site (you can change them to something else afterward).', 'iba_SUCCESSFULLY_DELETED_IBAY' => 'Successfully deleted i-bay.', 'iba_ERROR_WHILE_DELETING_IBAY' => 'An error occurred while deleting the i-bay.', -'iba_PASSWORD_DESC' => 'You are about to change the password for the i-bay {$name}.', +'iba_PASSWORD_DESC' => 'You are about to change the password for the i-bay [_1].', 'iba_IBAY_PASSWD_VALIDATION_ERROR' => 'The password may contain only letters and numbers.', 'iba_IBAY_PASSWD_VERIFY_ERROR' => 'The passwords do not match.', 'iba_SUCCESSFULLY_RESET_PASSWORD' => 'Successfully reset password.', @@ -766,17 +764,19 @@ 'ENTIRE_INTERNET_PASSWORD' => 'Entire Internet (password required)', 'ENTIRE_INTERNET_PASSWORD_REMOTE' => 'Entire Internet (password required outside local network)', 'INVALID_IBAY_DESCRIPTION' => 'Error: unexpected or missing characters in i-bay description', -'iba__ACCT_NAME_HAS_INVALID_CHARS' => 'The i-bay name "{$acctName}" contains invalid characters. +'iba_ACCT_NAME_HAS_INVALID_CHARS' => 'The i-bay name "[_1]" contains invalid characters. I-bay names must start with a lower case letter and contain only lower case letters, numbers, and hyphens.', -'iba_MAX_IBAY_NAME_LENGTH_ERROR' => 'The i-bay name "{$name}" is too long. The maximum is -{$maxIbayNameLength} characters.', -'iba_ACCT_CLASHES_WITH_PSEUDONYM' => 'The account "{$acctName}" clashes with pseudonym -details for {$acctType} account "{$acct}". -

{$acctName} is a pseudonym for {$acct}.

', -'iba_ACCOUNT_EXISTS' => 'The account "{$acctName}" is an existing {$acctType} account.', +'iba_MAX_IBAY_NAME_LENGTH_ERROR' => 'The i-bay name "[_1]" is too long. The maximum is +[_2] characters.', +'iba_ACCT_CLASHES_WITH_PSEUDONYM' => 'The account "[_1]" clashes with pseudonym +details for [_2] account "[_3]". +

[_1] is a pseudonym for [_2].

', +'iba_ACCOUNT_EXISTS' => 'The account "[_1]" is an existing [_2] account.', + +'swt_THEME' => 'Theme', ); -1; \ Pas de fin de ligne à la fin du fichier +1; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/fr.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/fr.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/fr.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/fr.pm 2020-01-25 20:40:08.000000000 +0400 @@ -226,25 +226,25 @@ 'FM_US_ZIPCODE' => 'Les codes postaux américains doivent contenir 5 ou 9 chiffres.', 'FM_MINLENGTH1' => -'La longueur minimale a été définie arbitrairement à {$minlength} caractères.', +'La longueur minimale a été définie arbitrairement à [_1] caractères.', 'FM_MINLENGTH2' => -'Ce champ doit contenir au minimum {$minlength} caractères.', +'Ce champ doit contenir au minimum [_1] caractères.', 'FM_MAXLENGTH1' => -'La longueur maximale a été définie arbitrairement à {$maxlength} caractères.', +'La longueur maximale a été définie arbitrairement à [_1] caractères.', 'FM_MAXLENGTH2' => -'Ce champ doit ne doit pas dépasser {$maxlength} caractères.', +'Ce champ doit ne doit pas dépasser [_1] caractères.', 'FM_EXACTLENGTH1' => 'Vous devez définir la longueur de ce champ.', 'FM_EXACTLENGTH2' => 'Vous devez définir la longueur exacte de ce champ avec un entier.', 'FM_EXACTLENGTH3' => -'Ce champ doit faire exactement {$exactlength} caractères.', +'Ce champ doit faire exactement [_1] caractères.', 'FM_LENGTHRANGE1' => 'Vous devez définir les longueurs maximale et minimale de ce champ.', 'FM_LENGTHRANGE2' => 'Vous devez définir les longueurs maximale et minimale de ce champ avec des entiers.', 'FM_LENGTHRANGE3' => -'La longueur de ce champ doit être comprise entre {$minlength} et {$maxlength} caractères.', +'La longueur de ce champ doit être comprise entre [_1] caractères.', 'FM_URL' => 'Ce champ doit contenir une URL commençant par http:// ou ftp://', 'FM_EMAIL_SIMPLE1' => @@ -258,7 +258,7 @@ 'FM_IP_NUMBER2' => 'Format d\'adresse IP incorrect (X.X.X.X attendu)', 'FM_IP_NUMBER3' => -'La valeur {$octet} dépasse 255.', +'La valeur [_1] dépasse 255.', 'FM_USERNAME' => 'Ce champ doit contenir un nom d\'utilisateur valide (3 à 8 lettres et chiffres).', 'FM_PASSWORD1' => @@ -673,8 +673,8 @@ 'quo_Quotas' => 'Quotas', 'grp_FORM_TITLE' => 'Gestion des groupes d\'utilisateurs', -'grp_GROUP_TOO_LONG' => 'ERREUR : le nom du groupe est trop long : {$maxLength} caractères au maximum.', -'grp_ACCOUNT_CONFLICT' => 'ERREUR : le groupe "{$group}" ne peut être créé car il existe déjà un compte {$type} avec ce nom.', +'grp_GROUP_TOO_LONG' => 'ERREUR : le nom du groupe est trop long : [_1] caractères au maximum.', +'grp_ACCOUNT_CONFLICT' => 'ERREUR : le groupe "[_1] avec ce nom.', 'grp_INVALID_GROUP_DESCRIPTION' => 'ERREUR : caractères inattendus ou manquants dans la description du groupe.', 'grp_NO_MEMBERS' => 'ERREUR : aucun membre dans le groupe. Le groupe n\'a pas été créé.', 'grp_CREATED_GROUP' => 'Le groupe d\'utilisateurs a été créé avec succès.', @@ -691,9 +691,9 @@ 'grp_IBAYS_WILL_BE_CHANGED' => 'Les i-bays suivantes étaient attribuées à ce groupe et vont être réattribuées au groupe de l\'administrateur (vous pourrez par la suite les attribuer à un autre groupe) :', 'grp_CONFIRM_DELETE_GROUP' => ' Voulez-vous vraiment supprimer ce groupe ? ', 'grp_CURRENT_LIST' => ' Liste actuelle des groupes d\'utilisateurs : ', -'grp_DELETE_DESCRIPTION' => ' Vous êtes sur le point de supprimer le groupe d\'utilisateurs "{$group}". ', +'grp_DELETE_DESCRIPTION' => ' Vous êtes sur le point de supprimer le groupe d\'utilisateurs "[_1]". ', ); -1; \ Pas de fin de ligne à la fin du fichier +1; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Model/Main.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Model/Main.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Model/Main.pm 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Model/Main.pm 2020-01-27 00:07:46.293000000 +0400 @@ -4,37 +4,45 @@ use warnings; use utf8; -use esmith::DB; +#use esmith::DB; use esmith::ConfigDB; -my %datas = ( - 'lang' => 'en', - 'releaseVersion' => '', - 'copyRight' => '', - 'navigation' => 'N a v i g a t i o n', - 'modul' => 'Modul 89 +/- 11', - 'PwdSet' => '0', - 'Unsafe' => '0', - 'SystemName' => '', - 'DomainName' => '', -); +#my %datas = ( +# 'lang' => 'en', +# 'releaseVersion' => '', +# 'copyRight' => '', +# 'navigation' => 'N a v i g a t i o n', +# 'modul' => 'Modul 89 +/- 11', +# 'PwdSet' => '0', +# 'Unsafe' => '0', +# 'SystemName' => '', +# 'DomainName' => '', +#); sub init_data { + my %datas = (); my $lang = (split(/,/, $ENV{"HTTP_ACCEPT_LANGUAGE"}))[0]; ## convert xx_XX lang format to xx-xx ($datas{'lang'} = lc($lang)) =~ s/_/-/; + my $DB = esmith::ConfigDB->open_ro() or die("can't open Config DB test"); my $sysconfig = $DB->get("sysconfig"); $datas{'releaseVersion'} = $sysconfig->prop("ReleaseVersion") || '??'; $datas{'copyRight'} = 'All rights reserved'; + $datas{'PwdSet'} = ($DB->get('PasswordSet')->value eq "yes") || '0' ; $datas{'Unsafe'} = ($DB->get('bootstrap-console') and $DB->get('bootstrap-console')->prop('Run') eq 'yes') || ($DB->get('UnsavedChanges') and $DB->get('UnsavedChanges')->value eq 'yes'); + $datas{'SystemName'} = $DB->get("SystemName")->value || '??'; $datas{'DomainName'} = $DB->get("DomainName")->value || '??'; - return( %datas ); + + return \%datas; } + + +1; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr.pm 2020-01-26 23:54:06.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr.pm 2020-01-24 23:45:10.000000000 +0400 @@ -1,5 +1,3 @@ -#!/usr/bin/perl -wT - package SrvMngr; use strict; @@ -12,14 +10,18 @@ use utf8; -use SrvMngr::Navigation; +#use SrvMngr::Navigation; use SrvMngr::I18N; use SrvMngr::Model::Main; +use Exporter; -my $config = plugin( 'Config' => { files => './conf/srvmngr.conf' }); +our @ISA = qw(Exporter); -#startcgi(); +our @EXPORT_OK = qw( init_session_cgi get_mod_url theme_list getNavigation ); + + +my $config = plugin( 'Config' => { files => './conf/srvmngr.conf' }); sub startup{ @@ -28,19 +30,79 @@ } -sub startsess{ +sub main { + +} + + +sub init_session_cgi { + + my $c = shift; + $c->app->log->info("Init session cgi."); + + my %datas = (); + %datas = %{SrvMngr::Model::Main->init_data()}; + + $c->session->{lang} = $datas{'lang'} || 'pl'; + $c->session->{copyRight} = $c->l($datas{'copyRight'}); + $c->session->{releaseVersion} = $datas{'releaseVersion'}; + $c->session->{PwdSet} = $datas{'PwdSet'}; + $c->session->{Unsafe} = $datas{'Unsafe'}; + $c->session->{SystemName} = $datas{'SystemName'}; + $c->session->{DomainName} = $datas{'DomainName'}; + if ( not defined $c->session->{CurrentTheme} ) { + $c->session->{CurrentTheme} = $config->{theme}; + } + $c->languages($datas{'lang'}); + +} + + +sub get_mod_url{ + + my $c = shift; + my $module = shift; + + # test if module (panel) exists + my $module_file = $config->{modules_dir} . '/' . ucfirst($module) . '.pm'; + if ( -e $module_file){ + return "/$module"; + } + return -1; +} + + +=head2 theme_list() + +Returns a hash of themes for the header theme field's drop down list. + +=cut + + +sub theme_list { + my $c = shift; - app->log->info("Init datas in page."); - my %datas = (); - %datas = SrvMngr::Model::Main->init_data( %datas ); - $c->session->{lang} = $datas{'lang'}; - $c->session->{copyRight} = $c->l($datas{'copyRight'}); - $c->session->{releaseVersion} = $datas{'releaseVersion'}; - $c->session->{PwdSet} = $datas{'PwdSet'}; - $c->session->{Unsafe} = $datas{'Unsafe'}; - $c->languages($datas{'lang'}); - app->log->info("Session started: $datas{'lang'}"); + my @files = (); + my @themes = (); + my $theme_ignore = "(\.\.?)"; + + my $themedir = app->home->rel_file('themes/'); + + if (opendir (DIR, $themedir)) { + @files = grep (!/^${theme_ignore}$/, readdir(DIR)); + closedir (DIR); + } else { + warn "Can't open directory $themedir\n"; + } + + foreach my $theme (@files) { + if (-d "$themedir/$theme") { + push @themes, $theme; + } + } + + return \@themes; } @@ -55,17 +117,135 @@ }); -sub get_mod_url{ - my $c = shift; - my $module = shift; - # test if module exists - my $module_file = $config->{modules_dir} . '/' . ucfirst($module) . '.pm'; - if ( -e $module_file){ - return "/$module"; +#------------------------------------------------------------ +# subroutine to feed navigation bar +#------------------------------------------------------------ + +sub getNavigation () { + + use esmith::NavigationDB; + + my $c = shift; + my $lang = shift || 'en-us'; + + # Use this variable throughout to keep track of files + # list of just the files + + my @files = (); + my %files_hash = (); + my @panel_group = "admin"; + + #----------------------------------------------------- + # Determine the directory where the functions are kept + #----------------------------------------------------- + + my $navigation_ignore = + "(\.\.?|navigation|noframes|online-manual|(internal|pleasewait)(-.*)?)"; + + my $cgidir = '/etc/e-smith/web/panels/manager/cgi-bin/'; + + if (opendir (DIR, $cgidir)) { + @files = grep (!/^${navigation_ignore}$/, + readdir (DIR)); + closedir (DIR); + } else { + warn "Can't open directory $cgidir\n"; + } + + foreach my $file (@files) { + next if (-d "$cgidir/$file"); + $files_hash{$file} = $cgidir; + } + + #-------------------------------------------------- + # For each script, extract the description and category + # information. Build up an associative array mapping headings + # to heading structures. Each heading structure contains the + # total weight for the heading, the number of times the heading + # has been encountered, and another associative array mapping + # descriptions to description structures. Each description + # structure contains the filename of the particular cgi script + # and a weight. + #-------------------------------------------------- + my %nav = (); + + use constant NAVIGATIONDIR => '/home/e-smith/db/navigation'; + use constant WEBFUNCTIONS => '/etc/e-smith/web/functions'; + + my $navinfo = NAVIGATIONDIR . "/navigation.$lang"; + + my $navdb = esmith::NavigationDB->open_ro( $navinfo ) or + die "Couldn't open $navinfo\n"; + + # Check the navdb for anything with a UrlPath, which means that it doesn't + # have a cgi file to be picked up by the above code. Ideally, only pages + # that exist should be in the db, but that's not the case. Anything + # without a cgi file will have to remove themselves on uninstall from the + # navigation dbs. + foreach my $rec ($navdb->get_all) + { + if ($rec->prop('UrlPath')) + { + $files_hash{$rec->{key}} = $cgidir; + } } - return -1; -} + foreach my $file (keys %files_hash) + { + my $heading = 'Unknown'; + my $description = $file; + my $headingWeight = 99999; + my $descriptionWeight = 99999; + my $urlpath = ''; + + my $rec = $navdb->get($file); + + if (defined $rec) + { + $heading = $rec->prop('Heading'); + $description = $rec->prop('Description'); + $headingWeight = $rec->prop('HeadingWeight'); + $descriptionWeight = $rec->prop('DescriptionWeight'); + $urlpath = $rec->prop('UrlPath') || ''; + } + + #-------------------------------------------------- + # add heading, description and weight information to data structure + #-------------------------------------------------- + + unless (exists $nav {$heading}) + { + $nav {$heading} = { COUNT => 0, WEIGHT => 0, DESCRIPTIONS => [] }; + } + + $nav {$heading} {'COUNT'} ++; + $nav {$heading} {'WEIGHT'} += $headingWeight; + + # Check for manager panel, and assign the appropriate + # cgi-bin prefix for the links. + # Grab the last 2 directories by splitting for '/'s and + # then concatenating the last 2 + # probably a better way, but I don't know it. + my @filename = split /\//, $files_hash{$file}; + + #### mabmodif new version of module exists + my $path = (SrvMngr->get_mod_url($file) ne '-1') ? + "2" : + ###### mabmodif + ($cgidir eq '/etc/e-smith/web/panels/manager/cgi-bin/') ? + "/$filename[scalar @filename - 1]" : + "/$filename[scalar @filename - 2]/$filename[scalar @filename - 1]"; + push @{ $nav {$heading} {'DESCRIPTIONS'} }, + { DESCRIPTION => $description, + WEIGHT => $descriptionWeight, + FILENAME => $urlpath ? $urlpath : "$path/$file", + CGIPATH => $path + }; + } + + return \%nav; + +} 1; diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/script/srvmngr.pl smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/script/srvmngr.pl --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/script/srvmngr.pl 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/script/srvmngr.pl 2020-01-27 12:03:33.959000000 +0400 @@ -34,37 +34,23 @@ app->secrets( $config->{'secrets'} ); app->sessions->cookie_name('srvmngr'); app->sessions->default_expiration('1800'); -##app->session(expires => 1) # in logout; # Replace the default paths app->renderer->paths([app->home->rel_file('themes/default/templates')]); app->static->paths([app->home->rel_file('themes/default/public')]); -if ($config->{theme} ne 'default') { +my $theme = $config->{theme} || 'default'; + +if ( $theme ne 'default' ) { # Put the new theme first - my $theme = app->home->rel_file('themes/'.$config->{theme}); - unshift @{app->renderer->paths}, $theme.'/templates' if -d $theme.'/templates'; - unshift @{app->static->paths}, $theme.'/public' if -d $theme.'/public'; + my $t_path = app->home->rel_file('themes/'.$theme); + unshift @{app->renderer->paths}, $t_path.'/templates' if -d $t_path.'/templates'; + unshift @{app->static->paths}, $t_path.'/public' if -d $t_path.'/public'; } -app->log->info("Current theme : ${app->renderer->paths}[0] & ${app->static->paths}[0]"); - - -my %datas = ( - 'lang' => 'en', - 'releaseVersion' => 'rv', - 'copyRight' => 'cp', - 'PwdSet' => '1', - 'Unsafe' => '0', - 'SystemName' => 'sn', - 'DomainName' => 'dn', -); -SrvMngr::Navigation->showNavigation($config) if ($config->{navigation_has_changed} == 1); - -%datas = SrvMngr::Model::Main->init_data( %datas ); - -my $right = app->l("$datas{copyRight}"); -app->log->info("Session started: $datas{lang} $right $datas{SystemName}t $datas{DomainName}"); +#app->log->info("Current theme : $theme"); +#app->log->info("Current theme : ${app->renderer->paths}[0] & ${app->static->paths}[0]"); +#app->log->info("Current theme : ${app->renderer->paths}[1] & ${app->static->paths}[1]") if ( ${app->renderer->paths}[1] ); my $r = app->routes; @@ -95,6 +81,8 @@ $r->get('/ibayd')->to('ibays#do_display')->name('ibaydis'); $r->post('/ibayd')->to('ibays#do_update')->name('ibayupd'); +$r->get('/initial')->to('initial#main')->name('initial'); + $r->get('/logout')->to('main#logout')->name('logout'); $r->get('/manual')->to('manual#main')->name('manual'); @@ -122,6 +110,7 @@ $r->get('/starterwebsite')->to('starterwebsite#main')->name('starterwebsite'); $r->post('/starterwebsite')->to('starterwebsite#do_site')->name('starterwebsite2'); $r->get('/support')->to('support#main')->name('support'); +$r->post('/swttheme')->to('swttheme#main')->name('swttheme'); $r->get('/wbl')->to('wbl#main')->name('wbl'); $r->post('/wbl')->to('wbl#do_display')->name('wbldis'); $r->post('/wbl2')->to('wbl#do_update')->name('wblupd'); @@ -142,7 +131,7 @@ my $url = $c->req->url; my $version = $c->req->version; my $ip = $c->tx->remote_address; - return "Requete recue => $method $url HTTP/$version depuis $ip"; + return "Received request => $method $url HTTP/$version from $ip"; }); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/t/srvmngr.t smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/t/srvmngr.t --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/t/srvmngr.t 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/t/srvmngr.t 2020-01-26 17:13:18.000000000 +0400 @@ -23,8 +23,15 @@ ->status_is(200) ->json_is({ConsoleMode => {type => 'login'}}); +$t->get_ok('/getconfig/C') + ->status_is(404); + $t->get_ok('/getaccount/Primary') ->status_is(200) ->json_is('/name', 'Primary') ->json_is('//type', 'ibay'); +$t->get_ok('/getaccount/1') + ->status_is(404); + +done_testing(); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/AdminLTE/templates/layouts/default.html.ep smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/AdminLTE/templates/layouts/default.html.ep --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/AdminLTE/templates/layouts/default.html.ep 2020-01-26 23:54:12.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/AdminLTE/templates/layouts/default.html.ep 2020-01-27 11:17:38.000000000 +0400 @@ -26,6 +26,10 @@ + %= include 'partials/_header' + % if ( not defined $c->session->{lang} ) { + % SrvMngr::init_session_cgi ( $c ); + % }
@@ -181,7 +185,8 @@
--> - %= include 'partials/_header' + %= include 'partials/_swt_theme' +