summaryrefslogtreecommitdiffstats
path: root/Bugzilla/User.pm
diff options
context:
space:
mode:
authorbugreport%peshkin.net <>2004-08-11 23:00:33 +0200
committerbugreport%peshkin.net <>2004-08-11 23:00:33 +0200
commit9e6914114a17d5b1ca92ae4aa1f9796d1ba66df8 (patch)
tree497b3ea948791d229051e4c9ec663ae5fdf8a6b1 /Bugzilla/User.pm
parentd306c2edbbc171d5345b3378bd76ed5b69984316 (diff)
downloadbugzilla-9e6914114a17d5b1ca92ae4aa1f9796d1ba66df8.tar.gz
bugzilla-9e6914114a17d5b1ca92ae4aa1f9796d1ba66df8.tar.xz
Bug 244239: Add group-based pronouns to query
r=erik,justdave a=justdave
Diffstat (limited to 'Bugzilla/User.pm')
-rw-r--r--Bugzilla/User.pm14
1 files changed, 11 insertions, 3 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm
index 38453841b..21585b3a4 100644
--- a/Bugzilla/User.pm
+++ b/Bugzilla/User.pm
@@ -340,7 +340,7 @@ sub visible_groups_inherited {
return $self->{visible_groups_inherited} if defined $self->{visible_groups_inherited};
return [] unless $self->id;
my @visgroups = @{$self->visible_groups_direct};
- @visgroups = flatten_group_membership(@visgroups);
+ @visgroups = @{$self->flatten_group_membership(@visgroups)};
$self->{visible_groups_inherited} = \@visgroups;
return $self->{visible_groups_inherited};
}
@@ -489,7 +489,7 @@ sub can_bless {
}
sub flatten_group_membership {
- my (@groups) = @_;
+ my ($self, @groups) = @_;
my $dbh = Bugzilla->dbh;
my $sth;
@@ -509,7 +509,7 @@ sub flatten_group_membership {
}
}
}
- return @groups;
+ return \@groups;
}
sub match {
@@ -1092,6 +1092,14 @@ Returns a reference to an array of users. The array is populated with hashrefs
containing the login, identity and visibility. Users that are not visible to this
user will have 'visible' set to zero.
+=item C<flatten_group_membership>
+
+Accepts a list of groups and returns a list of all the groups whose members
+inherit membership in any group on the list. So, we can determine if a user
+is in any of the groups input to flatten_group_membership by querying the
+user_group_map for any user with DIRECT or REGEXP membership IN() the list
+of groups returned.
+
=item C<visible_groups_inherited>
Returns a list of all groups whose members should be visible to this user.