rt 4.2.14 (#13852)
[freeside.git] / rt / lib / RT / Templates.pm
index 7d117fa..c5a49fe 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -68,10 +68,10 @@ package RT::Templates;
 use strict;
 use warnings;
 
-use RT::Template;
-
 use base 'RT::SearchBuilder';
 
+use RT::Template;
+
 sub Table { 'Templates'}
 
 
@@ -125,50 +125,20 @@ sub LimitToQueue {
 }
 
 
-=head2 Next
-
-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 AddRecord
 
-=head2 NewItem
-
-Returns an empty new RT::Template item
+Overrides the collection to ensure that only templates the user can see
+are returned.
 
 =cut
 
-sub NewItem {
+sub AddRecord {
     my $self = shift;
-    return(RT::Template->new($self->CurrentUser));
-}
+    my ($record) = @_;
 
+    return unless $record->CurrentUserCanRead;
+    return $self->SUPER::AddRecord( $record );
+}
 
 RT::Base->_ImportOverlays();