Erweiterung der Ausgabe in der Kontenuebersicht
[kivitendo-erp.git] / bin / mozilla / admin.pl
index a6200ba..4248a9c 100644 (file)
@@ -78,10 +78,7 @@ $form->{stylesheet} = "lx-office-erp.css";
 $form->{favicon}    = "favicon.ico";
 
 if ($form->{action}) {
-
-  $subroutine = $locale->findsub($form->{action});
-
-  if ($auth->authenticate_root($form->{rpw}, 0)) {
+  if ($auth->authenticate_root($form->{rpw}, 0) != Auth::OK) {
     $form->{error_message} = $locale->text('Incorrect Password!');
     adminlogin();
     exit;
@@ -89,10 +86,15 @@ if ($form->{action}) {
 
   $auth->create_or_refresh_session() if ($auth->session_tables_present());
 
-  call_sub($subroutine);
+  call_sub($locale->findsub($form->{action}));
 
-} else {
+} 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!'))
     unless (User->dbdrivers);
@@ -626,12 +628,29 @@ sub dbselect_source {
 
   $form->{title}     = "Lx-Office ERP / " . $locale->text('Database Administration');
 
-  $form->{ALLOW_DBBACKUP} = "$pg_dump_exe" ne "DISABLED";
+  # Intentionnaly disabled unless fixed to work with the authentication DB.
+  $form->{ALLOW_DBBACKUP} = 0; # "$pg_dump_exe" ne "DISABLED";
 
   $form->header();
   print $form->parse_html_template("admin/dbadmin");
 }
 
+sub test_db_connection {
+  $form->{dbdriver} = 'Pg';
+  User::dbconnect_vars($form, $form->{dbname});
+
+  my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd});
+
+  $form->{connection_ok} = $dbh ? 1 : 0;
+  $form->{errstr}        = $DBI::errstr;
+
+  $dbh->disconnect() if ($dbh);
+
+  $form->{title} = $locale->text('Database Connection Test');
+  $form->header();
+  print $form->parse_html_template("admin/test_db_connection");
+}
+
 sub continue {
   call_sub($form->{"nextsub"});
 }