Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 40f16528

Von Sven Schöling vor mehr als 8 Jahren hinzugefügt

  • ID 40f16528620535266596fc247109a821031c555d
  • Vorgänger 01074b6e
  • Nachfolger 5f8a4fc5

Auth::ColumnInformation: fetch nur in reset, nicht in init

die Version aus e7a7492e macht Probleme im taskserver.

ausserdem das reset nur dann machen, wenn es auch sinnvoll ist. Bisher
wurde das als silver Bullet aufgerufen, wannimmer sich etwas an der DB
geändert haben könnte, also auch beim anlegen der Auth DB in Tests und
beim initialen Anlegen. Der erste Fall ist jetzt in eine init Funktion
ausgelagert. Im zweiten Fall waren die zu resettenden Werte eh noch
nicht gesetzt, und das reset kann rausfallen.

Unterschiede anzeigen:

SL/Auth.pm
37 37
  my $self            = bless {}, $type;
38 38

  
39 39
  $self->_read_auth_config(%params);
40
  $self->reset;
40
  $self->init;
41 41

  
42 42
  return $self;
43 43
}
44 44

  
45
sub init {
46
  my ($self, %params) = @_;
47

  
48
  $self->{SESSION}            = { };
49
  $self->{FULL_RIGHTS}        = { };
50
  $self->{RIGHTS}             = { };
51
  $self->{unique_counter}     = 0;
52
  $self->{column_information} = SL::Auth::ColumnInformation->new(auth => $self);
53
}
54

  
45 55
sub reset {
46 56
  my ($self, %params) = @_;
47 57

  
......
50 60
  $self->{RIGHTS}             = { };
51 61
  $self->{unique_counter}     = 0;
52 62
  $self->{column_information} = SL::Auth::ColumnInformation->new(auth => $self);
63
  $self->{column_information}->_fetch;
53 64
  $self->{authenticator}->reset;
54 65

  
55 66
  $self->client(undef);
SL/Auth/ColumnInformation.pm
15 15
  $self->{auth} = $params{auth} || croak "Missing 'auth'";
16 16
  weaken $self->{auth};
17 17

  
18
  $self->_fetch if $self->{auth}->dbconnect(1);
19

  
20 18
  return $self;
21 19
}
22 20

  
t/000setup_database.t
66 66
    SL::DBConnect->get_options,
67 67
  );
68 68

  
69
  $::auth->reset;
70 69
  my $dbh_template = SL::DBConnect->connect(@dbi_options) || BAIL_OUT("No database connection to the template database: " . $DBI::errstr);
71 70
  my $auth_dbh     = $::auth->dbconnect(1);
72 71

  
......
75 74
    $auth_dbh->disconnect;
76 75

  
77 76
    dbh_do($dbh_template, "DROP DATABASE \"" . $db_cfg->{db} . "\"", message => "Database could not be dropped");
78

  
79
    $::auth->reset;
80 77
  }
81 78

  
82 79
  dbg("Creating database");

Auch abrufbar als: Unified diff