X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/1a6ef4e8cb00fe664cb7510805586e72f1afd316..f5093da0934b58d979d44ba9ad961b409e15c411:/SL/User.pm diff --git a/SL/User.pm b/SL/User.pm index a267fcd6f..e3f4a56c4 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -39,6 +39,7 @@ use Fcntl qw(:seek); #use SL::Auth; use SL::DB::AuthClient; +use SL::DB::Employee; use SL::DBConnect; use SL::DBUpgrade2; use SL::DBUtils; @@ -126,7 +127,10 @@ sub login { my $update_available = $dbupdater->update2_available($dbh); $dbh->disconnect; - return LOGIN_OK() if !$update_available; + if (!$update_available) { + SL::DB::Manager::Employee->update_entries_for_authorized_users; + return LOGIN_OK(); + } $form->{$_} = $::auth->client->{$_} for qw(dbname dbhost dbport dbuser dbpasswd); $form->{$_} = $myconfig{$_} for qw(datestyle); @@ -151,6 +155,16 @@ sub login { $self->dbupdate2(form => $form, updater => $dbupdater, database => $::auth->client->{dbname}); + # If $self->dbupdate2 returns than this means all upgrade scripts + # have been applied successfully, none required user + # interaction. Otherwise the deeper layers would have called + # ::end_of_request() already, and return would not have returned to + # us. Therefore we can now use RDBO instances because their supposed + # table structures do match the actual structures. So let's ensure + # that the "employee" table contains the appropriate entries for all + # users authorized for the current client. + SL::DB::Manager::Employee->update_entries_for_authorized_users; + SL::System::InstallationLock->unlock; print $form->parse_html_template("dbupgrade/footer");