Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
[kivitendo-erp.git] / bin / mozilla / admin.pl
index 3254b9b..0a7145a 100755 (executable)
@@ -73,9 +73,9 @@ our $form;
 our $locale;
 our $auth;
 
-my @valid_dateformats = qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd);
+my @valid_dateformats = qw(mm/dd/yy dd/mm/yy dd.mm.yy yyyy-mm-dd);
 my @valid_numberformats = ('1,000.00', '1000.00', '1.000,00', '1000,00');
-my @all_stylesheets = qw(lx-office-erp.css Win2000.css);
+my @all_stylesheets = qw(lx-office-erp.css Win2000.css Mobile.css kivitendo.css);
 my @all_menustyles = (
   { id => 'old', title => $::locale->text('Old (on the side)') },
   { id => 'v3',  title => $::locale->text('Top (CSS)') },
@@ -91,20 +91,19 @@ sub run {
   $locale = $::locale;
   $auth   = $::auth;
 
-  $::auth->store_root_credentials_in_session($form->{rpw}) if $session_result == SL::Auth->SESSION_OK;
-
-  $form->{stylesheet} = "lx-office-erp.css";
+  $::request->{layout} = SL::Layout::Dispatcher->new(style => 'admin');
+  $::request->{layout}->use_stylesheet("lx-office-erp.css");
   $form->{favicon}    = "favicon.ico";
 
   if ($form->{action}) {
-    if ($auth->authenticate_root($form->{rpw}) != $auth->OK()) {
+    if ($auth->authenticate_root($form->{'{AUTH}admin_password'}) != $auth->OK()) {
+      $auth->punish_wrong_login;
       $form->{error_message} = $locale->text('Incorrect Password!');
-      $auth->delete_session_value('rpw');
+      $auth->delete_session_value('admin_password');
       adminlogin();
     } else {
       if ($auth->session_tables_present()) {
-        $::auth->store_root_credentials_in_session($::form->{rpw});
-        delete $::form->{rpw};
+        delete $::form->{'{AUTH}admin_password'};
         _apply_dbupgrade_scripts();
       }
 
@@ -124,7 +123,7 @@ sub adminlogin {
   my $form   = $main::form;
   my $locale = $main::locale;
 
-  $form->{title} = qq|Lx-Office ERP $form->{version} | . $locale->text('Administration');
+  $form->{title} = qq|kivitendo $form->{version} | . $locale->text('Administration');
 
   $form->header();
   print $form->parse_html_template('admin/adminlogin');
@@ -148,6 +147,8 @@ sub check_auth_db_and_tables {
 
   map { $params{"db_${_}"} = $main::auth->{DB_config}->{$_} } keys %{ $auth->{DB_config} };
 
+  $params{admin_password} = $::lx_office_conf{authentication}->{admin_password};
+
   if (!$main::auth->check_database()) {
     $form->{title} = $locale->text('Authentification database creation');
     $form->header();
@@ -197,7 +198,7 @@ sub create_auth_tables {
   my $locale = $main::locale;
 
   $main::auth->create_tables();
-  $main::auth->set_session_value('rpw', $form->{rpw});
+  $main::auth->set_session_value('admin_password', $form->{'{AUTH}admin_password'});
   $main::auth->create_or_refresh_session();
 
   my $memberfile = $::lx_office_conf{paths}->{memberfile};
@@ -367,7 +368,7 @@ sub list_users {
     $_->{login_url} =  $::locale->is_utf8 ? Encode::encode('utf-8-strict', $_->{login}) : $_->{login_url};
   }
 
-  $form->{title}   = "Lx-Office ERP " . $locale->text('Administration');
+  $form->{title}   = "kivitendo " . $locale->text('Administration');
   $form->{LOCKED}  = -e _nologin_file_name();
   $form->{MEMBERS} = [ @members{sort { lc $a cmp lc $b } keys %members} ];
 
@@ -376,7 +377,7 @@ sub list_users {
 }
 
 sub add_user {
-  $::form->{title}   = "Lx-Office ERP " . $::locale->text('Administration') . " / " . $::locale->text('Add User');
+  $::form->{title}   = "kivitendo " . $::locale->text('Administration') . " / " . $::locale->text('Add User');
 
 # Note: Menu Style 'v3' is not compatible to all browsers!
 # "menustyle"    => "old" sets the HTML Menu to default.
@@ -397,7 +398,7 @@ sub add_user {
 }
 
 sub edit_user {
-  $::form->{title} = "Lx-Office ERP " . $::locale->text('Administration') . " / " . $::locale->text('Edit User');
+  $::form->{title} = "kivitendo " . $::locale->text('Administration') . " / " . $::locale->text('Edit User');
   $::form->{edit}  = 1;
 
   # get user
@@ -542,7 +543,7 @@ sub save_user {
   # Add new user to his groups.
   if (ref $form->{new_user_group_ids} eq 'ARRAY') {
     my $all_groups = $main::auth->read_groups();
-    my %user       = $main::auth->read_user(login => $user->{login});
+    my %user       = $main::auth->read_user(login => $myconfig->{login});
 
     foreach my $group_id (@{ $form->{new_user_group_ids} }) {
       my $group = $all_groups->{$group_id};
@@ -564,7 +565,7 @@ sub save_user {
       $form->error($::locale->text('The settings were saved, but the password was not changed.') . ' ' . join(' ', $verifier->errors($result)));
     }
 
-    $main::auth->change_password($user->{login}, $::form->{new_password});
+    $main::auth->change_password($myconfig->{login}, $::form->{new_password});
   }
 
   $::form->redirect($::locale->text('User saved!'));
@@ -653,7 +654,7 @@ sub dbselect_source {
   $form->{dbdefault} = 'template1';
   $form->{dbhost}    = $::auth->{DB_config}->{host} || 'localhost';
 
-  $form->{title}     = "Lx-Office ERP / " . $locale->text('Database Administration');
+  $form->{title}     = "kivitendo / " . $locale->text('Database Administration');
 
   # Intentionnaly disabled unless fixed to work with the authentication DB.
   $form->{ALLOW_DBBACKUP} = 0; # "$pg_dump_exe" ne "DISABLED";
@@ -689,7 +690,7 @@ sub update_dataset {
   my $form              = $main::form;
   my $locale            = $main::locale;
 
-  $form->{title}        = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Update Dataset');
+  $form->{title}        = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Update Dataset');
 
   my @need_updates      = User->dbneedsupdate($form);
   $form->{NEED_UPDATES} = \@need_updates;
@@ -703,7 +704,7 @@ sub dbupdate {
   my $form            = $main::form;
   my $locale          = $main::locale;
 
-  $form->{stylesheet} = "lx-office-erp.css";
+  $::request->{layout}->use_stylesheet("lx-office-erp.css");
   $form->{title}      = $locale->text("Dataset upgrade");
   $form->header();
 
@@ -794,7 +795,7 @@ sub create_dataset {
     }
   }
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Create Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Create Dataset');
 
   $form->header();
   print $form->parse_html_template("admin/create_dataset");
@@ -808,7 +809,7 @@ sub dbcreate {
 
   User->dbcreate(\%$form);
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Create Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Create Dataset');
 
   $form->header();
   print $form->parse_html_template("admin/dbcreate");
@@ -821,7 +822,7 @@ sub delete_dataset {
   my @dbsources = User->dbsources_unused($form);
   $form->error($locale->text('Nothing to delete!')) unless @dbsources;
 
-  $form->{title}     = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Delete Dataset');
+  $form->{title}     = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Delete Dataset');
   $form->{DBSOURCES} = [ map { { "name", $_ } } sort @dbsources ];
 
   $form->header();
@@ -838,7 +839,7 @@ sub dbdelete {
 
   User->dbdelete(\%$form);
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Delete Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Delete Dataset');
   $form->header();
   print $form->parse_html_template("admin/dbdelete");
 }
@@ -847,7 +848,7 @@ sub backup_dataset {
   my $form       = $main::form;
   my $locale     = $main::locale;
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
 
   if ($::lx_office_conf{applications}->{pg_dump} eq "DISABLED") {
     $form->error($locale->text('Database backups and restorations are disabled in the configuration.'));
@@ -859,7 +860,7 @@ sub backup_dataset {
 
   my $username  = getpwuid $UID || "unknown-user";
   my $hostname  = hostname() || "unknown-host";
-  $form->{from} = "Lx-Office Admin <${username}\@${hostname}>";
+  $form->{from} = "kivitendo Admin <${username}\@${hostname}>";
 
   $form->header();
   print $form->parse_html_template("admin/backup_dataset");
@@ -869,7 +870,7 @@ sub backup_dataset_start {
   my $form       = $main::form;
   my $locale     = $main::locale;
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
 
   my $pg_dump_exe = $::lx_office_conf{applications}->{pg_dump} || "pg_dump";
 
@@ -945,7 +946,7 @@ sub backup_dataset_start {
     unlink "${tmpdir}/.pgpass", $tmp;
     rmdir $tmpdir;
 
-    $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
+    $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Backup Dataset');
 
     $form->header();
     print $form->parse_html_template("admin/backup_dataset_email_done");
@@ -956,7 +957,7 @@ sub restore_dataset {
   my $form       = $main::form;
   my $locale     = $main::locale;
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
 
   if ($::lx_office_conf{applications}->{pg_restore} eq "DISABLED") {
     $form->error($locale->text('Database backups and restorations are disabled in the configuration.'));
@@ -981,7 +982,7 @@ sub restore_dataset_start {
   my $form       = $main::form;
   my $locale     = $main::locale;
 
-  $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
+  $form->{title} = "kivitendo " . $locale->text('Database Administration') . " / " . $locale->text('Restore Dataset');
 
   my $pg_restore_exe = $::lx_office_conf{applications}->{pg_restore} || "pg_restore";