AutoChangeQueue

From Request Tracker Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Overview

I've got two queues and two groups, one for admin and one for production. If an admin group member takes a ticket in the production queue, I want the ticket to go automatically into the admin queue. Just create this scrip in the production queue:

Description: AutoChangeQueue
Condition: On Owner Change
Custom condition:
Action: User Defined
Custom action preparation code: return 1;
Custom action cleanup code:
my $group = 'admin';
my $newqueue = 'admin';

 # si pas dans une action Take alors on sort
return 1
 unless $self->TransactionObj->Type eq 'Take';

my $PrincipalObj = RT::Principal->new( $self->TransactionObj->CreatorObj );
$PrincipalObj->Load( $self->TransactionObj->CreatorObj->Id );

my $groupobj = RT::Group->new($self->TransactionObj->CreatorObj );
$groupobj->LoadUserDefinedGroup($group);
my $HasMember = $groupobj->HasMemberRecursively( $PrincipalObj );
if ($HasMember) {
  $RT::Logger->info("Ticket took by an admin : new ticket in admin queue");
   my ($status, $msg) = $self->TicketObj->SetQueue($newqueue);
   unless ($status) {
      $RT::Logger->warning("unable to set new queue");
      return undef;
   }
}

return 1;
Template: Global template: Blank