]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 403755: DBI error thrown when you cannot edit a bug which is in a product restric...
authorlpsolit%gmail.com <>
Thu, 15 Nov 2007 04:46:48 +0000 (04:46 +0000)
committerlpsolit%gmail.com <>
Thu, 15 Nov 2007 04:46:48 +0000 (04:46 +0000)
Bugzilla/User.pm

index 2a61ab76e9af920bc9d47d264832ed45ba8cb332..b8f0ecedbda013afaaa5c5bc830bbc918eac85a9 100644 (file)
@@ -562,21 +562,16 @@ sub can_see_user {
 sub can_edit_product {
     my ($self, $prod_id) = @_;
     my $dbh = Bugzilla->dbh;
-    my $sth = $self->{sthCanEditProductId};
-    my $userid = $self->{id};
-    my $query = q{SELECT group_id FROM group_control_map 
-                   WHERE product_id =? 
-                     AND canedit != 0 };
-    if (%{$self->groups}) {
-        my $groups = join(',', values(%{$self->groups}));
-        $query .= qq{AND group_id NOT IN($groups)};
-    }
-    unless ($sth) { $sth = $dbh->prepare($query); }
-    $sth->execute($prod_id);
-    $self->{sthCanEditProductId} = $sth;
-    my $result = $sth->fetchrow_array();
-    
-    return (!defined($result));
+
+    my $has_external_groups =
+      $dbh->selectrow_array('SELECT 1
+                               FROM group_control_map
+                              WHERE product_id = ?
+                                AND canedit != 0
+                                AND group_id NOT IN(' . $self->groups_as_string . ')',
+                             undef, $prod_id);
+
+    return !$has_external_groups;
 }
 
 sub can_see_bug {