Prevent moving tickets to a queue, but still make the queue visible?

I have searched, and experimented, but have not found the answer.

I want to prevent anyone except a specific group moving tickets to a
particular queue, but I still want that queue and the tickets in the
queue to be visible to other groups. Most of our queues should not be
restricted.

It seems that the permission that controls moving a ticket to a
different queue is “modify tickets” which is based on the queue that the
ticket is currently in, not the queue that the ticket is moving to.

Is there a way to do that? Any advice or ideas would be appreciated.

Thanks,

–david

David Parter
Director of Academic Computing Services
University of Wisconsin Computer Sciences Department
dparter@cs.wisc.edu
608-262-0608

Le 27/07/2016 � 22:09, David Parter a �crit :

I have searched, and experimented, but have not found the answer.

I want to prevent anyone except a specific group moving tickets to a
particular queue, but I still want that queue and the tickets in the
queue to be visible to other groups. Most of our queues should not be
restricted.

It seems that the permission that controls moving a ticket to a
different queue is “modify tickets” which is based on the queue that the
ticket is currently in, not the queue that the ticket is moving to.

yes

Is there a way to do that? Any advice or ideas would be appreciated.

the needed right is not easy to implement in RT because there is needed
parameter such as grant right “MoveTicket” on a queue with parameter
such as “from” or “to”.

Thought you can prevent your users from doing this on the UI with two
methods:

Using lifecycles:

  • create two lifecycles in your config, with same status/transitions if
    needed, but different names, one for each queue. And do not set a
    mapping
    between those lifecycles. RT will refuse to move tickets
    between the queues. But no one will be able to move them.

Using callbacks:

use callbacks such as
rt/local/html/Callbacks/YourOrg/Ticket/Modify.html/Default

and in this callback, check if there is a queue change
($$ARGSRef{Queue}), and if so, get groups for $session{‘CurrentUser’}
and if the user is not in the allowed group, push a message in @$results
and block update with $$skip_update = 1

you may have to do this in one or two other places such as
Search/Bulk.html and Ticket/ModifyAll.html I suppose.