[rt-users] Set user rights with scrip?

Todd Chapman todd at chaka.net
Mon Jun 19 13:23:04 EDT 2006


On Mon, Jun 19, 2006 at 10:01:31AM -0700, Bill Chever wrote:
> RT is so cool.
> 
> >From the wiki;
> "A ScripAction can access and change the current instance of the following
> objects: 
> 
> Scrip 
> Ticket 
> Transaction 
> Template "
> 
> I need to be able to affect a user's access rights with a scrip.
> 
> Scenario:
> I want to allow anyone to send requests into Support
> Like most you, I get lots of messages offering me PE patches, Viagra, and
> partnerships with African ex-dignitaries
> I need an easy way to manage and reduce spam without missing that possible
> "We love your product and have $1M to spend."
> 
> Solution:
> Have SpamAssasin insert **Possible SPAM** into the Subject line of suspected
> spam (working)
> Have RT check the Subject line and if 'Possible SPAM' is present, move the
> ticket to the 'Trash' queue while also bypassing the AutoReply and Notify
> scrips (working)
> 
> At some pre-defined schedule, have a human look at the Trash queue, use
> Update multiple tickets, check all and set Status to 'deleted.'
> 
> One very cool thing I've discovered is that if a user exists in RT, and you
> uncheck "Let this user access RT", the next time that same user attempts to
> send a message, RT will reject it, not create the ticket, and send the user
> a terse note explaining that they do not have create ticket rights.  That
> would enable me to prevent any more spam from that same user, and save my
> ticket numbers in the process.
> 
> So I want to create a script that does - 
> 
> Condition: Status eq 'deleted' and Queue eq 'Trash' 
> Action: $RequestorObj->SetRights("Access",0)
> 
> Or similar.  Is it possible?  Right now I can accomplish this manually, but
> mass updates are so much better.
> 

Yes, this can be done. Create a scrip on the Trash queue. Custom condition
of $self->TransactionObj->Type eq 'Status' and $self->TicketObj->Status 
eq 'deleted'.

$self->TicketObj->Requestors will give an RT::Group of
requestors. For each requestor you can get the RT:User
object at call $UserObj->SetPrivileged(0).

-Todd



More information about the rt-users mailing list