Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6ca9244c

Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt

  • ID 6ca9244cdf323b4ad216ce69e7b9516f8423b344
  • Vorgänger d82316f7
  • Nachfolger e7c035b4

Wenn DB existiert aber Basistabellen fehlen anständige Fehlermeldung anzeigen

Unterschiede anzeigen:

SL/Controller/LoginScreen.pm
65 65
  # if we get an error back, bale out
66 66
  my $result = User->new(login => $::myconfig{login})->login($::form);
67 67

  
68
  # Database update available?
69
  ::end_of_request() if -2 == $result;
70

  
71 68
  # Auth DB needs update? If so log the user out forcefully.
72
  if (-3 == $result) {
69
  if (User::LOGIN_AUTH_DBUPDATE_AVAILABLE() == $result) {
73 70
    $::auth->destroy_session;
74 71
    return $self->render('login_screen/auth_db_needs_update');
75 72
  }
76 73

  
74
  # Basic client tables available? If not tell the user to create them
75
  # and log the user out forcefully.
76
  if (User::LOGIN_BASIC_TABLES_MISSING() == $result) {
77
    $::auth->destroy_session;
78
    return $self->render('login_screen/basic_tables_missing');
79
  }
80

  
81
  # Database update available?
82
  ::end_of_request() if User::LOGIN_DBUPDATE_AVAILABLE() == $result;
83

  
77 84
  # Other login errors.
78
  if (0 > $result) {
85
  if (User::LOGIN_OK() != $result) {
79 86
    $::auth->punish_wrong_login;
80 87
    return $self->show_login_form(error => $error);
81 88
  }
SL/User.pm
48 48

  
49 49
use strict;
50 50

  
51
use constant LOGIN_OK                      =>  0;
52
use constant LOGIN_BASIC_TABLES_MISSING    => -1;
53
use constant LOGIN_DBUPDATE_AVAILABLE      => -2;
54
use constant LOGIN_AUTH_DBUPDATE_AVAILABLE => -3;
55
use constant LOGIN_GENERAL_ERROR           => -4;
56

  
51 57
sub new {
52 58
  $main::lxdebug->enter_sub();
53 59

  
......
96 102
sub login {
97 103
  my ($self, $form) = @_;
98 104

  
99
  return -3 if !$self->{login} || !$::auth->client;
105
  return LOGIN_GENERAL_ERROR() if !$self->{login} || !$::auth->client;
100 106

  
101 107
  my %myconfig = $main::auth->read_user(login => $self->{login});
102 108

  
109
  # Auth DB upgrades available?
110
  my $dbupdater_auth = SL::DBUpgrade2->new(form => $form, auth => 1)->parse_dbupdate_controls;
111
  return LOGIN_AUTH_DBUPDATE_AVAILABLE() if $dbupdater_auth->unapplied_upgrade_scripts($::auth->dbconnect);
112

  
103 113
  # check if database is down
104 114
  my $dbh = $form->dbconnect_noauto;
105 115

  
106 116
  # we got a connection, check the version
107 117
  my ($dbversion) = $dbh->selectrow_array(qq|SELECT version FROM defaults|);
118
  if (!$dbversion) {
119
    $dbh->disconnect;
120
    return LOGIN_BASIC_TABLES_MISSING();
121
  }
108 122

  
109 123
  $self->create_schema_info_table($form, $dbh);
110 124

  
111
  # Auth DB upgrades available?
112
  my $dbupdater_auth = SL::DBUpgrade2->new(form => $form, auth => 1)->parse_dbupdate_controls;
113
  return -3 if $dbupdater_auth->unapplied_upgrade_scripts($::auth->dbconnect);
114

  
115
  my $dbupdater = SL::DBUpgrade2->new(form => $form)->parse_dbupdate_controls;
116

  
125
  my $dbupdater        = SL::DBUpgrade2->new(form => $form)->parse_dbupdate_controls;
117 126
  my $update_available = $dbupdater->update2_available($dbh);
118 127
  $dbh->disconnect;
119 128

  
120
  return 0 if !$update_available;
129
  return LOGIN_OK() if !$update_available;
121 130

  
122 131
  $form->{$_} = $::auth->client->{$_} for qw(dbname dbhost dbport dbuser dbpasswd);
123 132
  $form->{$_} = $myconfig{$_}         for qw(datestyle);
......
147 156

  
148 157
  print $form->parse_html_template("dbupgrade/footer");
149 158

  
150
  return -2;
159
  return LOGIN_DBUPDATE_AVAILABLE();
151 160
}
152 161

  
153 162
sub dbconnect_vars {
locale/de/all
1973 1973
  'The base unit does not exist or it is about to be deleted in row %d.' => 'Die Basiseinheit in Zeile %d existiert nicht oder soll gelöscht werden.',
1974 1974
  'The base unit does not exist.' => 'Die Basiseinheit existiert nicht.',
1975 1975
  'The base unit relations must not contain loops (e.g. by saying that unit A\'s base unit is B, B\'s base unit is C and C\'s base unit is A) in row %d.' => 'Die Beziehungen der Einheiten dürfen keine Schleifen beinhalten (z.B. wenn gesagt wird, dass Einheit As Basiseinheit B, Bs Basiseinheit C und Cs Basiseinheit A ist) in Zeile %d.',
1976
  'The basic client tables have not been created for this client\'s database yet.' => 'Die grundlegenden Mandantentabellen wurden in der für diesen Mandanten konfigurierten Datenbank noch nicht angelegt.',
1976 1977
  'The business has been created.' => 'Der Kunden-/Lieferantentyp wurde erfasst.',
1977 1978
  'The business has been deleted.' => 'Der Kunden-/Lieferantentyp wurde gelöscht.',
1978 1979
  'The business has been saved.' => 'Der Kunden-/Lieferantentyp wurde gespeichert.',
......
2126 2127
  'The wrong taxkeys for AP and AR transactions have been fixed.' => 'Die Probleme mit falschen Steuerschlüssel bei Kreditoren- und Debitorenbuchungen wurden behoben.',
2127 2128
  'The wrong taxkeys for inventory transactions for sales and purchase invoices have been fixed.' => 'Die falschen Steuerschlüssel für Warenbestandsbuchungen bei Einkaufs- und Verkaufsrechnungen wurden behoben.',
2128 2129
  'The wrong taxkeys have been fixed.' => 'Die Steuerschlüssel wurden nach Ihrer Auswahl korrigiert.',
2130
  'Then go to the database administration and chose "create database".' => 'Dann gehen Sie in den Datenbankverwaltung, und wählen Sie dort "Datenbank anlegen" aus.',
2129 2131
  'There are #1 more open invoices for this customer with other currencies.' => 'Es gibt #1 weitere offene Rechnungen für diesen Kunden, die in anderen Währungen ausgestellt wurden.',
2130 2132
  'There are #1 more open invoices from this vendor with other currencies.' => 'Es gibt #1 weitere offene Rechnungen von diesem Lieferanten, die in anderen Währungen ausgestellt wurden.',
2131 2133
  'There are #1 unfinished follow-ups of which #2 are due.' => 'Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.',
......
2152 2154
  'There is not enough left of \'#1\' in bin \'#2\' for the removal of #3.' => 'In Lagerplatz \'#2\' ist nicht genug von \'#1\' vorhanden, um #3 zu entnehmen.',
2153 2155
  'There was an error executing the background job.' => 'Bei der Ausführung des Hintergrund-Jobs trat ein Fehler auf.',
2154 2156
  'There was an error parsing the csv file: #1 in line #2.' => 'Es gab einen Fehler beim Parsen der CSV Datei: "#1" in der Zeile "#2"',
2157
  'There you can let kivitendo create the basic tables for you, even in an already existing database.' => 'Dort können Sie kivitendo diese grundlegenden Tabellen erstellen lassen, selbst in einer bereits existierenden Datenbank.',
2155 2158
  'Therefore several settings that had to be made for each user in the past have been consolidated into the client configuration.' => 'Dazu wurden gewisse Einstellungen, die vorher bei jedem Benutzer vorgenommen werden mussten, in die Konfiguration eines Mandanten verschoben.',
2156 2159
  'Therefore the definition of "kg" with the base unit "g" and a factor of 1000 is valid while defining "g" with a base unit of "kg" and a factor of "0.001" is not.' => 'So ist die Definition von "kg" mit der Basiseinheit "g" und dem Faktor 1000 zulässig, die Definition von "g" mit der Basiseinheit "kg" und dem Faktor "0,001" hingegen nicht.',
2157 2160
  'These wrong entries cannot be fixed automatically.' => 'Diese Einträge können nicht automatisch bereinigt werden.',
templates/webpages/login_screen/basic_tables_missing.html
1
[%- USE LxERP %]
2

  
3
 <p><b>[% LxERP.t8('Error!') %]</b></p>
4

  
5
 <p>
6
  [% LxERP.t8('The basic client tables have not been created for this client\'s database yet.') %]
7
  [% LxERP.t8('Please log in to the administration panel.') %]
8
  [% LxERP.t8('Then go to the database administration and chose "create database".') %]
9
  [% LxERP.t8('There you can let kivitendo create the basic tables for you, even in an already existing database.') %]
10
 </p>
11

  
12
 <hr>
13
 <p>
14
  [% LxERP.t8('For further information read this: ') %] <a href="doc/html/index.html" target="_blank">kivitendo Installation</a><br>
15
  [% LxERP.t8('Or download the whole Installation Documentation as PDF (350kB) for off-line study (currently in German Language): ') %] <a href="doc/kivitendo-Dokumentation.pdf" target="_blank">kivitendo-Dokumentation.pdf</a>
16
 </p>
17

  
18
 <hr>
19

  
20
 <p>
21
  <a href="controller.pl?action=LoginScreen/user_login" target="_top">[% LxERP.t8('Login') %]</a> |
22
  <a href="controller.pl?action=Admin/login" target="_top">[% LxERP.t8('Administration') %]</a>
23
 </p>

Auch abrufbar als: Unified diff