X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fadmin.pl;h=eee799958f92a7173a98634dd926e4ffd91b35a6;hb=1e513d1dc428b188ac7acbf06de82d32c5d79f1a;hp=ebf01c67930cbc8c55a2ba117d9b6fbcbf20dc44;hpb=6cf3f7762efd40bee49a2b8f11bb4ab6915d9071;p=kivitendo-erp.git diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index ebf01c679..eee799958 100755 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -42,7 +42,9 @@ use POSIX qw(strftime); use Sys::Hostname; use SL::Auth; +use SL::Auth::PasswordPolicy; use SL::Form; +use SL::Iconv; use SL::Mailer; use SL::User; use SL::Common; @@ -52,6 +54,7 @@ use SL::DBUtils; require "bin/mozilla/common.pl"; require "bin/mozilla/admin_groups.pl"; +require "bin/mozilla/admin_printer.pl"; use strict; @@ -82,14 +85,11 @@ sub run { if ($auth->session_tables_present()) { $::auth->set_session_value('rpw', $::form->{rpw}); $::auth->create_or_refresh_session(); + _apply_dbupgrade_scripts(); } + call_sub($locale->findsub($form->{action})); } - } elsif ($auth->authenticate_root($form->{rpw}, 0) == $auth->OK()) { - - $auth->create_or_refresh_session() if ($auth->session_tables_present()); - - login(); } else { # if there are no drivers bail out $form->error($locale->text('No Database Drivers available!')) @@ -363,8 +363,12 @@ sub add_user { "dateformat" => "dd.mm.yy", "stylesheet" => "lx-office-erp.css", "menustyle" => "old", + dbport => $::auth->{DB_config}->{port} || 5432, + dbuser => $::auth->{DB_config}->{user} || 'lxoffice', + dbhost => $::auth->{DB_config}->{host} || 'localhost', }; + edit_user_form($myconfig); } @@ -517,12 +521,6 @@ sub save_user { $myconfig->save_member(); - if ($main::auth->can_change_password() - && defined $form->{new_password} - && ($form->{new_password} ne '********')) { - $main::auth->change_password($form->{login}, $form->{new_password}); - } - $form->{templates} =~ s|.*/||; $form->{templates} = "$main::templates/$form->{templates}"; $form->{mastertemplates} =~ s|.*/||; @@ -575,8 +573,20 @@ sub save_user { } } - $form->redirect($locale->text('User saved!')); + if ($main::auth->can_change_password() + && defined $form->{new_password} + && ($form->{new_password} ne '********')) { + my $verifier = SL::Auth::PasswordPolicy->new; + my $result = $verifier->verify($form->{new_password}, 1); + + if ($result != SL::Auth::PasswordPolicy->OK()) { + $form->error($::locale->text('The settings were saved, but the password was not changed.') . ' ' . join(' ', $verifier->errors($result))); + } + $main::auth->change_password($form->{login}, $form->{new_password}); + } + + $form->redirect($locale->text('User saved!')); } sub save_user_as_new { @@ -650,10 +660,10 @@ sub dbselect_source { my $form = $main::form; my $locale = $main::locale; - $form->{dbport} = '5432'; - $form->{dbuser} = 'lxoffice'; + $form->{dbport} = $::auth->{DB_config}->{port} || 5432; + $form->{dbuser} = $::auth->{DB_config}->{user} || 'lxoffice'; $form->{dbdefault} = 'template1'; - $form->{dbhost} = 'localhost'; + $form->{dbhost} = $::auth->{DB_config}->{host} || 'localhost'; $form->{title} = "Lx-Office ERP / " . $locale->text('Database Administration'); @@ -723,15 +733,13 @@ sub dbupdate { map { $form->{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd); - my $controls = parse_dbupdate_controls($form, $form->{dbdriver}); - print $form->parse_html_template("admin/dbupgrade_header"); $form->{dbupdate} = $form->{dbname}; $form->{$form->{dbname}} = 1; User->dbupdate($form); - User->dbupdate2($form, $controls); + User->dbupdate2($form, SL::DBUpgrade2->new(form => $form, dbdriver => $form->{dbdriver})->parse_dbupdate_controls); print $form->parse_html_template("admin/dbupgrade_footer"); } @@ -1168,4 +1176,8 @@ sub dispatcher { $form->error($locale->text('No action defined.')); } +sub _apply_dbupgrade_scripts { + ::end_of_request() if SL::DBUpgrade2->new(form => $::form, dbdriver => 'Pg', auth => 1)->apply_admin_dbupgrade_scripts(1); +} + 1;