summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Templates_Overlay.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Templates_Overlay.pm')
-rw-r--r--rt/lib/RT/Templates_Overlay.pm35
1 files changed, 35 insertions, 0 deletions
diff --git a/rt/lib/RT/Templates_Overlay.pm b/rt/lib/RT/Templates_Overlay.pm
index 6bc992e05..544096233 100644
--- a/rt/lib/RT/Templates_Overlay.pm
+++ b/rt/lib/RT/Templates_Overlay.pm
@@ -137,5 +137,40 @@ sub NewItem {
}
# }}}
+# {{{ sub Next
+
+=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')) {
+ 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);
+ }
+
+}
+# }}}
+
1;