diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf
--- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf 2019-12-31 17:50:50.000000000 +0400
+++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/conf/srvmngr.conf 2020-01-12 23:24:34.930000000 +0400
@@ -1,12 +1,12 @@
{
secrets => ['new sessionsLeYTmFPhw3q', 'for validation QrPTZhWJmqCjyGZmguK'],
- theme => 'default',
-# theme => 'perso',
+# theme => 'default',
+ theme => 'AdminLTE',
# navigation_script_file => "js/navigation.js",
# navigation_div_file => "themes/default/templates/partials/_navig.html.ep",
navigation_script_file => "themes/default/public/js/navigation.js",
navigation_div_file => "themes/default/templates/partials/_navig.html.ep",
navigation_has_changed => 1,
modules_dir => "lib/SrvMngr/Controller",
- debug => 1,
+ debug => 0,
}
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-01 17:35:59.000000000 +0400
+++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Groups.pm 2020-01-01 22:19:41.000000000 +0400
@@ -136,10 +136,12 @@
if ( $trt eq 'ADD' ) {
- my $groupName = ($c->param('groupName') || '');
- my $groupDesc = ($c->param('groupDesc') || '');
- my @members = ($c->param('groupMembers') || '');
+ my $groupName = $c->param('groupName');
+ my $groupDesc = $c->param('groupDesc');
+ my @members = $c->param('groupMembers');
+
my $members = join ( ",", @members );
+ $c->app->log->info("members: " . $c->dumper($groupName) . " " .$c->dumper($groupDesc) . " " .$c->dumper(@members) . " " . $c->dumper($members));
# controls (validate ?????)
my $res = validate_group( $c, $groupName );
@@ -162,6 +164,8 @@
$groupDesc, 'Members', $members
);
+ $c->app->log->info("props: " . $c->dumper(%props));
+
if ( ! $result ) {
$adb->new_record( $groupName, \%props );
@@ -172,7 +176,7 @@
#???$c->clear_params();
system("/sbin/e-smith/signal-event", "group-create", "$groupName") ==0
- or $result .= $c->l('grp_CREATE_ERROR')."\n";
+ or $result .= $c->l('qgp_CREATE_ERROR')."\n";
}
@@ -183,9 +187,9 @@
if ( $trt eq 'UPD' ) {
- my $groupName = $c->param('group');
- my $groupDesc = ($c->param('groupDesc') || '');
- my @members = ($c->param('groupMembers') || '');
+ my $groupName = $c->param('groupName');
+ my $groupDesc = $c->param('groupDesc');
+ my @members = $c->param('groupMembers');
my $members = join ( ",", @members );
# controls
@@ -197,11 +201,24 @@
$result .= $res unless $res eq 'OK';
if ( ! $result ) {
- # $res = new_group( $c, $name, $description, $location, $remoteName, $address );
- # $result .= $res unless $res eq 'OK';
- # if ( ! $result ) {
+
+ $c->app->log->info("groupName: " . $c->dumper($groupName) . " , " . $c->dumper($members). " << " . $c->dumper(@members));
+
+ $adb->get($groupName)->set_prop( 'Members', $members );
+ $adb->get($groupName)->set_prop( 'Description', $groupDesc );
+
+ # Untaint groupName before use in system()
+ ($groupName) = ($groupName =~ /^([a-z][\-\_\.a-z0-9]*)$/);
+
+ #???$c->clear_params();
+
+ system("/sbin/e-smith/signal-event", "group-modify", "$groupName") ==0
+ or $result .= $c->l('qgp_MODIFY_ERROR')."\n";
+
+ }
+
+ if ( ! $result ) {
$result = $c->l('grp_MODIFIED_GROUP') . ' ' . $groupName;
- # }
}
}
@@ -212,11 +229,11 @@
if ($group =~ /^([a-z][\-\_\.a-z0-9]*)$/) {
$group = $1;
} else {
- $result .= $c->l('grp_GROUP_NAMING') . ':' . $group;
+ $result .= $c->l('grp_ERR_INTERNAL_FAILURE') . ':' . $group;
}
my $rec = $adb->get($group);
- $result .= $c->l('grp_NOT_A_GROUP') . ':' . $group unless ($rec);
+ $result .= $c->l('grp_ERR_INTERNAL_FAILURE') . ':' . $group unless ($rec);
if ( ! $result ) {
my $res = delete_group( $c, $group );
@@ -247,7 +264,7 @@
return (system ("/sbin/e-smith/signal-event", "group-delete", "$groupName") ||
!$adb->get($groupName)->delete()) ?
- $c->l('grp_DELETE_ERROR') : 'OK';
+ $c->l('DELETE_ERROR') : '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 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/Ibays.pm 2020-01-12 22:57:45.000000000 +0400
@@ -0,0 +1,567 @@
+package SrvMngr::Controller::Ibays;
+
+use strict;
+use warnings;
+use Mojo::Base 'Mojolicious::Controller';
+
+use Locale::gettext;
+use SrvMngr::I18N;
+
+#use esmith::FormMagick qw( validate_password );
+use CGI::FormMagick::Validator qw( call_fm_validation );
+use esmith::AccountsDB;
+use esmith::ConfigDB;
+use esmith::DomainsDB;
+
+#use esmith::FormMagick::Panel::ibays;
+
+our $adb = esmith::AccountsDB->open || die "Couldn't open accounts db";
+our $cdb = esmith::ConfigDB->open() || die "Couldn't open config db";
+
+sub main {
+
+ my $c = shift;
+ $c->app->log->info($c->log_req);
+
+ my %iba_datas = ();
+ my $title = $c->l('iba_FORM_TITLE');
+ my $modul = '';
+
+ $iba_datas{'trt'} = 'LIST';
+
+ my @ibays;
+ if ($adb)
+ {
+ @ibays = $adb->ibays();
+ }
+
+ $c->stash( title => $title, modul => $modul, iba_datas => \%iba_datas, ibays => \@ibays );
+ $c->render(template => 'ibays');
+
+};
+
+
+sub do_display {
+
+ my $c = shift;
+
+ my $rt = $c->current_route;
+ my $trt = ($c->param('trt') || 'ADD');
+ my $ibay = $c->param('ibay') || '';
+
+ #$trt = 'DEL' if ( $ibay );
+ #$trt = 'ADD' if ( $rt eq 'ibayadd' );
+
+ my %iba_datas = ();
+ my $title = $c->l('iba_FORM_TITLE');
+ my $modul = '';
+
+ $iba_datas{'trt'} = $trt;
+
+ if ( $trt eq 'ADD' ) {
+
+ $iba_datas{ibay} = '';
+ $iba_datas{description} = '';
+ $iba_datas{group} = '';
+ $iba_datas{userAccess} = '';
+ $iba_datas{publicAccess} = '';
+ $iba_datas{CgiBin} = '';
+ $iba_datas{SSL} = '';
+
+ }
+
+ if ( $trt eq 'UPD' ) {
+
+ my $rec = $adb->get($ibay);
+ if ($rec and $rec->prop('type') eq 'ibay') {
+ $iba_datas{ibay} = $ibay;
+ $iba_datas{description} = $rec->prop('Name') || '';
+ $iba_datas{group} = $rec->prop('Group') || '';
+ $iba_datas{userAccess} = $rec->prop('UserAccess') || '';
+ $iba_datas{publicAccess} = $rec->prop('PublicAccess') || '';
+ $iba_datas{CgiBin} = $rec->prop('CgiBin') || 'disabled';
+ $iba_datas{SSL} = $rec->prop('SSL') || 'disabled';
+
+ }
+ }
+
+ if ( $trt eq 'DEL' ) {
+
+ my $rec = $adb->get($ibay);
+ if ($rec and $rec->prop('type') eq 'ibay') {
+ $iba_datas{ibay} = $ibay;
+ $iba_datas{description} = $rec->prop('Name') || '';
+ $modul .= print_vhost_message( $c, $ibay );
+ }
+
+ }
+
+ if ( $trt eq 'PWD' ) {
+
+ my $rec = $adb->get($ibay);
+ if ($rec and $rec->prop('type') eq 'ibay') {
+ $iba_datas{ibay} = $ibay;
+ $iba_datas{description} = $rec->prop('Name') || '';
+ }
+
+ }
+
+ if ( $trt eq 'LIST' ) {
+ my @ibays;
+ if ($adb)
+ {
+ @ibays = $adb->ibays();
+ }
+ $c->stash( ibays => \@ibays );
+
+ }
+
+ $c->stash( title => $title, modul => $modul, iba_datas => \%iba_datas );
+ $c->render( template => 'ibays' );
+
+};
+
+
+sub do_update {
+
+ my $c = shift;
+ $c->app->log->info($c->log_req);
+
+ my $rt = $c->current_route;
+ my $trt = ($c->param('trt') || 'LIST');
+
+ my %iba_datas = ();
+ my $title = $c->l('iba_FORM_TITLE');
+
+ $iba_datas{'trt'} = $trt;
+
+ my $result = '';
+
+ if ( $trt eq 'ADD' ) {
+
+ my $name = ($c->param('ibay') || '');
+
+ # controls
+ my $res = validate_ibay( $c, $name );
+ $result .= $res unless $res eq 'OK';
+
+ if ( ! $result ) {
+ $res = create_ibay( $c, $name );
+ $result .= $res unless $res eq 'OK';
+ if ( ! $result ) {
+ $result = $c->l('iba_SUCCESSFULLY_CREATED_IBAY') . ' ' . $name;
+ $iba_datas{trt} = 'LST';
+ }
+ }
+ }
+
+ if ( $trt eq 'UPD' ) {
+
+ my $name = ($c->param('ibay') || '');
+
+ # controls
+ my $res = '';
+
+ if ( ! $result ) {
+ $res = modify_ibay( $c, $name );
+ $result .= $res unless $res eq 'OK';
+ if ( ! $result ) {
+ $result = $c->l('iba_SUCCESSFULLY_MODIFIED_IBAY') . ' ' . $name;
+ $iba_datas{trt} = 'LST';
+ }
+ }
+ }
+
+ if ( $trt eq 'PWD' ) {
+
+ my $ibay = ($c->param('ibay') || '');
+ my $pass1 = ($c->param('newPass') || '');
+ my $pass2 = ($c->param('newPassVerify') || '');
+
+ # controls
+ unless ($pass1 eq $pass2) {
+ $result .= $c->l('iba_IBAY_PASSWD_VERIFY_ERROR') . ' - ';
+ }
+
+ my $res = check_password( $c, $pass1 );
+ $result .= $res unless $res eq 'OK';
+
+ if ( ! $result ) {
+ my $res = reset_password( $c, $ibay, $pass1 );
+ $result .= $res unless $res eq 'OK';
+ if ( ! $result ) {
+ $result = $c->l('iba_SUCCESSFULLY_RESET_PASSWORD') . ' ' . $ibay;
+ $iba_datas{trt} = 'LST';
+ }
+ }
+ }
+
+ if ( $trt eq 'DEL' ) {
+
+ my $ibay = $c->param ('ibay');
+
+ if ($ibay =~ /^([a-z][a-z0-9]*)$/) {
+ $ibay = $1;
+ } else {
+ $result .= $c->l('iba_ERR_INTERNAL_FAILURE') . ':' . $ibay;
+ }
+
+ if ( ! $result ) {
+ my $res = remove_ibay( $c, $ibay );
+ $result .= $res unless $res eq 'OK';
+ if ( ! $result ) {
+ $result = $c->l('iba_SUCCESSFULLY_DELETED_IBAY') . ' ' . $ibay;
+ $iba_datas{trt} = 'LST';
+ }
+ }
+ }
+
+ my $title = $c->l('iba_FORM_TITLE');
+
+ $c->stash( title => $title, modul => $result, iba_datas => \%iba_datas );
+ $c->render(template => 'module');
+
+};
+
+
+sub validate_ibay {
+
+ my ($c, $name) = @_;
+
+ my $msg = validate_name($c, $name);
+ unless ($msg eq "OK")
+ {
+ return ($msg);
+ }
+
+ $msg = max_ibay_name_length($c, $name);
+ unless ($msg eq "OK")
+ {
+ return ($msg);
+ }
+
+ $msg = conflict_check($c, $name);
+ unless ($msg eq "OK")
+ {
+ return ($msg);
+ }
+
+ return ('OK');
+}
+
+
+sub create_ibay {
+
+ my ($c, $name) = @_;
+
+ my $msg;
+ my $uid = $adb->get_next_uid();
+ if (my $acct = $adb->new_record($name, {
+ Name => $c->param('ibayDesc'),
+ CgiBin => $c->param('CgiBin'),
+ Group => $c->param('group'),
+ PublicAccess => $c->param('publicAccess'),
+ SSL => $c->param('SSL'),
+ UserAccess => $c->param('userAccess'),
+ Uid => $uid,
+ Gid => $uid,
+ PasswordSet => 'no',
+ type => 'ibay',
+ }) )
+ {
+ # Untaint $name before use in system()
+ $name =~ /(.+)/; $name = $1;
+ if (system ("/sbin/e-smith/signal-event", "ibay-create", $name) == 0) {
+ $msg = 'OK';
+ } else {
+ $msg = $c->l('iba_ERROR_WHILE_CREATING_IBAY');
+ }
+ } else {
+ $msg = $c->l('iba_CANT_CREATE_IBAY');
+ }
+ return $msg;
+
+}
+
+
+sub modify_ibay {
+ my ($c, $name) = @_;
+
+ my $msg;
+ if (my $acct = $adb->get($name)) {
+ if ($acct->prop('type') eq 'ibay') {
+ $acct->merge_props(
+ Name => $c->param('ibayDesc'),
+ CgiBin => $c->param('CgiBin'),
+ Group => $c->param('group'),
+ PublicAccess => $c->param('publicAccess'),
+ SSL => $c->param('SSL'),
+ UserAccess => $c->param('userAccess'),
+ );
+
+ # Untaint $name before use in system()
+ $name =~ /(.+)/; $name = $1;
+ if (system ("/sbin/e-smith/signal-event", "ibay-modify",
+ $name) == 0)
+ {
+ $msg = 'OK';
+ } else {
+ $msg = $c->l('iba_ERROR_WHILE_MODIFYING_IBAY');
+ }
+ } else {
+ $msg = $c->l('iba_CANT_FIND_IBAY');
+ }
+ } else {
+ $msg = $c->l('iba_CANT_FIND_IBAY');
+ }
+
+ return $msg;
+
+}
+
+
+sub print_vhost_message {
+ my $c = shift;
+ my $name = $c->param('ibay');
+
+ my $result = '';
+
+ my $domaindb = esmith::DomainsDB->open();
+ my @domains = $domaindb->get_all_by_prop(Content => $name);
+ my $vhostListItems = join "\n",
+ (map ($_->key." ".$_->prop('Description'), @domains));
+ if ($vhostListItems)
+ {
+ $result = $c->l('iba_VHOST_MESSAGE') . "
@@ -402,11 +218,9 @@ ', 'sws_FORM_TITLE' => 'Create a starter website', -'sws_SUCCESS' => -'Successfully created starter web site (wrote file index.htm). +'sws_SUCCESS' => 'Successfully created starter web site (wrote file index.htm). You can visit your new website at the address below:', -'sws_DESCRIPTION' => -'
+'sws_DESCRIPTION' => '
To create a simple web page for your company, fill in the fields below and click on Create.
@@ -429,10 +243,8 @@ overwrite the "index.htm" file in your web site directory. ', -'sws_LABEL_COMPANYNAME' => -'Company name', -'sws_DESC_HEADER1' => -' +'sws_LABEL_COMPANYNAME' => 'Company name', +'sws_DESC_HEADER1' => ' First header, typically used for short phrases such as "Leader in the field of textile manufacturing" ', @@ -475,182 +287,105 @@ 'The report will contain the following information', 'bugr_SME_VERSION' => 'Koozali SME Server version', -'bugr_SERVER_MODE' => -'Server mode', -'bugr_KERNEL_AND_ARCH' => -'Current running kernel version and architecture', -'bugr_INSTALLED_RPMS' => -'A list of additional RPMs installed on your server', -'bugr_ALTERED_TEMPLATES' => -'A list of SME templates that have been altered on your server from a base install', -'bugr_ALTERED_EVENTS' => -'A list of SME events that have been altered on your server from a base install', -'bugr_YUM_REPOS' => -'A list of additional software repositories configured on your server', -'bugr_PRIVACY' => -'No privacy related data (ie. users, passwords, IP addresses) will be included in the report.', -'bugr_CREATE_REPORT' => -'Create configuration report', -'bugr_DONATING' => -'Have you considered donating?', -'bugr_AWARE_SME' => -'You are probaly aware that SME server is developed and supported by a collaborative community of volunteers from all over the world. While SME server is free to download and use, maintaining the infrastructure behind the project (eg. hosting the forums and wiki, providing repositories and build servers etc.) costs real money in the real world.', -'bugr_YOUR_HELP' => -'In very much the same way you need us to address your current issue, we need YOUR help to keep this project alive!', -'bugr_CONSIDER_DONATING' => -'Please consider donating to the project by clicking on the image link below:', -'bugr_THANK_YOU' => -'Thank you for your support!', -'bugr_Download this report' => -'Download this report !', -'bugr_Report a bug' => -'Report a bug', - -'rvw_FORM_TITLE' => -'Review configuration', -'rvw_DESCRIPTION' => -'This report summarizes the networking, server, and domain +'bugr_SERVER_MODE' => 'Server mode', +'bugr_KERNEL_AND_ARCH' => 'Current running kernel version and architecture', +'bugr_INSTALLED_RPMS' => 'A list of additional RPMs installed on your server', +'bugr_ALTERED_TEMPLATES' => 'A list of SME templates that have been altered on your server from a base install', +'bugr_ALTERED_EVENTS' => 'A list of SME events that have been altered on your server from a base install', +'bugr_YUM_REPOS' => 'A list of additional software repositories configured on your server', +'bugr_PRIVACY' => 'No privacy related data (ie. users, passwords, IP addresses) will be included in the report.', +'bugr_CREATE_REPORT' => 'Create configuration report', +'bugr_DONATING' => 'Have you considered donating?', +'bugr_AWARE_SME' => 'You are probaly aware that SME server is developed and supported by a collaborative community of volunteers from all over the world. While SME server is free to download and use, maintaining the infrastructure behind the project (eg. hosting the forums and wiki, providing repositories and build servers etc.) costs real money in the real world.', +'bugr_YOUR_HELP' => 'In very much the same way you need us to address your current issue, we need YOUR help to keep this project alive!', +'bugr_CONSIDER_DONATING' => 'Please consider donating to the project by clicking on the image link below:', +'bugr_THANK_YOU' => 'Thank you for your support!', +'bugr_Download this report' => 'Download this report !', +'bugr_Report a bug' => 'Report a bug', + +'rvw_FORM_TITLE' => 'Review configuration', +'rvw_DESCRIPTION' => 'This report summarizes the networking, server, and domain parameters on this server relevant to configuring the client computers on your network.You may wish to print this -page and use it as a reference. -', -'rvw_NETWORKING_PARAMS' => -'Networking Parameters', -'rvw_SERVER_MODE' => -'Server Mode', -'rvw_LOCAL_IP_ADDRESS_SUBNET_MASK' => -'Local IP address / subnet mask', -'rvw_EXTERNAL_IP_ADDRESS_SUBNET_MASK' => -'External IP address / subnet mask', -'rvw_GATEWAY' => -'Gateway', -'rvw_ADDITIONAL_LOCAL_NETWORKS' => -'Additional local networks', -'rvw_DHCP_SERVER' => -'DHCP server', -'rvw_BEGINNING_OF_DHCP_ADDRESS_RANGE' => -'Beginning of DHCP address range', -'rvw_END_OF_DHCP_ADDRESS_RANGE' => -'End of DHCP address range', -'rvw_SERVER_NAMES' => -'Server names', -'rvw_DNS_SERVER' => -'DNS server', -'rvw_WEB_SERVER' => -'Web server', -'rvw_PROXY_SERVER' => -'Proxy server', -'rvw_FTP_SERVER' => -'FTP server', -'rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS' => -'SMTP, POP, and IMAP mail servers', -'rvw_HOSTS' => -'Hosts', -'rvw_DOMAIN_INFORMATION' => -'Domain information', -'rvw_PRIMARY_DOMAIN' => -'Primary domain', -'rvw_VIRTUAL_DOMAINS' => -'Virtual domains', -'rvw_PRIMARY_WEB_SITE' => -'Primary web site', -'rvw_SERVER_MANAGER' => -'Server manager', -'rvw_USER_PASSWORD_PANEL' => -'User password panel', -'rvw_EMAIL_ADDRESSES' => -'Email Addresses', -'rvw_EMAIL_USERACCOUNT' => -'useraccount', -'rvw_EMAIL_FIRSTNAME' => -'firstname', -'rvw_EMAIL_LASTNAME' => -'lastname', -'rvw_NO_VIRTUAL_DOMAINS' => -'No virtual domains defined', -'rvw_NO_NETWORKS' => -'No additional networks defined', -'rvw_INTERNET_VISIBLE_ADDRESS' => -'Internet Visible IP Address', - -'dir_FORM_TITLE' => -'Change LDAP directory settings', -'dir_LABEL_ROOT' => -'Server root', -'dir_DESCRIPTION' => -' -The LDAP server provides a network-available listing of the user accounts +page and use it as a reference.', +'rvw_NETWORKING_PARAMS' => 'Networking Parameters', +'rvw_SERVER_MODE' => 'Server Mode', +'rvw_LOCAL_IP_ADDRESS_SUBNET_MASK' => 'Local IP address / subnet mask', +'rvw_EXTERNAL_IP_ADDRESS_SUBNET_MASK' => 'External IP address / subnet mask', +'rvw_GATEWAY' => 'Gateway', +'rvw_ADDITIONAL_LOCAL_NETWORKS' => 'Additional local networks', +'rvw_DHCP_SERVER' => 'DHCP server', +'rvw_BEGINNING_OF_DHCP_ADDRESS_RANGE' => 'Beginning of DHCP address range', +'rvw_END_OF_DHCP_ADDRESS_RANGE' => 'End of DHCP address range', +'rvw_SERVER_NAMES' => 'Server names', +'rvw_DNS_SERVER' => 'DNS server', +'rvw_WEB_SERVER' => 'Web server', +'rvw_PROXY_SERVER' => 'Proxy server', +'rvw_FTP_SERVER' => 'FTP server', +'rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS' => 'SMTP, POP, and IMAP mail servers', +'rvw_HOSTS' => 'Hosts', +'rvw_DOMAIN_INFORMATION' => 'Domain information', +'rvw_PRIMARY_DOMAIN' => 'Primary domain', +'rvw_VIRTUAL_DOMAINS' => 'Virtual domains', +'rvw_PRIMARY_WEB_SITE' => 'Primary web site', +'rvw_SERVER_MANAGER' => 'Server manager', +'rvw_USER_PASSWORD_PANEL' => 'User password panel', +'rvw_EMAIL_ADDRESSES' => 'Email Addresses', +'rvw_EMAIL_USERACCOUNT' => 'useraccount', +'rvw_EMAIL_FIRSTNAME' => 'firstname', +'rvw_EMAIL_LASTNAME' => 'lastname', +'rvw_NO_VIRTUAL_DOMAINS' => 'No virtual domains defined', +'rvw_NO_NETWORKS' => 'No additional networks defined', +'rvw_INTERNET_VISIBLE_ADDRESS' => 'Internet Visible IP Address', + +'dir_FORM_TITLE' => 'Change LDAP directory settings', +'dir_LABEL_ROOT' => 'Server root', +'dir_DESCRIPTION' => 'The LDAP server provides a network-available listing of the user accounts and groups on your server, and can be accessed using an LDAP client such as the Address Book feature in Netscape Communicator. Configure your LDAP client with the local IP address of your server, port number 389, and the server root parameter shown below. ', -'dir_DESC_DIRECTORY_ACCESS' => -' You can control access to your LDAP directory: the private setting allows access only from your local network, and the public setting allows access from anywhere on the Internet. ', -'dir_DIRECTORY_ACCESS' => -'LDAP directory access', -'dir_DESC_DEPARTMENT' => -' -These fields are the LDAP defaults for your organization. +'dir_DESC_DIRECTORY_ACCESS' => ' You can control access to your LDAP directory: the private setting allows access only from your local network, and the public setting allows access from anywhere on the Internet. ', +'dir_DIRECTORY_ACCESS' => 'LDAP directory access', +'dir_DESC_DEPARTMENT' => 'These fields are the LDAP defaults for your organization. Whenever you create a new user account, you will be prompted to enter all of these fields (they can be different for each user) but the values you set here will show up as defaults. This is a convenience to make it -faster to create user accounts. -', -'dir_DEPARTMENT' => -'Default department', -'dir_COMPANY' => -'Default company', -'dir_STREET' => -'Default Street address', -'dir_CITY' => -'Default City', -'dir_PHONENUMBER' => -'Default Phone Number', -'dir_DESC_EXISTING' => -' -You can either leave existing user accounts as they are, using the above defaults only for -new users, or you can apply the above defaults to all existing users as well. -', -'dir_EXISTING' => -'Existing users', -'dir_SUCCESS' => -'The new LDAP default settings have been saved.', -'dir_LEAVE' => -'Leave as they are', -'dir_UPDATE' => -'Update with new defaults', -'dir_Directory' => -'Directory', +faster to create user accounts.', +'dir_DEPARTMENT' => 'Default department', +'dir_COMPANY' => 'Default company', +'dir_STREET' => 'Default Street address', +'dir_CITY' => 'Default City', +'dir_PHONENUMBER' => 'Default Phone Number', +'dir_DESC_EXISTING' => 'You can either leave existing user accounts as they are, using the above defaults only for +new users, or you can apply the above defaults to all existing users as well.', +'dir_EXISTING' => 'Existing users', +'dir_SUCCESS' => 'The new LDAP default settings have been saved.', +'dir_LEAVE' => 'Leave as they are', +'dir_UPDATE' => 'Update with new defaults', +'dir_Directory' => 'Directory', 'prx_TITLE' => 'Proxy settings', -'prx_FIRST_PAGE_DESCRIPTION' => ' -This page allows configuration of the server\'s +'prx_FIRST_PAGE_DESCRIPTION' => 'This page allows configuration of the server\'s proxy settings. The server includes a transparent proxy and cache for HTTP traffic. This is enabled by default, but not enforced if the server is in "serveronly" mode. If this server is acting as an e-mail server, connections from local network clients to external SMTP servers -will default to being redirected to the local e-mail server. -', -'prx_HTTP_PROXY_STATUS_DESCRIPTION' => -' -The server\'s HTTP proxy works to reduce overall uplink usage by +will default to being redirected to the local e-mail server.', +'prx_HTTP_PROXY_STATUS_DESCRIPTION' => 'The server\'s HTTP proxy works to reduce overall uplink usage by caching recently-visited pages. It is transparent to web browsers using this server as their gateway. Enable or disable this proxy -with the following toggle. -', +with the following toggle.', 'prx_HTTP_PROXY_STATUS_LABEL' => 'HTTP proxy status', -'prx_SMTP_PROXY_STATUS_DESCRIPTION' => -' -The server\'s transparent SMTP proxy works to reduce virus traffic +'prx_SMTP_PROXY_STATUS_DESCRIPTION' => 'The server\'s transparent SMTP proxy works to reduce virus traffic from infected client hosts by forcing all outgoing SMTP traffic through this server if set to "enabled". If you wish to use an alternate SMTP server, and this server is your gateway to it, set this proxy to "disabled". Setting the proxy to "blocked" prevents all SMTP traffic to other servers, this is the default. The proxy only intercepts/blocks normal smtp -(port 25) traffic. -', +(port 25) traffic.', 'prx_SMTP_PROXY_STATUS_LABEL' => 'SMTP proxy status', 'prx_ERR_PROXY_UPDATE_FAILED' => 'ERROR: The proxy-update event returned an error.', 'prx_ERR_NO_SQUID_REC' => 'ERROR: There is no squid record in the configuration database.', @@ -658,8 +393,7 @@ 'prx_BLOCKED' => 'Blocked', 'qma_FORM_TITLE' => 'Mail Log File Analysis', -'qma_INITIAL_DESC' => ' -Analysing the mail system log files can aid both in +'qma_INITIAL_DESC' => '
Analysing the mail system log files can aid both in understanding how your system is performing and in diagnosing delivery problems. Several different reports are available.
@@ -687,8 +421,7 @@ 'clm_FORM_TITLE' => 'Antivirus settings', 'clm_LABEL_FILESYSTEM_SCAN_PERIOD' => 'Scan filesystem', -'clm_DESC_FILESYSTEM_SCAN_PERIOD' => ' -The printer name should contain only lower-case letters and numbers, and should start with a lower-case letter. For example "hplaser", "epsonlp", and -"canonbj" are valid names.
-', +"canonbj" are valid names.', 'prt_ERR_UNEXPECTED_DESC' => 'Error: unexpected or missing characters in description. -Did not create new printer. -', +Did not create new printer.', 'prt_ERR_EXISTS' => 'Error: An account with the same name exists with type: ', 'prt_ERR_INVALID_ADDRESS' => 'Error: invalid network address. Did not create new printer.', 'prt_ERR_INVALID_REMOTE_NAME' => 'Error: invalid network printer name. Did not create new printer.', @@ -1003,7 +680,101 @@ 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 "{$group}."', + +'rbo_FORM_TITLE' => 'Shutdown or reboot', +'rbo_REBOOT' => 'Reboot', +'rbo_REBOOT_SUCCEEDED' => 'Reboot request initiated successfully.', +'rbo_DESC_REBOOT' => 'Your server has initiated the reboot process.', +'rbo_RECONFIGURE_SUCCEEDED' => 'Reconfiguration request initiated successfully.', +'rbo_DESC_RECONFIGURE' => 'Your server has initiated a full system reconfiguration and reboot.', +'rbo_SHUTDOWN_SUCCEEDED' => 'Shutdown request initiated successfully.', +'rbo_DESC_SHUTDOWN' => 'Your server has initiated the shutdown process. +The process will take several minutes to complete, after which +you can switch off the power.', +'rbo_LABEL_REBOOT' => 'Select Shutdown, Reboot or Reconfigure', +'rbo_DESCRIPTION' => 'You can reboot, shut down your server or perform a full system +reconfiguration from this screen. You must perform a shutdown +before switching the power off. All of these functions take +several minutes to complete. +When you click perform the operation will be initiated immediately, so be ready!', +'rbo_Reboot or shutdown' => 'Reboot or shutdown', + +'iba_FORM_TITLE' => 'Create, modify, or remove i-bays', +'iba_ADD_IBAY' => 'Add ibay', +'iba_FIRSTPAGE_DESC' => 'You can remove any information bay or reset its password by +clicking on the corresponding command +next to the information bay. If the information bay shows up +in red, that means that the password has not +yet been changed from the default, and should be changed +soon.', +'iba_ADD_TITLE' => 'Create or modify an i-bay', +'iba_NAME_FIELD_DESC' => 'The information bay name should contain only lower-case +letters, numbers, periods, hyphens and underscores, and +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.', +'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', +'iba_PUBLIC_ACCESS_DESCRIPTION' => 'The public access mode "password required outside local +network" is not supported by the FTP server component. If +you select this mode, the FTP server will require a +password both inside and outside the local network for this +i-bay.', +'iba_ALLOW_DYNAMIC_CONTENT' => 'Execution of dynamic content (CGI, PHP, SSI)', +'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}). +
+All files belonging to this information bay will be deleted. +
+Are you sure you wish to remove this information bay? +
', +'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_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 +bay as their content and will be changed to the primary web +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_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.', +'iba_ERROR_WHILE_RESETTING_PASSWORD' => 'Error while resetting password.', +'iba_VHOST_MESSAGE' => 'The following virtual domains were using this information bay +as their content and will be changed to the primary web site +(you can change them to something else afterward):
', +'iba_Information bays' => 'Information bays', +'WGRG' => 'Write = group, Read = group', +'WGRE' => 'Write = group, Read = everyone', +'WARG' => 'Write = admin, Read = group', +'NONE' => 'No access', +'LOCAL_NETWORK_NO_PASSWORD' => 'Local network (no password required)', +'LOCAL_NETWORK_PASSWORD' => 'Local network (password required)', +'ENTIRE_INTERNET_NO_PASSWORD' => 'Entire Internet (no password required)', +'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. +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.', ); diff -urN smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Navigation.pm smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Navigation.pm --- smeserver-manager-0.1.0.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Navigation.pm 2019-12-31 08:55:14.000000000 +0400 +++ smeserver-manager-0.1.0/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Navigation.pm 2020-01-07 23:57:48.000000000 +0400 @@ -242,6 +242,7 @@ }else if(tA[i].className==arg[2]){tA[i].className=arg[3];}}}}} '; printf SCR " + // language $language //This swap the class of the selected item. function swapClasses() { var arg=swapClasses.arguments; @@ -309,7 +310,7 @@ foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav {$h}{'DESCRIPTIONS'}}) { my ($target, $classNew) = ( $_->{'FILENAME'} =~ m/^2\// ) ? - ('_self',' class=\' accent\'') : + ('_self',' accent') : ('main','') ; my $href = '/server-manager' . $_->{'FILENAME'}; @@ -319,7 +320,7 @@ } else { - printf DIV "\n "; # printf DIV "\n