summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Scrips_Overlay.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Scrips_Overlay.pm')
-rw-r--r--rt/lib/RT/Scrips_Overlay.pm208
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;
-