[rt-users] Prevent resolution of Ticket that owner is 'Nobody'

Murillo Azambuja Gonçalves murillo at ifi.unicamp.br
Thu Jul 16 11:05:56 EDT 2015


This can not be done here.
In some queues those responsible for sending transactions (including 
tickets resolution) are not directly involved in the work of tickets.

Even I used the scrip "AutoSetOwner 
<http://requesttracker.wikia.com/wiki/AutoSetOwner>" as a basis to 
create mine.

Anyway thanks for your answer.
Would have another suggestion?

Murillo Azambuja Gonçalves
____________________________________________________

On 07/16/2015 11:37 AM, Matt Zagrabelny wrote:
> Hi,
>
> I didn't read everything in your email. :)
>
> Have you considered a lifecycle where only the Owner is granted the
> right to resolve the ticket?
>
> -m
>
> On Thu, Jul 16, 2015 at 9:34 AM, Murillo Azambuja Gonçalves
> <murillo at ifi.unicamp.br> wrote:
>> Hi all,
>>
>> I'm using RT 4.2.8 and would like to prevent ticket resolution in which the
>> owner is "Nobody".
>> For that I'm doing two steps:
>>
>>   Change the custom condition of scrip "On Resolve Notify Requestors" to not
>> notify requesters if Owner is 'Nobody':
>>
>>          Description: On Resolve Notify Requestors
>>          Condition: User Defined
>>          Action: Notify Requestors
>>          Template: resolved in HTML
>>
>>          Custom condition:
>>          if((
>>                  ($self->TransactionObj->Type eq 'Status') or
>>                  ($self->TransactionObj->Type eq 'Set' and
>> $self->TransactionObj->Field eq 'Status')
>>              ) and
>>              $self->TransactionObj->NewValue eq 'resolved'
>>          ) {
>>              if($self->TicketObj->Owner == $RT::Nobody->id) {
>>                  $RT::Logger->debug("Do not notify requestors if Owner is
>> Nobody");
>>                  return 0;
>>              } else {
>>                  return 1;
>>              }
>>          }
>>
>>          return 0;
>>
>> Create scrip to change status from resolved to it's old value:
>>
>>          Description: On Resolve Check Owner
>>          Condition: On Resolve
>>          Action: User Defined
>>          Template: Blank
>>
>>         Custom action commits code:
>>          # get actor ID
>>          my $Actor = $self->TransactionObj->Creator;
>>
>>          # if actor is RT_SystemUser then get out of here
>>          return 1 if $Actor == $RT::SystemUser->id;
>>
>>          return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
>>
>>          my ($status, $msg) =
>> $self->TicketObj->SetStatus($self->TransactionObj->OldValue);
>>          unless($status) {
>>              $RT::Logger->error("Error when setting new status: $msg");
>>              return undef;
>>          }
>>
>>          $RT::Logger->debug("Status changed");
>>
>>          return 1;
>>
>> (The scrips above are divided just for separation of concerns purposes)
>>
>> It works, but the message that appears confuses the user: "Status changed
>> from 'open' to 'resolved'". But in fact, the status of the ticket is "open"
>> (setted in scrip above).
>>
>> Actually I would like to "lock" the screen, warning the user that it is
>> necessary to assign an owner before resolving the ticket.
>>
>> Someone suggests a better solution? How could I lock the screen and display
>> a message to the user?
>>
>> I tried using the plugin "MandatoryOnTransition" for this purpose, but does
>> not work because it just considers empty fields, and the owner is set to
>> "Nobody", not empty:
>> Set (% MandatoryOnTransition,
>>       '*' => {
>>           '* -> Resolved' => ['TimeWorked', 'Owner'],
>>       },
>> );
>>
>> Please help me.
>>
>> Thanks in advance.
>>
>> --
>> Murillo Azambuja Gonçalves

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20150716/7b7793b2/attachment.htm>


More information about the rt-users mailing list