X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FTemplates.pm;h=be571f096a50e2af3252fdd82f7db6b886154d75;hb=a6fe07e49e3fc12169e801b1ed6874c3a5bd8500;hp=b5b483c96d4a1a663bf0f4bca4fa737482aa3989;hpb=c0567c688084e89fcd11bf82348b6c418f1254ac;p=freeside.git diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm index b5b483c96..be571f096 100755 --- a/rt/lib/RT/Templates.pm +++ b/rt/lib/RT/Templates.pm @@ -1,4 +1,50 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Templates.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2012 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 @@ -13,38 +59,21 @@ =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Templates); - -=end testing =cut -package RT::Templates; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); - -# {{{ sub _Init +package RT::Templates; -=head2 _Init +use strict; +use warnings; - Returns RT::Templates specific init info like table and primary key names +use RT::Template; -=cut +use base 'RT::SearchBuilder'; -sub _Init { - - my $self = shift; - $self->{'table'} = "Templates"; - $self->{'primary_key'} = "id"; - return ($self->SUPER::_Init(@_)); -} -# }}} +sub Table { 'Templates'} -# {{{ LimitToNotInQueue =head2 LimitToNotInQueue @@ -61,9 +90,7 @@ sub LimitToNotInQueue { OPERATOR => '!=' ); } -# }}} -# {{{ LimitToGlobal =head2 LimitToGlobal @@ -74,15 +101,12 @@ which can be used with any queue. sub LimitToGlobal { my $self = shift; - my $queue_id = shift; $self->Limit(FIELD => 'Queue', VALUE => "0", OPERATOR => '=' ); } -# }}} -# {{{ LimitToQueue =head2 LimitToQueue @@ -99,24 +123,53 @@ sub LimitToQueue { OPERATOR => '=' ); } -# }}} -# {{{ sub NewItem -=head2 NewItem +=head2 Next -Returns a new empty Template object +Returns the next template that this user can see. =cut + +sub Next { + my $self = shift; + + + my $templ = $self->SUPER::Next(); + if ((defined($templ)) and (ref($templ))) { + + # If it's part of a queue, and the user can read templates in + # that queue, or the user can globally read templates, show it + if ($templ->Queue && $templ->CurrentUserHasQueueRight('ShowTemplate') or + $templ->CurrentUser->HasRight(Object => $RT::System, Right => 'ShowTemplate') or + $templ->CurrentUser->HasRight(Object => $RT::System, Right => 'ShowGlobalTemplates')) { + return($templ); + } + + #If the user doesn't have the right to show this template + else { + return($self->Next()); + } + } + #if there never was any template + else { + return(undef); + } + +} + +=head2 NewItem -sub NewItem { - my $self = shift; +Returns an empty new RT::Template item - use RT::Template; - my $item = new RT::Template($self->CurrentUser); - return($item); +=cut + +sub NewItem { + my $self = shift; + return(RT::Template->new($self->CurrentUser)); } -# }}} -1; +RT::Base->_ImportOverlays(); + +1;