summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Users.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-05-27 15:20:05 -0700
committerIvan Kohler <ivan@freeside.biz>2014-05-30 13:00:41 -0700
commit0ea23112cfa0d82738b0f08d60d90579721b7524 (patch)
tree392dee3654d0f3839944f748819a39c8ce20192c /rt/lib/RT/Users.pm
parent60dd95422a1ad4724e0c5d9dd7f8e8878cd96aa8 (diff)
rt 4.0.20 (RT#13852)
Diffstat (limited to 'rt/lib/RT/Users.pm')
-rwxr-xr-xrt/lib/RT/Users.pm22
1 files changed, 16 insertions, 6 deletions
diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm
index 1c75f4250..f377d470c 100755
--- a/rt/lib/RT/Users.pm
+++ b/rt/lib/RT/Users.pm
@@ -543,21 +543,31 @@ sub WhoHaveGroupRight
}
-=head2 WhoBelongToGroups { Groups => ARRAYREF, IncludeSubgroupMembers => 1 }
+=head2 WhoBelongToGroups { Groups => ARRAYREF, IncludeSubgroupMembers => 1, IncludeUnprivileged => 0 }
+
+Return members who belong to any of the groups passed in the groups whose IDs
+are included in the Groups arrayref.
+
+If IncludeSubgroupMembers is true (default) then members of any group that's a
+member of one of the passed groups are returned. If it's cleared then only
+direct member users are returned.
+
+If IncludeUnprivileged is false (default) then only privileged members are
+returned; otherwise either privileged or unprivileged group members may be
+returned.
=cut
-# XXX: should be generalized
sub WhoBelongToGroups {
my $self = shift;
my %args = ( Groups => undef,
IncludeSubgroupMembers => 1,
+ IncludeUnprivileged => 0,
@_ );
- # Unprivileged users can't be granted real system rights.
- # is this really the right thing to be saying?
- $self->LimitToPrivileged();
-
+ if (!$args{'IncludeUnprivileged'}) {
+ $self->LimitToPrivileged();
+ }
my $group_members = $self->_JoinGroupMembers( %args );
foreach my $groupid (@{$args{'Groups'}}) {