Revision 49be66cd
Von Jan Büren vor mehr als 10 Jahren hinzugefügt
SL/Controller/Admin.pm | ||
---|---|---|
172 | 172 |
|
173 | 173 |
my @clients = @{ $self->user->clients || [] }; |
174 | 174 |
|
175 |
# backup user metadata (email, name, etc) |
|
176 |
my $user_config_values_ref = $self->user->config_values(); |
|
177 |
my $login =$self->user->login; |
|
178 |
|
|
175 | 179 |
if (!$self->user->delete) { |
176 | 180 |
flash('error', t8('The user could not be deleted.')); |
177 | 181 |
$self->edit_user_form(title => t8('Edit User')); |
... | ... | |
179 | 183 |
} |
180 | 184 |
|
181 | 185 |
# Flag corresponding entries in 'employee' as deleted. |
186 |
# and restore the most important user data in employee |
|
187 |
# TODO try and catch the whole transaction {user->delete; update employee} {exception} |
|
182 | 188 |
foreach my $client (@clients) { |
183 | 189 |
my $dbh = $client->dbconnect(AutoCommit => 1) || next; |
184 |
$dbh->do(qq|UPDATE employee SET deleted = TRUE WHERE login = ?|, undef, $self->user->login); |
|
190 |
$dbh->do(qq|UPDATE employee SET deleted = TRUE, name = ?, deleted_email = ?, |
|
191 |
deleted_tel = ?, deleted_fax = ?, deleted_signature = ? WHERE login = ?|,undef, |
|
192 |
$user_config_values_ref->{name}, $user_config_values_ref->{email}, |
|
193 |
$user_config_values_ref->{tel}, $user_config_values_ref->{fax}, |
|
194 |
$user_config_values_ref->{signature}, $self->user->login); |
|
185 | 195 |
$dbh->disconnect; |
186 | 196 |
} |
187 | 197 |
|
Auch abrufbar als: Unified diff
Bugfix für 2275 Verkäuferinformationen im Druck kommen aus der Authdatenbank
closes #2275
Hat leider einen kleinen "Rattenschwanz":
a) Beim Löschen des Benutzer wird nur deleted auf true gesetzt, jetzt werden auch
alle weiteren benutzereditierbaren Metadaten gespeichert, dafür ->
b) muss die Tabelle employee geändert werden, dabei ->
c) ist aufgefallen, dass einige Felder in employee überhaupt keinen Sinn mehr haben (addr1), aber dann ...
d) braucht man auch nicht mehr workphone mit tel aus der auth.user_config
zu d) -> SL/DB/Manager/Employee.pm
zu b) und c) -> sql/Pg-upgrade2/employee_drop_columns.sql und SL/DB/MetaSetup/Employee.pm
zu a) SL/Controller/Admin.pm
Jetzt können beim Drucken entweder die Daten des Benutzers genommen werden oder die Daten kommen aus employee (Form.pm)