X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fadmin.pl;h=2472f6c6cd1319e16c7f00336ccbb908450814fc;hb=dfb76ebf04df9aed8ba63d7b51bc558d2928030e;hp=3d1185deb20bfbbc5b961366b89c7008da403f60;hpb=f2af9def6777d0192a83c8a86f1332569c742051;p=kivitendo-erp.git diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index 3d1185deb..2472f6c6c 100755 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -33,7 +33,7 @@ #====================================================================== use DBI; -use CGI; +use Encode; use English qw(-no_match_vars); use Fcntl; use File::Copy; @@ -67,24 +67,24 @@ sub run { $::lxdebug->enter_sub; my $session_result = shift; - $cgi = $::cgi; $form = $::form; $locale = $::locale; $auth = $::auth; - $::auth->set_session_value('rpw', $::form->{rpw}) if $session_result == SL::Auth->SESSION_OK; + $::auth->store_root_credentials_in_session($form->{rpw}) if $session_result == SL::Auth->SESSION_OK; $form->{stylesheet} = "lx-office-erp.css"; $form->{favicon} = "favicon.ico"; if ($form->{action}) { - if ($auth->authenticate_root($form->{rpw}, 0) != $auth->OK()) { + if ($auth->authenticate_root($form->{rpw}) != $auth->OK()) { $form->{error_message} = $locale->text('Incorrect Password!'); + $auth->delete_session_value('rpw'); adminlogin(); } else { if ($auth->session_tables_present()) { - $::auth->set_session_value('rpw', $::form->{rpw}); - $::auth->create_or_refresh_session(); + $::auth->store_root_credentials_in_session($::form->{rpw}); + delete $::form->{rpw}; _apply_dbupgrade_scripts(); } @@ -194,6 +194,7 @@ sub create_auth_tables { $main::auth->save_group($group); } + _apply_dbupgrade_scripts(); login(); } @@ -341,7 +342,10 @@ sub list_users { delete $members{"root login"}; - map { $_->{templates} =~ s|.*/||; } values %members; + for (values %members) { + $_->{templates} =~ s|.*/||; + $_->{login_url} = $::locale->is_utf8 ? Encode::encode('utf-8-strict', $_->{login}) : $_->{login_url}; + } $form->{title} = "Lx-Office ERP " . $locale->text('Administration'); $form->{LOCKED} = -e _nologin_file_name(); @@ -543,11 +547,11 @@ sub save_user { closedir TEMPLATEDIR; foreach my $file (@templates) { - open(TEMP, $::lx_office_conf{paths}->{templates} . "/$file") + open(TEMP, "<", $::lx_office_conf{paths}->{templates} . "/$file") or $form->error($::lx_office_conf{paths}->{templates} . "/$file : $ERRNO"); $file =~ s/\Q$form->{mastertemplates}\E-//; - open(NEW, ">$form->{templates}/$file") + open(NEW, ">", "$form->{templates}/$file") or $form->error("$form->{templates}/$file : $ERRNO"); while (my $line = ) { @@ -734,7 +738,8 @@ sub dbupdate { foreach my $i (@update_rows) { restore_form($saved_form); - map { $form->{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd); + %::myconfig = (); + map { $form->{$_} = $::myconfig{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd); print $form->parse_html_template("admin/dbupgrade_header"); @@ -767,12 +772,30 @@ sub create_dataset { } closedir SQLDIR; - my $default_charset = $main::dbcharset; + $form->{ACCOUNTING_METHODS} = []; + foreach my $item ( qw(accrual cash) ) { + push @{ $form->{ACCOUNTING_METHODS} }, { "name" => $item, + "selected" => $item eq "cash" }; + }; + + $form->{INVENTORY_SYSTEMS} = []; + foreach my $item ( qw(perpetual periodic) ) { + push @{ $form->{INVENTORY_SYSTEMS} }, { "name" => $item, + "selected" => $item eq "periodic" }; + }; + + $form->{PROFIT_DETERMINATIONS} = []; + foreach my $item ( qw(balance income) ) { + push @{ $form->{PROFIT_DETERMINATIONS} }, { "name" => $item, + "selected" => $item eq "income" }; + }; + + my $default_charset = $::lx_office_conf{system}->{dbcharset}; $default_charset ||= Common::DEFAULT_CHARSET; my $cluster_encoding = User->dbclusterencoding($form); if ($cluster_encoding && ($cluster_encoding =~ m/^(?:UTF-?8|UNICODE)$/i)) { - if ($main::dbcharset !~ m/^UTF-?8$/i) { + if ($::lx_office_conf{system}->{dbcharset} !~ m/^UTF-?8$/i) { $form->show_generic_error($locale->text('The selected PostgreSQL installation uses UTF-8 as its encoding. ' . 'Therefore you have to configure Lx-Office to use UTF-8 as well.'), 'back_button' => 1); @@ -846,7 +869,7 @@ sub backup_dataset { $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset'); if ($::lx_office_conf{applications}->{pg_dump} eq "DISABLED") { - $form->error($locale->text('Database backups and restorations are disabled in lx-erp.conf.')); + $form->error($locale->text('Database backups and restorations are disabled in the configuration.')); } my @dbsources = sort User->dbsources($form); @@ -870,7 +893,7 @@ sub backup_dataset_start { my $pg_dump_exe = $::lx_office_conf{applications}->{pg_dump} || "pg_dump"; if ("$pg_dump_exe" eq "DISABLED") { - $form->error($locale->text('Database backups and restorations are disabled in lx-erp.conf.')); + $form->error($locale->text('Database backups and restorations are disabled in the configuration.')); } $form->isblank("dbname", $locale->text('The dataset name is missing.')); @@ -934,7 +957,7 @@ sub backup_dataset_start { map { $mail->{$_} = $form->{$_} } qw(from to cc subject message); - $mail->{charset} = $main::dbcharset ? $main::dbcharset : Common::DEFAULT_CHARSET; + $mail->{charset} = $::lx_office_conf{system}->{dbcharset} || Common::DEFAULT_CHARSET; $mail->{attachments} = [ { "filename" => $tmp, "name" => $name } ]; $mail->send(); @@ -955,10 +978,10 @@ sub restore_dataset { $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset'); if ($::lx_office_conf{applications}->{pg_restore} eq "DISABLED") { - $form->error($locale->text('Database backups and restorations are disabled in lx-erp.conf.')); + $form->error($locale->text('Database backups and restorations are disabled in the configuration.')); } - my $default_charset = $main::dbcharset; + my $default_charset = $::lx_office_conf{system}->{dbcharset}; $default_charset ||= Common::DEFAULT_CHARSET; $form->{DBENCODINGS} = []; @@ -982,7 +1005,7 @@ sub restore_dataset_start { my $pg_restore_exe = $::lx_office_conf{applications}->{pg_restore} || "pg_restore"; if ("$pg_restore_exe" eq "DISABLED") { - $form->error($locale->text('Database backups and restorations are disabled in lx-erp.conf.')); + $form->error($locale->text('Database backups and restorations are disabled in the configuration.')); } $form->isblank("new_dbname", $locale->text('The dataset name is missing.')); @@ -1112,7 +1135,7 @@ sub lock_system { my $form = $main::form; my $locale = $main::locale; - open(FH, ">" . _nologin_file_name()) + open(FH, ">", _nologin_file_name()) or $form->error($locale->text('Cannot create Lock!')); close(FH);