projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Import von Lieferadressen.
[kivitendo-erp.git]
/
bin
/
mozilla
/
admin.pl
diff --git
a/bin/mozilla/admin.pl
b/bin/mozilla/admin.pl
index
eee7999
..
efd16fe
100755
(executable)
--- a/
bin/mozilla/admin.pl
+++ b/
bin/mozilla/admin.pl
@@
-34,6
+34,7
@@
use DBI;
use CGI;
use DBI;
use CGI;
+use Encode;
use English qw(-no_match_vars);
use Fcntl;
use File::Copy;
use English qw(-no_match_vars);
use Fcntl;
use File::Copy;
@@
-78,7
+79,7
@@
sub run {
$form->{favicon} = "favicon.ico";
if ($form->{action}) {
$form->{favicon} = "favicon.ico";
if ($form->{action}) {
- if ($auth->authenticate_root($form->{rpw}
, 0
) != $auth->OK()) {
+ if ($auth->authenticate_root($form->{rpw}) != $auth->OK()) {
$form->{error_message} = $locale->text('Incorrect Password!');
adminlogin();
} else {
$form->{error_message} = $locale->text('Incorrect Password!');
adminlogin();
} else {
@@
-144,10
+145,11
@@
sub check_auth_db_and_tables {
::end_of_request();
}
::end_of_request();
}
- if (-f $main::memberfile) {
+ my $memberfile = $::lx_office_conf{paths}->{memberfile};
+ if (-f $memberfile) {
my $memberdir = "";
my $memberdir = "";
- if ($m
ain::m
emberfile =~ m|^.*/|) {
+ if ($memberfile =~ m|^.*/|) {
$memberdir = $&;
}
$memberdir = $&;
}
@@
-155,7
+157,7
@@
sub check_auth_db_and_tables {
$form->{title} = $locale->text('User data migration');
$form->header();
$form->{title} = $locale->text('User data migration');
$form->header();
- print $form->parse_html_template('admin/user_migration', { 'memberfile' => $m
ain::m
emberfile,
+ print $form->parse_html_template('admin/user_migration', { 'memberfile' => $memberfile,
'backupdir' => $backupdir });
::end_of_request();
'backupdir' => $backupdir });
::end_of_request();
@@
-179,7
+181,8
@@
sub create_auth_tables {
$main::auth->set_session_value('rpw', $form->{rpw});
$main::auth->create_or_refresh_session();
$main::auth->set_session_value('rpw', $form->{rpw});
$main::auth->create_or_refresh_session();
- if (!-f $main::memberfile) {
+ my $memberfile = $::lx_office_conf{paths}->{memberfile};
+ if (!-f $memberfile) {
# New installation -- create a standard group with full access
my %members;
my $group = {
# New installation -- create a standard group with full access
my %members;
my $group = {
@@
-192,6
+195,7
@@
sub create_auth_tables {
$main::auth->save_group($group);
}
$main::auth->save_group($group);
}
+ _apply_dbupgrade_scripts();
login();
}
login();
}
@@
-203,7
+207,8
@@
sub migrate_users {
my $memberdir = "";
my $memberdir = "";
- if ($main::memberfile =~ m|^.*/|) {
+ my $memberfile = $::lx_office_conf{paths}->{memberfile};
+ if ($memberfile =~ m|^.*/|) {
$memberdir = $&;
}
$memberdir = $&;
}
@@
-213,9
+218,9
@@
sub migrate_users {
$form->error(sprintf($locale->text('The directory "%s" could not be created:\n%s'), $backupdir, $!));
}
$form->error(sprintf($locale->text('The directory "%s" could not be created:\n%s'), $backupdir, $!));
}
- copy $m
ain::m
emberfile, "users/member-file-migration/members";
+ copy $memberfile, "users/member-file-migration/members";
- my $in = IO::File->new($m
ain::m
emberfile, "r");
+ my $in = IO::File->new($memberfile, "r");
$form->error($locale->text('Could not open the old memberfile.')) if (!$in);
$form->error($locale->text('Could not open the old memberfile.')) if (!$in);
@@
-266,7
+271,7
@@
sub migrate_users {
}
}
}
}
- unlink $m
ain::m
emberfile;
+ unlink $memberfile;
my @member_list = sort { lc $a->{login} cmp lc $b->{login} } values %members;
my @member_list = sort { lc $a->{login} cmp lc $b->{login} } values %members;
@@
-338,10
+343,13
@@
sub list_users {
delete $members{"root login"};
delete $members{"root login"};
- map { $_->{templates} =~ s|.*/||; } values %members;
+ for (values %members) {
+ $_->{templates} =~ s|.*/||;
+ $_->{login_url} = $::locale->is_utf8 ? Encode::encode('utf-8-strict', $_->{login}) : $_->{login_url};
+ }
$form->{title} = "Lx-Office ERP " . $locale->text('Administration');
$form->{title} = "Lx-Office ERP " . $locale->text('Administration');
- $form->{LOCKED} = -e
"$main::userspath/nologin"
;
+ $form->{LOCKED} = -e
_nologin_file_name()
;
$form->{MEMBERS} = [ @members{sort { lc $a cmp lc $b } keys %members} ];
$form->header();
$form->{MEMBERS} = [ @members{sort { lc $a cmp lc $b } keys %members} ];
$form->header();
@@
-411,14
+419,14
@@
sub edit_user_form {
}
# is there a templates basedir
}
# is there a templates basedir
- if (!-d
"$main::templates"
) {
- $form->error(sprintf($locale->text("The directory %s does not exist."), $
main::templates
));
+ if (!-d
$::lx_office_conf{paths}->{templates}
) {
+ $form->error(sprintf($locale->text("The directory %s does not exist."), $
::lx_office_conf{paths}->{templates}
));
}
}
- opendir TEMPLATEDIR,
"$main::templates/." or $form->error("$main::templates
: $ERRNO");
+ opendir TEMPLATEDIR,
$::lx_office_conf{paths}->{templates} or $form->error($::lx_office_conf{paths}->{templates} . "
: $ERRNO");
my @all = readdir(TEMPLATEDIR);
my @all = readdir(TEMPLATEDIR);
- my @alldir = sort grep { -d
"$main::templates/$_"
&& !/^\.\.?$/ } @all;
- my @allhtml = sort grep { -f
"$main::templates/$_" &&
/\.html$/ } @all;
+ my @alldir = sort grep { -d
($::lx_office_conf{paths}->{templates} . "/$_")
&& !/^\.\.?$/ } @all;
+ my @allhtml = sort grep { -f
($::lx_office_conf{paths}->{templates} . "/$_") &&
/\.html$/ } @all;
closedir TEMPLATEDIR;
@alldir = grep !/\.(html|tex|sty|odt|xml|txb)$/, @alldir;
closedir TEMPLATEDIR;
@alldir = grep !/\.(html|tex|sty|odt|xml|txb)$/, @alldir;
@@
-497,13
+505,13
@@
sub save_user {
}
# is there a basedir
}
# is there a basedir
- if (!-d
"$main::templates"
) {
- $form->error(sprintf($locale->text("The directory %s does not exist."), $
main::templates
));
+ if (!-d
$::lx_office_conf{paths}->{templates}
) {
+ $form->error(sprintf($locale->text("The directory %s does not exist."), $
::lx_office_conf{paths}->{templates}
));
}
# add base directory to $form->{templates}
$form->{templates} =~ s|.*/||;
}
# add base directory to $form->{templates}
$form->{templates} =~ s|.*/||;
- $form->{templates} =
"$main::templates
/$form->{templates}";
+ $form->{templates} =
$::lx_office_conf{paths}->{templates} . "
/$form->{templates}";
my $myconfig = new User($form->{login});
my $myconfig = new User($form->{login});
@@
-522,7
+530,7
@@
sub save_user {
$myconfig->save_member();
$form->{templates} =~ s|.*/||;
$myconfig->save_member();
$form->{templates} =~ s|.*/||;
- $form->{templates} =
"$main::templates
/$form->{templates}";
+ $form->{templates} =
$::lx_office_conf{paths}->{templates} . "
/$form->{templates}";
$form->{mastertemplates} =~ s|.*/||;
# create user template directory and copy master files
$form->{mastertemplates} =~ s|.*/||;
# create user template directory and copy master files
@@
-534,14
+542,14
@@
sub save_user {
umask(007);
# copy templates to the directory
umask(007);
# copy templates to the directory
- opendir TEMPLATEDIR,
"$main::templates/." or $form->error("$main::templates
: $ERRNO");
+ opendir TEMPLATEDIR,
$::lx_office_conf{paths}->{templates} or $form->error($::lx_office_conf{paths}->{templates} . "
: $ERRNO");
my @templates = grep /$form->{mastertemplates}.*?\.(html|tex|sty|odt|xml|txb)$/,
readdir TEMPLATEDIR;
closedir TEMPLATEDIR;
foreach my $file (@templates) {
my @templates = grep /$form->{mastertemplates}.*?\.(html|tex|sty|odt|xml|txb)$/,
readdir TEMPLATEDIR;
closedir TEMPLATEDIR;
foreach my $file (@templates) {
- open(TEMP,
"$main::templates
/$file")
- or $form->error(
"$main::templates
/$file : $ERRNO");
+ open(TEMP,
$::lx_office_conf{paths}->{templates} . "
/$file")
+ or $form->error(
$::lx_office_conf{paths}->{templates} . "
/$file : $ERRNO");
$file =~ s/\Q$form->{mastertemplates}\E-//;
open(NEW, ">$form->{templates}/$file")
$file =~ s/\Q$form->{mastertemplates}\E-//;
open(NEW, ">$form->{templates}/$file")
@@
-731,7
+739,8
@@
sub dbupdate {
foreach my $i (@update_rows) {
restore_form($saved_form);
foreach my $i (@update_rows) {
restore_form($saved_form);
- map { $form->{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd);
+ %::myconfig = ();
+ map { $form->{$_} = $::myconfig{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd);
print $form->parse_html_template("admin/dbupgrade_header");
print $form->parse_html_template("admin/dbupgrade_header");
@@
-764,12
+773,12
@@
sub create_dataset {
}
closedir SQLDIR;
}
closedir SQLDIR;
- my $default_charset = $
main::dbcharset
;
+ my $default_charset = $
::lx_office_conf{system}->{dbcharset}
;
$default_charset ||= Common::DEFAULT_CHARSET;
my $cluster_encoding = User->dbclusterencoding($form);
if ($cluster_encoding && ($cluster_encoding =~ m/^(?:UTF-?8|UNICODE)$/i)) {
$default_charset ||= Common::DEFAULT_CHARSET;
my $cluster_encoding = User->dbclusterencoding($form);
if ($cluster_encoding && ($cluster_encoding =~ m/^(?:UTF-?8|UNICODE)$/i)) {
- if ($
main::dbcharset
!~ m/^UTF-?8$/i) {
+ if ($
::lx_office_conf{system}->{dbcharset}
!~ m/^UTF-?8$/i) {
$form->show_generic_error($locale->text('The selected PostgreSQL installation uses UTF-8 as its encoding. ' .
'Therefore you have to configure Lx-Office to use UTF-8 as well.'),
'back_button' => 1);
$form->show_generic_error($locale->text('The selected PostgreSQL installation uses UTF-8 as its encoding. ' .
'Therefore you have to configure Lx-Office to use UTF-8 as well.'),
'back_button' => 1);
@@
-842,8
+851,8
@@
sub backup_dataset {
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
- if (
"$main::pg_dump_exe"
eq "DISABLED") {
- $form->error($locale->text('Database backups and restorations are disabled in
lx-erp.conf
.'));
+ if (
$::lx_office_conf{applications}->{pg_dump}
eq "DISABLED") {
+ $form->error($locale->text('Database backups and restorations are disabled in
the configuration
.'));
}
my @dbsources = sort User->dbsources($form);
}
my @dbsources = sort User->dbsources($form);
@@
-864,10
+873,10
@@
sub backup_dataset_start {
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
-
$main::pg_dump_exe ||=
"pg_dump";
+
my $pg_dump_exe = $::lx_office_conf{applications}->{pg_dump} ||
"pg_dump";
- if ("$
main::
pg_dump_exe" eq "DISABLED") {
- $form->error($locale->text('Database backups and restorations are disabled in
lx-erp.conf
.'));
+ if ("$pg_dump_exe" eq "DISABLED") {
+ $form->error($locale->text('Database backups and restorations are disabled in
the configuration
.'));
}
$form->isblank("dbname", $locale->text('The dataset name is missing.'));
}
$form->isblank("dbname", $locale->text('The dataset name is missing.'));
@@
-892,7
+901,7
@@
sub backup_dataset_start {
push @args, ("-p", $form->{dbport}) if ($form->{dbport});
push @args, $form->{dbname};
push @args, ("-p", $form->{dbport}) if ($form->{dbport});
push @args, $form->{dbname};
- my $cmd = "$
main::
pg_dump_exe " . join(" ", map { s/\\/\\\\/g; s/\"/\\\"/g; $_ } @args);
+ my $cmd = "$pg_dump_exe " . join(" ", map { s/\\/\\\\/g; s/\"/\\\"/g; $_ } @args);
my $name = "dataset_backup_$form->{dbname}_" . strftime("%Y%m%d", localtime()) . ".tar";
if ($form->{destination} ne "email") {
my $name = "dataset_backup_$form->{dbname}_" . strftime("%Y%m%d", localtime()) . ".tar";
if ($form->{destination} ne "email") {
@@
-931,7
+940,7
@@
sub backup_dataset_start {
map { $mail->{$_} = $form->{$_} } qw(from to cc subject message);
map { $mail->{$_} = $form->{$_} } qw(from to cc subject message);
- $mail->{charset} = $
main::dbcharset ? $main::dbcharset :
Common::DEFAULT_CHARSET;
+ $mail->{charset} = $
::lx_office_conf{system}->{dbcharset} ||
Common::DEFAULT_CHARSET;
$mail->{attachments} = [ { "filename" => $tmp, "name" => $name } ];
$mail->send();
$mail->{attachments} = [ { "filename" => $tmp, "name" => $name } ];
$mail->send();
@@
-951,11
+960,11
@@
sub restore_dataset {
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
- if (
"$main::pg_restore_exe"
eq "DISABLED") {
- $form->error($locale->text('Database backups and restorations are disabled in
lx-erp.conf
.'));
+ if (
$::lx_office_conf{applications}->{pg_restore}
eq "DISABLED") {
+ $form->error($locale->text('Database backups and restorations are disabled in
the configuration
.'));
}
}
- my $default_charset = $
main::dbcharset
;
+ my $default_charset = $
::lx_office_conf{system}->{dbcharset}
;
$default_charset ||= Common::DEFAULT_CHARSET;
$form->{DBENCODINGS} = [];
$default_charset ||= Common::DEFAULT_CHARSET;
$form->{DBENCODINGS} = [];
@@
-976,10
+985,10
@@
sub restore_dataset_start {
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
$form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
-
$main::pg_restore_exe ||=
"pg_restore";
+
my $pg_restore_exe = $::lx_office_conf{applications}->{pg_restore} ||
"pg_restore";
- if ("$
main::
pg_restore_exe" eq "DISABLED") {
- $form->error($locale->text('Database backups and restorations are disabled in
lx-erp.conf
.'));
+ if ("$pg_restore_exe" eq "DISABLED") {
+ $form->error($locale->text('Database backups and restorations are disabled in
the configuration
.'));
}
$form->isblank("new_dbname", $locale->text('The dataset name is missing.'));
}
$form->isblank("new_dbname", $locale->text('The dataset name is missing.'));
@@
-1065,7
+1074,7
@@
sub restore_dataset_start {
push @args, ("-p", $form->{dbport}) if ($form->{dbport});
push @args, $tmp;
push @args, ("-p", $form->{dbport}) if ($form->{dbport});
push @args, $tmp;
- my $cmd = "$
main::
pg_restore_exe " . join(" ", map { s/\\/\\\\/g; s/\"/\\\"/g; $_ } @args);
+ my $cmd = "$pg_restore_exe " . join(" ", map { s/\\/\\\\/g; s/\"/\\\"/g; $_ } @args);
my $in = IO::File->new("$cmd 2>&1 |");
my $in = IO::File->new("$cmd 2>&1 |");
@@
-1097,7
+1106,7
@@
sub unlock_system {
my $form = $main::form;
my $locale = $main::locale;
my $form = $main::form;
my $locale = $main::locale;
- unlink
"$main::userspath/nologin"
;
+ unlink
_nologin_file_name();
;
$form->{callback} = "admin.pl?action=list_users";
$form->{callback} = "admin.pl?action=list_users";
@@
-1109,7
+1118,7
@@
sub lock_system {
my $form = $main::form;
my $locale = $main::locale;
my $form = $main::form;
my $locale = $main::locale;
- open(FH, ">
$main::userspath/nologin"
)
+ open(FH, ">
" . _nologin_file_name()
)
or $form->error($locale->text('Cannot create Lock!'));
close(FH);
or $form->error($locale->text('Cannot create Lock!'));
close(FH);
@@
-1180,4
+1189,8
@@
sub _apply_dbupgrade_scripts {
::end_of_request() if SL::DBUpgrade2->new(form => $::form, dbdriver => 'Pg', auth => 1)->apply_admin_dbupgrade_scripts(1);
}
::end_of_request() if SL::DBUpgrade2->new(form => $::form, dbdriver => 'Pg', auth => 1)->apply_admin_dbupgrade_scripts(1);
}
+sub _nologin_file_name {
+ return $::lx_office_conf{paths}->{userspath} . '/nologin';
+}
+
1;
1;