From 1dc3eb46af07596e64c6c3bb1cbb82cf121ad8b1 Mon Sep 17 00:00:00 2001 From: Max Kanat-Alexander Date: Tue, 20 Jul 2010 14:20:57 -0700 Subject: Bug 579797: Restore ValidateGroupName in Bugzilla::Group, because it is still in use by the whining system r=LpSolit, a=LpSolit --- Bugzilla/Group.pm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'Bugzilla/Group.pm') diff --git a/Bugzilla/Group.pm b/Bugzilla/Group.pm index eef0a70cd..11a27e2e6 100644 --- a/Bugzilla/Group.pm +++ b/Bugzilla/Group.pm @@ -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 group. That is, the C group will automatically be a member of this group. +=item C + +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 -- cgit v1.2.3-24-g4f1b