Admin-Controller: gelöschte User in allen Mandanten-Employee-Tabellen als gelöscht...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 13 Jun 2013 09:08:03 +0000 (11:08 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 13 Jun 2013 14:31:39 +0000 (16:31 +0200)
SL/Controller/Admin.pm

index 5fdc308..7277e79 100644 (file)
@@ -157,12 +157,21 @@ sub action_save_user {
 sub action_delete_user {
   my ($self) = @_;
 
+  my @clients = @{ $self->user->clients || [] };
+
   if (!$self->user->delete) {
     flash('error', t8('The user could not be deleted.'));
     $self->edit_user_form(title => t8('Edit User'));
     return;
   }
 
+  # Flag corresponding entries in 'employee' as deleted.
+  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->disconnect;
+  }
+
   flash_later('info', t8('The user has been deleted.'));
   $self->redirect_to(action => 'show');
 }