AutoChangeQueue

From Request Tracker Wiki
Jump to navigation Jump to search

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