Re: [rt-users] Scrip to enforce maximum ticket status per person per queue?

2016-01-15 Thread Emmanuel Lacour
Le 13/01/2016 20:55, Aaron McCormack a écrit :
> Hi RT Users-
> 
> I'm looking to create a scrip which enforces a maximum number of tickets of a 
> certain status, per person, per queue.
> 
> For example:
> 
> Joe has 3 status open tickets and 4 status stalled tickets.  By policy, Joe 
> is only allowed to have 3 open tickets at once.
> 
> Joe tries to change 1 of the stalled tickets to open, but RT counts the 
> number of status open tickets that Joe already has and doesn't allow the 
> status change.  If Joe then changes 1 open ticket to resolved, then he can 
> change 1 stalled to open, maintaining his limit of 3 status open tickets.
> 
> Has anyone tried enforcing limitation like this or query the status of other 
> tickets in a scrip?
> 


I don't think you should use scrips for this because it will be asynchrone.

I would do:

- set a user or group CustomField to record each ones limits
- add a method to local/lib/RT/User_Local.pm named CheckStatusLimit,
that retrieve the user/group limit, get the list of owned tickets and
check if limit are reached, then return if the new status is allowed or not.
- use callbacks (Tickt/Display.html and other plaes where user can
change status) or override maybe ProcessTicketBasics, to use this method
before accepting status change. Display proper error to user if not allowed


I would avoid enforcing this in Ticket->SetStatus method as you may
wan't to allow others to force status or even scripts.



-- 
Easter-eggs  Spécialiste GNU/Linux
44-46 rue de l'Ouest  -  75014 Paris  -  France -  Métro Gaité
Phone: +33 (0) 1 43 35 00 37-   Fax: +33 (0) 1 43 35 00 76
mailto:elac...@easter-eggs.com  -   http://www.easter-eggs.com


[rt-users] Scrip to enforce maximum ticket status per person per queue?

2016-01-13 Thread Aaron McCormack
Hi RT Users-

I'm looking to create a scrip which enforces a maximum number of tickets of a 
certain status, per person, per queue.

For example:

Joe has 3 status open tickets and 4 status stalled tickets.  By policy, Joe is 
only allowed to have 3 open tickets at once.

Joe tries to change 1 of the stalled tickets to open, but RT counts the number 
of status open tickets that Joe already has and doesn't allow the status 
change.  If Joe then changes 1 open ticket to resolved, then he can change 1 
stalled to open, maintaining his limit of 3 status open tickets.

Has anyone tried enforcing limitation like this or query the status of other 
tickets in a scrip?

Thanks,

Aaron