X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FTicketSystem.pm;h=744bcde3003e865c11eae1d07e11fcb3972fcad4;hb=c2dbe36096332d1e09bc58d7d9903e05247f0c9b;hp=8f3d7af038f2904ad3a397e5a854f58b0c6bd0b2;hpb=7c1e0242d6e2d8d45001bbb3b1b828fb425953c1;p=freeside.git diff --git a/FS/FS/TicketSystem.pm b/FS/FS/TicketSystem.pm index 8f3d7af03..744bcde30 100644 --- a/FS/FS/TicketSystem.pm +++ b/FS/FS/TicketSystem.pm @@ -401,6 +401,30 @@ sub _upgrade_data { warn "Fixed $rows transactions with empty time values\n" if $rows > 0; } + # One-time fix: We've created a "BulkUpdateTickets" access right; grant + # it to all auth'd users initially. + eval "use FS::upgrade_journal;"; + my $upgrade = 'RT_add_BulkUpdateTickets_ACL'; + if (!FS::upgrade_journal->is_done($upgrade)) { + my $groups = RT::Groups->new(RT->SystemUser); + $groups->LimitToEnabled; + $groups->LimitToSystemInternalGroups; + $groups->Limit( + FIELD => 'Name', + VALUE => 'Privileged', + OPERATOR => '=', + CASESENSITIVE => 0, + ); + my $group = $groups->First + or die "No RT internal group found for Privileged users"; + my ($val, $msg) = $group->PrincipalObj->GrantRight( + Right => 'BulkUpdateTickets', Object => RT->System + ); + die "Couldn't grant BulkUpdateTickets right to all users: $msg\n" + if !$val; + FS::upgrade_journal->set_done($upgrade); + } + return; }