Pflichtenheftitems: Reihenfolge bei Anzeigen Unterfunktionsblockmaske für Focus gefixt
[kivitendo-erp.git] / SL / Controller / Admin.pm
index 698fdb1..5e64563 100644 (file)
@@ -166,6 +166,10 @@ sub action_delete_user {
 
   my @clients = @{ $self->user->clients || [] };
 
+  # backup user metadata (email, name, etc)
+  my $user_config_values_ref = $self->user->config_values();
+  my $login =$self->user->login;
+
   if (!$self->user->delete) {
     flash('error', t8('The user could not be deleted.'));
     $self->edit_user_form(title => t8('Edit User'));
@@ -173,9 +177,15 @@ sub action_delete_user {
   }
 
   # Flag corresponding entries in 'employee' as deleted.
+  # and restore the most important user data in employee
+  # TODO try and catch the whole transaction {user->delete; update employee} {exception}
   foreach my $client (@clients) {
     my $dbh = $client->dbconnect(AutoCommit => 1) || next;
-    $dbh->do(qq|UPDATE employee SET deleted = TRUE WHERE login = ?|, undef, $self->user->login);
+    $dbh->do(qq|UPDATE employee SET deleted = TRUE, name = ?, deleted_email = ?,
+                deleted_tel = ?, deleted_fax = ?, deleted_signature = ? WHERE login = ?|,undef,
+              $user_config_values_ref->{name}, $user_config_values_ref->{email},
+              $user_config_values_ref->{tel}, $user_config_values_ref->{fax},
+              $user_config_values_ref->{signature}, $self->user->login);
     $dbh->disconnect;
   }
 
@@ -408,7 +418,7 @@ sub action_do_create_dataset {
   User->new->dbcreate($::form);
 
   flash_later('info', t8("The dataset #1 has been created.", $::form->{db}));
-  $self->redirect_to(action => 'database_administration');
+  $self->redirect_to(action => 'show');
 }
 
 sub action_delete_dataset_login {
@@ -439,7 +449,7 @@ sub action_do_delete_dataset {
   User->new->dbdelete($::form);
 
   flash_later('info', t8("The dataset #1 has been deleted.", $::form->{db}));
-  $self->redirect_to(action => 'database_administration');
+  $self->redirect_to(action => 'show');
 }
 
 #