X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FCachedGroupMembers_Overlay.pm;fp=rt%2Flib%2FRT%2FCachedGroupMembers_Overlay.pm;h=0000000000000000000000000000000000000000;hb=33beebf4cb42eba3e1dd868ad5e0af102de961da;hp=452ac7377eed0cca2d994a932532af6010ea33f5;hpb=7ac86daf67b0a95153b736d5811f9050363f6553;p=freeside.git diff --git a/rt/lib/RT/CachedGroupMembers_Overlay.pm b/rt/lib/RT/CachedGroupMembers_Overlay.pm deleted file mode 100644 index 452ac7377..000000000 --- a/rt/lib/RT/CachedGroupMembers_Overlay.pm +++ /dev/null @@ -1,173 +0,0 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC -# -# -# (Except where explicitly superseded by other copyright notices) -# -# -# LICENSE: -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 or visit their web page on the internet at -# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# -# CONTRIBUTION SUBMISSION POLICY: -# -# (The following paragraph is not intended to limit the rights granted -# to you to modify and distribute this software under the terms of -# the GNU General Public License and is only of importance to you if -# you choose to contribute your changes and enhancements to the -# community by submitting them to Best Practical Solutions, LLC.) -# -# By intentionally submitting any modifications, corrections or -# derivatives to this work, or any other work intended for use with -# Request Tracker, to Best Practical Solutions, LLC, you confirm that -# you are the copyright holder for those contributions and you grant -# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -# royalty-free, perpetual, license to use, copy, create derivative -# works based on those contributions, and sublicense and distribute -# those contributions and any derivatives thereof. -# -# END BPS TAGGED BLOCK }}} - -=head1 NAME - - RT::CachedGroupMembers - a collection of RT::GroupMember objects - -=head1 SYNOPSIS - - use RT::CachedGroupMembers; - -=head1 DESCRIPTION - - -=head1 METHODS - - - -=cut - - -package RT::CachedGroupMembers; - -use strict; -no warnings qw(redefine); - -# {{{ LimitToUsers - -=head2 LimitToUsers - -Limits this search object to users who are members of this group -This is really useful when you want to have your UI separate out -groups from users for display purposes - -=cut - -sub LimitToUsers { - my $self = shift; - - my $principals = $self->NewAlias('Principals'); - $self->Join( ALIAS1 => 'main', FIELD1 => 'MemberId', - ALIAS2 => $principals, FIELD2 =>'id'); - - $self->Limit( ALIAS => $principals, - FIELD => 'PrincipalType', - VALUE => 'User', - ENTRYAGGREGATOR => 'OR', - ); -} - -# }}} - - -# {{{ LimitToGroups - -=head2 LimitToGroups - -Limits this search object to Groups who are members of this group -This is really useful when you want to have your UI separate out -groups from users for display purposes - -=cut - -sub LimitToGroups { - my $self = shift; - - my $principals = $self->NewAlias('Principals'); - $self->Join( ALIAS1 => 'main', FIELD1 => 'MemberId', - ALIAS2 => $principals, FIELD2 =>'id'); - - $self->Limit( ALIAS => $principals, - FIELD => 'PrincipalType', - VALUE => 'Group', - ENTRYAGGREGATOR => 'OR', - ); -} - -# }}} - -# {{{ sub LimitToMembersOfGroup - -=head2 LimitToMembersOfGroup PRINCIPAL_ID - -Takes a Principal Id as its only argument. -Limits the current search principals which are _directly_ members -of the group which has PRINCIPAL_ID as its principal id. - -=cut - -sub LimitToMembersOfGroup { - my $self = shift; - my $group = shift; - - return ($self->Limit( - VALUE => $group, - FIELD => 'GroupId', - ENTRYAGGREGATOR => 'OR', - )); - -} -# }}} - -# {{{ sub LimitToGroupsWithMember - -=head2 LimitToGroupsWithMember PRINCIPAL_ID - -Takes a Principal Id as its only argument. -Limits the current search to groups which contain PRINCIPAL_ID as a member or submember. -This function gets used by GroupMember->Create to populate subgroups - -=cut - -sub LimitToGroupsWithMember { - my $self = shift; - my $member = shift; - - - - return ($self->Limit( - VALUE => $member || '0', - FIELD => 'MemberId', - ENTRYAGGREGATOR => 'OR', - QUOTEVALUE => 0 - )); - -} -# }}} -1;