X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FUser.pm;h=2addf29056e84a14f1d92353dc1185fe97bd759a;hb=280cbfe97461e08c8dbc604dd487b08b79ffd8ed;hp=acbe5cf766139dc4d58f29231df0c04875afed5d;hpb=8e4ccdd50ed020591ec6caec89f043253ecc0653;p=kivitendo-erp.git diff --git a/SL/User.pm b/SL/User.pm index acbe5cf76..2addf2905 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -697,7 +697,6 @@ sub save_member { $main::lxdebug->enter_sub(); my ($self) = @_; - my $form = \%main::form; # format dbconnect and dboptions string dbconnect_vars($self, $self->{dbname}); @@ -708,7 +707,7 @@ sub save_member { my $dbh = SL::DBConnect->connect($self->{dbconnect}, $self->{dbuser}, $self->{dbpasswd}); if ($dbh) { - $self->create_employee_entry($form, $dbh, $self, 1); + $self->create_employee_entry($::form, $dbh, $self, 1); $dbh->disconnect(); } @@ -731,13 +730,16 @@ sub create_employee_entry { # add login to employee table if it does not exist # no error check for employee table, ignore if it does not exist - my ($id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $self->{login}); + my ($id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $self->{login}); + my ($good_db) = selectrow_query($form, $dbh, qq|select * from pg_tables where tablename = ? and schemaname = ?|, 'schema_info', 'public'); + my $can_delete; + ($can_delete) = selectrow_query($form, $dbh, qq|SELECT tag FROM schema_info WHERE tag = ?|, 'employee_deleted') if $good_db; if (!$id) { my $query = qq|INSERT INTO employee (login, name, workphone, role) VALUES (?, ?, ?, ?)|; do_query($form, $dbh, $query, ($self->{login}, $myconfig->{name}, $myconfig->{tel}, "user")); - } elsif ($update_existing) { + } elsif ($update_existing && $can_delete) { my $query = qq|UPDATE employee SET name = ?, workphone = ?, role = 'user', deleted = 'f' WHERE id = ?|; do_query($form, $dbh, $query, $myconfig->{name}, $myconfig->{tel}, $id); }