Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f5093da0

Von Moritz Bunkus vor etwa 11 Jahren hinzugefügt

  • ID f5093da0934b58d979d44ba9ad961b409e15c411
  • Vorgänger 1a6ef4e8
  • Nachfolger f6b3cfa6

Einträge in employee aus User->login heraus aktualisieren

Vor der Mandanteneinführung war User->login bereits hierfür
verantwortlich. Dann wurde diese Funktionalität in den
Login-Controller verschoben. Allerdings kehrt die Ausführung in exakt
einem Fall nicht zum Logincontroller zurück: wenn noch
Datenbankupgrades eingespielt werden müssen.

In dem Fall werden die Updates eingespielt, dem User wird die
"Weiter"-Seite angezeigt, und von hier aus geht es direkt zum
company_logo.

User->login weiß daher als einzige Instanz, wann alle DB-Upgrades
User->installiert sind, und damit, wann RDBO-Instanzen sicher genutzt
User->werden können.

Daher die Funktionalität in die Employee-Manager-Klasse verschoben und
das Triggern der Funktion aus dem Login-Controller wieder zurück nach
User->login verschoben.

Fixt #2361.

Unterschiede anzeigen:

SL/User.pm
39 39

  
40 40
#use SL::Auth;
41 41
use SL::DB::AuthClient;
42
use SL::DB::Employee;
42 43
use SL::DBConnect;
43 44
use SL::DBUpgrade2;
44 45
use SL::DBUtils;
......
126 127
  my $update_available = $dbupdater->update2_available($dbh);
127 128
  $dbh->disconnect;
128 129

  
129
  return LOGIN_OK() if !$update_available;
130
  if (!$update_available) {
131
    SL::DB::Manager::Employee->update_entries_for_authorized_users;
132
    return LOGIN_OK();
133
  }
130 134

  
131 135
  $form->{$_} = $::auth->client->{$_} for qw(dbname dbhost dbport dbuser dbpasswd);
132 136
  $form->{$_} = $myconfig{$_}         for qw(datestyle);
......
151 155

  
152 156
  $self->dbupdate2(form => $form, updater => $dbupdater, database => $::auth->client->{dbname});
153 157

  
158
  # If $self->dbupdate2 returns than this means all upgrade scripts
159
  # have been applied successfully, none required user
160
  # interaction. Otherwise the deeper layers would have called
161
  # ::end_of_request() already, and return would not have returned to
162
  # us. Therefore we can now use RDBO instances because their supposed
163
  # table structures do match the actual structures. So let's ensure
164
  # that the "employee" table contains the appropriate entries for all
165
  # users authorized for the current client.
166
  SL::DB::Manager::Employee->update_entries_for_authorized_users;
167

  
154 168
  SL::System::InstallationLock->unlock;
155 169

  
156 170
  print $form->parse_html_template("dbupgrade/footer");

Auch abrufbar als: Unified diff