diff options
Diffstat (limited to 'rt/lib/RT/Scrips.pm')
-rwxr-xr-x | rt/lib/RT/Scrips.pm | 162 |
1 files changed, 87 insertions, 75 deletions
diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm index a39443136..90be847d8 100755 --- a/rt/lib/RT/Scrips.pm +++ b/rt/lib/RT/Scrips.pm @@ -1,115 +1,127 @@ -# 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 -# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) -# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. -# -# !! DO NOT EDIT THIS FILE !! -# - -use strict; - +# Copyright 1999-2001 Jesse Vincent <jesse@fsck.com> +# Released under the terms of the GNU Public License +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrips.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ =head1 NAME - RT::Scrips -- Class Description - + RT::Scrips - a collection of RT Scrip objects + =head1 SYNOPSIS - use RT::Scrips + use RT::Scrips; =head1 DESCRIPTION =head1 METHODS -=cut -package RT::Scrips; +=begin testing -use RT::SearchBuilder; -use RT::Scrip; +ok (require RT::TestHarness); +ok (require RT::Scrips); -use vars qw( @ISA ); -@ISA= qw(RT::SearchBuilder); +=end testing +=cut -sub _Init { - my $self = shift; - $self->{'table'} = 'Scrips'; - $self->{'primary_key'} = 'id'; +package RT::Scrips; +use RT::EasySearch; +use RT::Scrip; +@ISA= qw(RT::EasySearch); - return ( $self->SUPER::_Init(@_) ); +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Scrips"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); } +# }}} +# {{{ sub LimitToQueue -=item NewItem +=head2 LimitToQueue -Returns an empty new RT::Scrip item +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 NewItem { - my $self = shift; - return(RT::Scrip->new($self->CurrentUser)); +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => "$queue") + if defined $queue; + } +# }}} - eval "require RT::Scrips_Overlay"; - if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Overlay.pm}) { - die $@; - }; +# {{{ sub LimitToGlobal - eval "require RT::Scrips_Vendor"; - if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Vendor.pm}) { - die $@; - }; +=head2 LimitToGlobal - eval "require RT::Scrips_Local"; - if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Local.pm}) { - die $@; - }; +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); + +} +# }}} -=head1 SEE ALSO - -This class allows "overlay" methods to be placed -into the following files _Overlay is for a System overlay by the original author, -_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations. - -These overlay files can contain new subs or subs to replace existing subs in this module. - -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +# {{{ sub NewItem +sub NewItem { + my $self = shift; + + return(new RT::Scrip($self->CurrentUser)); +} +# }}} - no warnings qw(redefine); +# {{{ sub Next -so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. +=head2 Next -RT::Scrips_Overlay, RT::Scrips_Vendor, RT::Scrips_Local +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); + } + +} +# }}} 1; + |