AutoChangeQueue

From Request Tracker Wiki
Revision as of 15:03, 6 April 2016 by Admin (talk | contribs) (2 revisions imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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