]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 579797: Restore ValidateGroupName in Bugzilla::Group, because it is
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 20 Jul 2010 21:20:57 +0000 (14:20 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 20 Jul 2010 21:20:57 +0000 (14:20 -0700)
still in use by the whining system
r=LpSolit, a=LpSolit

Bugzilla/Group.pm

index eef0a70cddb4472fc005736e46add39502751880..11a27e2e61d3f7f2d514331d5cb9ed7f653fe2ec 100644 (file)
@@ -420,6 +420,25 @@ sub create {
     return $group;
 }
 
+sub ValidateGroupName {
+    my ($name, @users) = (@_);
+    my $dbh = Bugzilla->dbh;
+    my $query = "SELECT id FROM groups " .
+                "WHERE name = ?";
+    if (Bugzilla->params->{'usevisibilitygroups'}) {
+        my @visible = (-1);
+        foreach my $user (@users) {
+            $user && push @visible, @{$user->visible_groups_direct};
+        }
+        my $visible = join(', ', @visible);
+        $query .= " AND id IN($visible)";
+    }
+    my $sth = $dbh->prepare($query);
+    $sth->execute($name);
+    my ($ret) = $sth->fetchrow_array();
+    return $ret;
+}
+
 ###############################
 ###       Validators        ###
 ###############################
@@ -480,6 +499,7 @@ Bugzilla::Group - Bugzilla group class.
     my $icon_url     = $group->icon_url;
     my $is_active_bug_group = $group->is_active_bug_group;
 
+    my $group_id = Bugzilla::Group::ValidateGroupName('admin', @users);
     my @groups   = Bugzilla::Group->get_all;
 
 =head1 DESCRIPTION
@@ -499,8 +519,21 @@ normally does, this function also makes the new group be inherited
 by the C<admin> group. That is, the C<admin> group will automatically
 be a member of this group.
 
+=item C<ValidateGroupName($name, @users)>
+
+Description: ValidateGroupName checks to see if ANY of the users
+             in the provided list of user objects can see the
+             named group.
+
+Params:      $name - String with the group name.
+             @users - An array with Bugzilla::User objects.
+
+Returns:     It returns the group id if successful
+             and undef otherwise.
+
 =back
 
+
 =head1 METHODS
 
 =over