Revision 3c2062ce
SL/Controller/Admin.pm | ||
---|---|---|
198 | 198 |
sub action_delete_user { |
199 | 199 |
my ($self) = @_; |
200 | 200 |
|
201 |
my @clients = @{ $self->user->clients || [] }; |
|
202 |
|
|
203 |
# backup user metadata (email, name, etc) |
|
204 |
my $user_config_values_ref = $self->user->config_values(); |
|
205 | 201 |
my $login =$self->user->login; |
206 | 202 |
|
207 |
if (!$self->user->delete) {
|
|
203 |
if (!SL::Auth->delete_user($login)) {
|
|
208 | 204 |
flash('error', t8('The user could not be deleted.')); |
209 | 205 |
$self->edit_user_form(title => t8('Edit User')); |
210 | 206 |
return; |
211 | 207 |
} |
212 |
|
|
213 |
# Flag corresponding entries in 'employee' as deleted. |
|
214 |
# and restore the most important user data in employee |
|
215 |
# TODO try and catch the whole transaction {user->delete; update employee} {exception} |
|
216 |
foreach my $client (@clients) { |
|
217 |
my $dbh = $client->dbconnect(AutoCommit => 1) || next; |
|
218 |
$dbh->do(qq|UPDATE employee SET deleted = TRUE, name = ?, deleted_email = ?, |
|
219 |
deleted_tel = ?, deleted_fax = ?, deleted_signature = ? WHERE login = ?|,undef, |
|
220 |
$user_config_values_ref->{name}, $user_config_values_ref->{email}, |
|
221 |
$user_config_values_ref->{tel}, $user_config_values_ref->{fax}, |
|
222 |
$user_config_values_ref->{signature}, $self->user->login); |
|
223 |
$dbh->disconnect; |
|
224 |
} |
|
225 |
|
|
226 | 208 |
flash_later('info', t8('The user has been deleted.')); |
227 | 209 |
$self->redirect_to(action => 'show'); |
228 | 210 |
} |
... | ... | |
536 | 518 |
sub init_all_printers { SL::DB::Manager::Printer ->get_all_sorted } |
537 | 519 |
sub init_all_dateformats { [ qw(mm/dd/yy dd/mm/yy dd.mm.yy yyyy-mm-dd) ] } |
538 | 520 |
sub init_all_numberformats { [ '1,000.00', '1000.00', '1.000,00', '1000,00', "1'000.00" ] } |
539 |
sub init_all_stylesheets { [ qw(lx-office-erp.css Mobile.css kivitendo.css design40.css) ] }
|
|
521 |
sub init_all_stylesheets { [ qw(design40.css) ] } |
|
540 | 522 |
sub init_all_dbsources { [ sort User->dbsources($::form) ] } |
541 | 523 |
sub init_all_used_dbsources { { map { (join(':', $_->dbhost || 'localhost', $_->dbport || 5432, $_->dbname) => $_->name) } @{ $_[0]->all_clients } } } |
542 | 524 |
sub init_all_accounting_methods { [ { id => 'accrual', name => t8('Accrual accounting') }, { id => 'cash', name => t8('Cash accounting') } ] } |
Auch abrufbar als: Unified diff
so sollte Controller-Code aussehen (delete_user Login in SL/Auth.pm) und...
... nur noch den einen wahren stylesheet initialisieren ...