]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/Auth.pm
Merge branch 'master' of ssh://lx-office.linet-services.de/~/lx-office-erp
[kivitendo-erp.git] / SL / Auth.pm
index bf2a6a851b0bf69a4c97f1906e139316553d1da5..6bb7bfaa784e4f5344bb60615f9222301390a735 100644 (file)
@@ -33,6 +33,26 @@ sub new {
   return $self;
 }
 
+sub get_user_dbh {
+  my ($self, $login) = @_;
+  my %user = $self->read_user($login);
+  my $dbh  = DBI->connect(
+    $user{dbconnect},
+    $user{dbuser},
+    $user{dbpasswd},
+    {
+      pg_enable_utf8 => $::locale->is_utf8,
+      AutoCommit     => 0
+    }
+  ) or $::form->dberror;
+
+  if ($user{dboptions}) {
+    $dbh->do($user{dboptions}) or $::form->dberror($user{dboptions});
+  }
+
+  return $dbh;
+}
+
 sub DESTROY {
   my $self = shift;
 
@@ -106,7 +126,9 @@ sub authenticate_root {
 
   $main::lxdebug->leave_sub();
 
-  return $password eq $admin_password ? OK : ERR_PASSWORD;
+  return OK if $password eq $admin_password;
+  sleep 5;
+  return ERR_PASSWORD;
 }
 
 sub authenticate {
@@ -116,7 +138,10 @@ sub authenticate {
 
   $main::lxdebug->leave_sub();
 
-  return $self->{authenticator}->authenticate(@_);
+  my $result = $self->{authenticator}->authenticate(@_);
+  return OK if $result eq OK;
+  sleep 5;
+  return $result;
 }
 
 sub dbconnect {