use SL::Locale::String qw(t8);
use SL::System::InstallationLock;
use SL::User;
+use SL::Layout::AdminLogin;
use Rose::Object::MakeMethods::Generic
(
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'));
}
# 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;
}
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 {
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');
}
#
sub init_all_printers { SL::DB::Manager::Printer ->get_all_sorted }
sub init_all_dateformats { [ qw(mm/dd/yy dd/mm/yy dd.mm.yy yyyy-mm-dd) ] }
sub init_all_numberformats { [ '1,000.00', '1000.00', '1.000,00', '1000,00' ] }
-sub init_all_stylesheets { [ qw(lx-office-erp.css Mobile.css kivitendo.css) ] }
+sub init_all_stylesheets { [ qw(lx-office-erp.css kivitendo.css) ] }
sub init_all_dbsources { [ sort User->dbsources($::form) ] }
sub init_all_used_dbsources { { map { (join(':', $_->dbhost || 'localhost', $_->dbport || 5432, $_->dbname) => $_->name) } @{ $_[0]->all_clients } } }
sub init_all_accounting_methods { [ { id => 'accrual', name => t8('Accrual accounting') }, { id => 'cash', name => t8('Cash accounting') } ] }
sub login_form {
my ($self, %params) = @_;
+ $::request->layout(SL::Layout::AdminLogin->new);
my $version = $::form->read_version;
- $::request->layout->no_menu(1);
$self->render('admin/adminlogin', title => t8('kivitendo v#1 administration', $version), %params, version => $version);
}