diff options
Diffstat (limited to 'rt/lib/RT/CustomFields.pm')
-rw-r--r-- | rt/lib/RT/CustomFields.pm | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/rt/lib/RT/CustomFields.pm b/rt/lib/RT/CustomFields.pm index 017018ef4..7c7701580 100644 --- a/rt/lib/RT/CustomFields.pm +++ b/rt/lib/RT/CustomFields.pm @@ -2,7 +2,7 @@ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC # <sales@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -141,6 +141,25 @@ sub LimitToParentType { $self->Limit( FIELD => 'LookupType', STARTSWITH => "$lookup" ); } +=head2 LimitToObjectId + +Takes an ObjectId and limits the collection to CFs applied to said object. + +When called multiple times the ObjectId limits are joined with OR. + +=cut + +sub LimitToObjectId { + my $self = shift; + my $id = shift; + $self->Limit( + ALIAS => $self->_OCFAlias, + FIELD => 'ObjectId', + OPERATOR => '=', + VALUE => $id || 0, + ENTRYAGGREGATOR => 'OR' + ); +} =head2 LimitToGlobalOrObjectId @@ -155,19 +174,11 @@ sub LimitToGlobalOrObjectId { foreach my $id (@_) { - $self->Limit( ALIAS => $self->_OCFAlias, - FIELD => 'ObjectId', - OPERATOR => '=', - VALUE => $id || 0, - ENTRYAGGREGATOR => 'OR' ); - $global_only = 0 if $id; + $self->LimitToObjectId($id); + $global_only = 0 if $id; } - $self->Limit( ALIAS => $self->_OCFAlias, - FIELD => 'ObjectId', - OPERATOR => '=', - VALUE => 0, - ENTRYAGGREGATOR => 'OR' ) unless $global_only; + $self->LimitToObjectId(0) unless $global_only; } sub _LimitToOCFs { |