fixed an error in the groups/db system where removing a dblink connected to a group would produce a fatal error

This commit is contained in:
JT Smith 2007-04-11 17:24:56 +00:00
parent e8afd2ad72
commit 1013381c36

View file

@ -582,25 +582,29 @@ sub getDatabaseUsers {
### Check db database ### Check db database
if ($self->get("dbQuery") && defined $self->get("databaseLinkId")) { if ($self->get("dbQuery") && defined $self->get("databaseLinkId")) {
my $dbLink = WebGUI::DatabaseLink->new($self->session,$self->get("databaseLinkId")); my $dbLink = WebGUI::DatabaseLink->new($self->session,$self->get("databaseLinkId"));
my $dbh = $dbLink->db if (defined $dbLink); if (defined $dbLink) {
if (defined $dbh) { my $dbh = $dbLink->db ;
my $query = $self->get("dbQuery"); if (defined $dbh) {
WebGUI::Macro::process($self->session,\$query); my $query = $self->get("dbQuery");
my $sth = $dbh->unconditionalRead($query); WebGUI::Macro::process($self->session,\$query);
if (defined $sth) { my $sth = $dbh->unconditionalRead($query);
unless ($sth->errorCode < 1) { if (defined $sth) {
$self->session->errorHandler->warn("There was a problem with the database query for group ID $gid."); unless ($sth->errorCode < 1) {
} else { $self->session->errorHandler->warn("There was a problem with the database query for group ID $gid.");
while(my ($userId)=$sth->array) { } else {
push @dbUsers, $userId; while(my ($userId)=$sth->array) {
push @dbUsers, $userId;
}
} }
$sth->finish;
} else {
$self->session->errorHandler->error("Couldn't process unconditional read for database group with group id $gid.");
} }
$sth->finish; $dbLink->disconnect;
} else { }
$self->session->errorHandler->error("Couldn't process unconditional read for database group with group id $gid."); } else {
} $self->session->errorHandler->warn("The database link ".$self->get("databaseLinkId")." no longer exists even though group ".$gid." references it.");
$dbLink->disconnect; }
}
} }
return \@dbUsers; return \@dbUsers;
} }