diff options
Diffstat (limited to 'rt/lib/RT/Scrips_Overlay.pm')
-rw-r--r-- | rt/lib/RT/Scrips_Overlay.pm | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/rt/lib/RT/Scrips_Overlay.pm b/rt/lib/RT/Scrips_Overlay.pm deleted file mode 100644 index d201480..0000000 --- a/rt/lib/RT/Scrips_Overlay.pm +++ /dev/null @@ -1,208 +0,0 @@ -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# 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. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK -=head1 NAME - - RT::Scrips - a collection of RT Scrip objects - -=head1 SYNOPSIS - - use RT::Scrips; - -=head1 DESCRIPTION - - -=head1 METHODS - - -=begin testing - -ok (require RT::Scrips); - -=end testing - -=cut - -use strict; -no warnings qw(redefine); - -# {{{ sub LimitToQueue - -=head2 LimitToQueue - -Takes a queue id (numerical) as its only argument. Makes sure that -Scopes it pulls out apply to this queue (or another that you've selected with -another call to this method - -=cut - -sub LimitToQueue { - my $self = shift; - my $queue = shift; - - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', - VALUE => "$queue") - if defined $queue; - -} -# }}} - -# {{{ sub LimitToGlobal - -=head2 LimitToGlobal - -Makes sure that -Scopes it pulls out apply to all queues (or another that you've selected with -another call to this method or LimitToQueue - -=cut - - -sub LimitToGlobal { - my $self = shift; - - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', - VALUE => 0); - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - - return(new RT::Scrip($self->CurrentUser)); -} -# }}} - -# {{{ sub Next - -=head2 Next - -Returns the next scrip that this user can see. - -=cut - -sub Next { - my $self = shift; - - - my $Scrip = $self->SUPER::Next(); - if ((defined($Scrip)) and (ref($Scrip))) { - - if ($Scrip->CurrentUserHasRight('ShowScrips')) { - return($Scrip); - } - - #If the user doesn't have the right to show this scrip - else { - return($self->Next()); - } - } - #if there never was any scrip - else { - return(undef); - } - -} -# }}} - -sub Apply { - my ($self, %args) = @_; - - #We're really going to need a non-acled ticket for the scrips to work - my ($TicketObj, $TransactionObj); - - if ( ($TicketObj = $args{'TicketObj'}) ) { - $TicketObj->CurrentUser($self->CurrentUser); - } - else { - $TicketObj = RT::Ticket->new($self->CurrentUser); - $TicketObj->Load( $args{'Ticket'} ) - || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); - } - - if ( ($TransactionObj = $args{'TransactionObj'}) ) { - $TransactionObj->CurrentUser($self->CurrentUser); - } - else { - $TransactionObj = RT::Transaction->new($self->CurrentUser); - $TransactionObj->Load( $args{'Transaction'} ) - || $RT::Logger->err("$self couldn't load transaction $args{'Transaction'}\n"); - } - - # {{{ Deal with Scrips - - $self->LimitToQueue( $TicketObj->QueueObj->Id ) - ; #Limit it to $Ticket->QueueObj->Id - $self->LimitToGlobal() - unless $TicketObj->QueueObj->Disabled; # or to "global" - - - $self->Limit(FIELD => "Stage", VALUE => $args{'Stage'}); - - - my $ConditionsAlias = $self->NewAlias('ScripConditions'); - - $self->Join( - ALIAS1 => 'main', - FIELD1 => 'ScripCondition', - ALIAS2 => $ConditionsAlias, - FIELD2 => 'id' - ); - - #We only want things where the scrip applies to this sort of transaction - $self->Limit( - ALIAS => $ConditionsAlias, - FIELD => 'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => $args{'Type'}, - ENTRYAGGREGATOR => 'OR', - ) if $args{'Type'}; - - # Or where the scrip applies to any transaction - $self->Limit( - ALIAS => $ConditionsAlias, - FIELD => 'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => "Any", - ENTRYAGGREGATOR => 'OR', - ); - - #Iterate through each script and check it's applicability. - while ( my $Scrip = $self->Next() ) { - $Scrip->Apply (TicketObj => $TicketObj, - TransactionObj => $TransactionObj); - } - - $TicketObj->CurrentUser( $TicketObj->OriginalUser ); - $TransactionObj->CurrentUser( $TransactionObj->OriginalUser ); - - # }}} -} - - -1; - |