X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/d3160c04203753f81f6a8ce5321997b726312caf..a3ae31cd5221738f7d0cc6bc2f4df316e7b83daa:/SL/Controller/Admin.pm diff --git a/SL/Controller/Admin.pm b/SL/Controller/Admin.pm index 5fdc308fc..e1d26fd8c 100644 --- a/SL/Controller/Admin.pm +++ b/SL/Controller/Admin.pm @@ -37,6 +37,7 @@ sub keep_auth_vars { sub action_login { my ($self) = @_; + return $self->redirect_to(action => 'show') if $::auth->authenticate_root == SL::Auth::OK(); return $self->login_form if !$::form->{do_login}; return if !$self->authenticate_root; return if !$self->check_auth_db_and_tables; @@ -58,7 +59,7 @@ sub action_apply_dbupgrade_scripts { my ($self) = @_; return if $self->apply_dbupgrade_scripts; - $self->action_show; + $self->redirect_to(action => 'show'); } sub action_create_auth_db { @@ -157,12 +158,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'); }