rt-devel:
I just wanted to post a quick blurb about how to create a custom right
in RT, as I’ve seen some mention of this in the list archives without
explanation. The following is what I did. Its pretty simple.
- Add the right in the Queue_Overlay.pm file;
- Modify Ticket_Overlay.pm ( or other files ) to reflect the logic
of the right;
- see the diff files *
The new right will show up in the database once you assign it to some
groups or users. So far, I haven’t noticed any other libs or templates that
needed to be changed, but if I missed something, please let me know.
I think an AssignTicket right would be a great addition to future releases
of RT.
just me
tcp
mysql> select a.PrincipalType, a.RightName, g.Description from ACL a, Groups g where a.RightName = ‘AssignTicket’ and a.PrincipalID = g.id; ±--------------±-------------±-------------------------------------+
| PrincipalType | RightName | Description |
| Group | AssignTicket | Assigns Tickets to Queues and People |
| Owner | AssignTicket | SystemRolegroup for internal use |
2 rows in set (0.00 sec)
mysql>
Diffs against lib files from RT 3.0.5
Queue_Overlay.pm
90a91
AssignTicket => 'Assign tickets',
Ticket_Overlay.pm
1914c1914,1915
< unless ( $self->CurrentUserHasRight(‘ModifyTicket’) ) {
unless ( $self->CurrentUserHasRight('ModifyTicket') || $self->CurrentUserHasRight('AssignTicket') ) {
1948c1949,1950
< return ( $self->_Set( Field => ‘Queue’, Value => $NewQueueObj->Id() ) );
return ( $self->_Set( Field => 'Queue', Value => $NewQueueObj->Id(), CheckACL => 0 ) ); # Toby, disabled the CheckACL since we've done it already
3055c3057,3058
< || $self->CurrentUserHasRight(‘StealTicket’) ) {
|| $self->CurrentUserHasRight('StealTicket') || $self->CurrentUserHasRight('AssignTicket') ) {
3060c3063,3064
< unless ( $self->CurrentUserHasRight(‘ModifyTicket’) ) {
unless ( $self->CurrentUserHasRight('ModifyTicket') || $self->CurrentUserHasRight('AssignTicket') ) {
3077,3079c3081,3084
< ( $self->OwnerObj->Id != $RT::Nobody->Id ) and #and the owner is set
< ( $self->CurrentUser->Id ne $self->OwnerObj->Id() )
< ) { #and it’s not us