summaryrefslogtreecommitdiff
path: root/rt
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-11-27 16:43:19 -0800
committerMark Wells <mark@freeside.biz>2016-11-27 16:43:19 -0800
commit34e42c0d926bf569ceaf8da784c2569bc7f83cec (patch)
tree9ad08eca35d56bc00ac3545ff2220d32673adfcd /rt
parent7fe7e453b6eb0778235e0a64e3b654f673d1caa2 (diff)
add RT ACL for bulk updating tickets, #72964
Diffstat (limited to 'rt')
-rw-r--r--rt/FREESIDE_MODIFIED6
-rw-r--r--rt/lib/RT/System.pm4
-rwxr-xr-xrt/share/html/Elements/Tabs5
-rwxr-xr-xrt/share/html/Search/Bulk.html7
-rwxr-xr-xrt/share/html/Ticket/Elements/Tabs13
5 files changed, 30 insertions, 5 deletions
diff --git a/rt/FREESIDE_MODIFIED b/rt/FREESIDE_MODIFIED
index 05ffb2a46..db5212d5a 100644
--- a/rt/FREESIDE_MODIFIED
+++ b/rt/FREESIDE_MODIFIED
@@ -171,3 +171,9 @@ share/html/Search/Schedule.html
share/html/Elements/CalendarSlotSchedule
share/html/Ticket/Display.html
+# BulkUpdateTickets ACL
+lib/RT/System.pm
+share/html/Elements/Tabs
+share/html/Search/Bulk.html
+share/html/Ticket/Elements/Tabs
+
diff --git a/rt/lib/RT/System.pm b/rt/lib/RT/System.pm
index 456223878..3bc36c3f4 100644
--- a/rt/lib/RT/System.pm
+++ b/rt/lib/RT/System.pm
@@ -86,6 +86,8 @@ our $RIGHTS = {
LoadSavedSearch => "Allow loading of saved searches", # loc_pair
CreateSavedSearch => "Allow creation of saved searches", # loc_pair
ExecuteCode => "Allow writing Perl code in templates, scrips, etc", # loc_pair
+ #freeside
+ BulkUpdateTickets => "Bulk update tickets",
};
our $RIGHT_CATEGORIES = {
@@ -98,6 +100,8 @@ our $RIGHT_CATEGORIES = {
LoadSavedSearch => 'General',
CreateSavedSearch => 'General',
ExecuteCode => 'Admin',
+ #freeside
+ BulkUpdateTickets => 'Staff',
};
# Tell RT::ACE that this sort of object can get acls granted
diff --git a/rt/share/html/Elements/Tabs b/rt/share/html/Elements/Tabs
index bc2badf4a..30f4908c2 100755
--- a/rt/share/html/Elements/Tabs
+++ b/rt/share/html/Elements/Tabs
@@ -756,7 +756,10 @@ my $build_main_nav = sub {
}
if ( $has_query ) {
- $current_search_menu->child( bulk => title => loc('Bulk Update'), path => "/Search/Bulk.html$args" );
+ #freeside
+ if ( $session{'CurrentUser'}->HasRight( Right => 'BulkUpdateTickets', Object => RT->System ) ) {
+ $current_search_menu->child( bulk => title => loc('Bulk Update'), path => "/Search/Bulk.html$args" );
+ }
$current_search_menu->child( chart => title => loc('Chart'), path => "/Search/Chart.html$args" );
#formerly Callbacks/RTx-Calendar/Ticket/Element/Tabs/Default
diff --git a/rt/share/html/Search/Bulk.html b/rt/share/html/Search/Bulk.html
index 89e850bfa..03e6bf027 100755
--- a/rt/share/html/Search/Bulk.html
+++ b/rt/share/html/Search/Bulk.html
@@ -236,6 +236,13 @@ unless ( defined $Rows ) {
}
my $title = loc("Update multiple tickets");
+#freeside
+unless ( $session{'CurrentUser'}
+ ->HasRight( Right => 'BulkUpdateTickets', Object => RT->System) )
+{
+ Abort('You are not allowed to bulk-update tickets.');
+}
+
# Iterate through the ARGS hash and remove anything with a null value.
map ( $ARGS{$_} =~ /^$/ && ( delete $ARGS{$_} ), keys %ARGS );
diff --git a/rt/share/html/Ticket/Elements/Tabs b/rt/share/html/Ticket/Elements/Tabs
index 2f89dc61c..bcc97e52a 100755
--- a/rt/share/html/Ticket/Elements/Tabs
+++ b/rt/share/html/Ticket/Elements/Tabs
@@ -326,10 +326,15 @@ if ($has_query) {
title => loc('Show Results'),
};
- $tabs->{"j"} = {
- path => "Search/Bulk.html$args",
- title => loc('Bulk Update'),
- };
+ #freeside
+ if ( $session{'CurrentUser'}
+ ->HasRight(Right => 'BulkUpdateTickets', Object => $RT::System) )
+ {
+ $tabs->{"j"} = {
+ path => "Search/Bulk.html$args",
+ title => loc('Bulk Update'),
+ };
+ }
$tabs->{"k"} = {
path => "Search/Chart.html$args",