-sub dbneedsupdate {
- $main::lxdebug->enter_sub();
-
- my ($self, $form) = @_;
-
- my %members = $main::auth->read_all_users();
- my $dbupdater = SL::DBUpgrade2->new(form => $form, dbdriver => $form->{dbdriver})->parse_dbupdate_controls;
-
- my ($query, $sth, %dbs_needing_updates);
-
- foreach my $login (grep /[a-z]/, keys %members) {
- my $member = $members{$login};
-
- map { $form->{$_} = $member->{$_} } qw(dbname dbuser dbpasswd dbhost dbport);
- dbconnect_vars($form, $form->{dbname});
-
- my $dbh = SL::DBConnect->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd});
-
- next unless $dbh;
-
- my $version;
-
- $query = qq|SELECT version FROM defaults|;
- $sth = prepare_query($form, $dbh, $query);
- if ($sth->execute()) {
- ($version) = $sth->fetchrow_array();
- }
- $sth->finish();
-
- $dbh->disconnect and next unless $version;
-
- my $update_available = $dbupdater->update_available($version) || $dbupdater->update2_available($dbh);
- $dbh->disconnect;
-
- if ($update_available) {
- my $dbinfo = {};
- map { $dbinfo->{$_} = $member->{$_} } grep /^db/, keys %{ $member };
- $dbs_needing_updates{$member->{dbhost} . "::" . $member->{dbname}} = $dbinfo;
- }
- }
-
- $main::lxdebug->leave_sub();
-
- return values %dbs_needing_updates;
-}
-