X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/97ca71803894a306320729483111d02fa5d61cec..19f96ce52f5145d8bf54060f18ab854d3e9034ca:/SL/Auth.pm diff --git a/SL/Auth.pm b/SL/Auth.pm index 72e36978f..bf2a6a851 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -1,18 +1,13 @@ package SL::Auth; -use constant OK => 0; -use constant ERR_PASSWORD => 1; -use constant ERR_BACKEND => 100; - -use constant SESSION_OK => 0; -use constant SESSION_NONE => 1; -use constant SESSION_EXPIRED => 2; +use DBI; use Digest::MD5 qw(md5_hex); use IO::File; use Time::HiRes qw(gettimeofday); use List::MoreUtils qw(uniq); +use SL::Auth::Constants qw(:all); use SL::Auth::DB; use SL::Auth::LDAP; @@ -144,7 +139,7 @@ sub dbconnect { $main::lxdebug->message(LXDebug->DEBUG1, "Auth::dbconnect DSN: $dsn"); - $self->{dbh} = DBI->connect($dsn, $cfg->{user}, $cfg->{password}, { 'AutoCommit' => 0 }); + $self->{dbh} = DBI->connect($dsn, $cfg->{user}, $cfg->{password}, { pg_enable_utf8 => $::locale->is_utf8, AutoCommit => 0 }); if (!$may_fail && !$self->{dbh}) { $main::form->error($main::locale->text('The connection to the authentication database failed:') . "\n" . $DBI::errstr); @@ -219,17 +214,17 @@ sub create_database { $main::lxdebug->message(LXDebug->DEBUG1(), "Auth::create_database DSN: $dsn"); - my $dbh = DBI->connect($dsn, $params{superuser}, $params{superuser_password}); - - if (!$dbh) { - $main::form->error($main::locale->text('The connection to the template database failed:') . "\n" . $DBI::errstr); - } - my $charset = $main::dbcharset; $charset ||= Common::DEFAULT_CHARSET; my $encoding = $Common::charset_to_db_encoding{$charset}; $encoding ||= 'UNICODE'; + my $dbh = DBI->connect($dsn, $params{superuser}, $params{superuser_password}, { pg_enable_utf8 => $charset =~ m/^utf-?8$/i }); + + if (!$dbh) { + $main::form->error($main::locale->text('The connection to the template database failed:') . "\n" . $DBI::errstr); + } + my $query = qq|CREATE DATABASE "$cfg->{db}" OWNER "$cfg->{user}" TEMPLATE "$params{template}" ENCODING '$encoding'|; $main::lxdebug->message(LXDebug->DEBUG1(), "Auth::create_database query: $query");