}
sub dbconnect {
- $main::lxdebug->enter_sub();
+ $main::lxdebug->enter_sub(2);
my $self = shift;
my $may_fail = shift;
if ($self->{dbh}) {
- $main::lxdebug->leave_sub();
+ $main::lxdebug->leave_sub(2);
return $self->{dbh};
}
$main::form->error($main::locale->text('The connection to the template database failed:') . "\n" . $DBI::errstr);
}
- my $charset = $main::charset;
+ my $charset = $main::dbcharset;
$charset ||= Common::DEFAULT_CHARSET;
my $encoding = $Common::charset_to_db_encoding{$charset};
$encoding ||= 'UNICODE';
$dbh->do($query);
if ($dbh->err) {
+ my $error = $dbh->errstr();
+
+ $query = qq|SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'template0'|;
+ my ($cluster_encoding) = $dbh->selectrow_array($query);
+
+ if ($cluster_encoding && ($cluster_encoding =~ m/^(?:UTF-?8|UNICODE)$/i) && ($encoding !~ m/^(?:UTF-?8|UNICODE)$/i)) {
+ $error = $main::locale->text('Your PostgreSQL installationen uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.');
+ }
+
$dbh->disconnect();
- $main::form->error($main::locale->text('The creation of the authentication database failed:') . "\n" . $DBI::errstr);
+ $main::form->error($main::locale->text('The creation of the authentication database failed:') . "\n" . $error);
}
$dbh->disconnect();
my $self = shift;
my $dbh = $self->dbconnect();
- my $charset = $main::charset;
+ my $charset = $main::dbcharset;
$charset ||= Common::DEFAULT_CHARSET;
$dbh->rollback();
my $login = shift;
my $dbh = $self->dbconnect();
- my $query = qq|SELECT cfg.cfg_key, cfg.cfg_value
+ my $query = qq|SELECT u.id, u.login, cfg.cfg_key, cfg.cfg_value
FROM auth.user_config cfg
LEFT JOIN auth."user" u ON (cfg.user_id = u.id)
WHERE (u.login = ?)|;
while (my $ref = $sth->fetchrow_hashref()) {
$user_data{$ref->{cfg_key}} = $ref->{cfg_value};
- $user_data{login} = $login;
+ @user_data{qw(id login)} = @{$ref}{qw(id login)};
}
$sth->finish();
my $locale = $main::locale;
my @all_rights = (
+ ["--crm", $locale->text("CRM optional software")],
+ ["crm_search", $locale->text("CRM search")],
+ ["crm_new", $locale->text("CRM create customers, vendors and contacts")],
+ ["crm_service", $locale->text("CRM services")],
+ ["crm_admin", $locale->text("CRM admin")],
+ ["crm_adminuser", $locale->text("CRM user")],
+ ["crm_adminstatus", $locale->text("CRM status")],
+ ["crm_email", $locale->text("CRM send email")],
+ ["crm_termin", $locale->text("CRM termin")],
+ ["crm_opportunity", $locale->text("CRM opportunity")],
+ ["crm_knowhow", $locale->text("CRM know how")],
+ ["crm_follow", $locale->text("CRM follow up")],
+ ["crm_notices", $locale->text("CRM notices")],
+ ["crm_other", $locale->text("CRM other")],
["--master_data", $locale->text("Master Data")],
["customer_vendor_edit", $locale->text("Create and edit customers and vendors")],
["part_service_assembly_edit", $locale->text("Create and edit parts, services, assemblies")],