$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;
$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);
$auth->set_session_value('rpw', $form->{rpw});
$auth->create_or_refresh_session();
+ if (!-f $memberfile) {
+ # New installation -- create a standard group with full access
+ my $group = {
+ 'name' => $locale->text('Full Access'),
+ 'description' => $locale->text('Full access to all functions'),
+ 'rights' => { map { $_ => 1 } SL::Auth::all_rights() },
+ 'members' => [ map { $_->{id} } values %members ],
+ };
+
+ $auth->save_group($group);
+ }
+
login();
}
$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"});
}