Hi All, I was trying to create a new lifecycle based on our workflow. It works until I try to set some Status changes rights in config file. I cannot grant those rights to any user or group with root permission. I'm using 4.0.7 version. I copied the error log and my settings at below, please someone kindly help to check on it, thanks a lot.
I was unable to grant 'Update ticket to inactive' rights. Error log: [error]: Invalid right. Couldn't canonicalize right 'Reopen Case' (/usr/share/request-tracker4/lib/RT/ACE.pm:410) [error]: Invalid right. Couldn't canonicalize right 'Update ticket to inactive' (/usr/share/request-tracker4/lib/RT/ACE.pm:410) [error]: Invalid right. Couldn't canonicalize right 'AutoSet by Crontool task(' (/usr/share/request-tracker4/lib/RT/ACE.pm:410) [warn]: Tried to revoke the invalid right 'Reopen Case', ignoring it. (/usr/share/request-tracker4/lib/RT/Principal.pm:217) [warn]: Tried to revoke the invalid right 'Update ticket to inactive', ignoring it. (/usr/share/request-tracker4/lib/RT/Principal.pm:217) [warn]: Tried to revoke the invalid right 'AutoSet by Crontool task(', ignoring it. (/usr/share/request-tracker4/lib/RT/Principal.pm:217) Here is the lifecycle setting: Set(%Lifecycles, # modify the default lifecycle newlifecycle => { # All the appropriate ticket statuses initial => [ 'InProgress' ], active => [ 'PeerReviewed','WaitingforApproval','Scheduled','ScheduledTimePassed' ], inactive => [ 'ChangeCompleted','ChangeUnsuccessful','ChangeBackedOut','DidNotStart' ], # Default ticket statuses for certain actions defaults => { on_create => 'InProgress', }, # Status change restrictions transitions => { 'InProgress' => [qw(PeerReviewed)], 'PeerReviewed' => [qw(WaitingforApproval)], 'WaitingforApproval' => [qw(InProgress Scheduled)], 'Scheduled' => [qw(InProgress ScheduledTimePassed)], 'ScheduledTimePassed' => [qw(ChangeCompleted ChangeUnsuccessful ChangeBackedOut DidNotStart)], }, # Rights for different actions rights => { # These rights are in the default lifecycle 'WaitingforApproval -> Scheduled' => 'Right to approve ticket', '* -> InProgress' => 'Right to unapprove ticket', 'Scheduled -> ScheduledTimePassed' => 'AutoSet by Crontool task(Do not grant)', 'ScheduledTimePassed -> *' => 'Update ticket to inactive status', }, # Actions for the web UI actions => [ 'InProgress -> PeerReviewed' => { label => 'Peer Review Completed', update => 'Comment', }, 'PeerReviewed -> WaitingforApproval' => { label => 'Submit for Approval', update => 'Correspond', }, 'WaitingforApproval -> Scheduled' => { label => 'Approve it', update => 'Commment', }, 'WaitingforApproval -> InProgress' => { label => 'Unapprove it', update => 'Comment', }, 'Scheduled -> InProgress'=> { label => 'Unapprove it', update => 'Correpond', }, 'ScheduledTimePassed -> ChangeCompleted' => { label => 'Change Completed Successfully', update => 'Comment', }, 'ScheduledTimePassed -> ChangeUnsuccessful' => { label => 'Change Unsuccessful', update => 'Comment', }, 'ScheduledTimePassed -> ChangeBackedOut' => { label => 'Change Backed Out', update => 'Comment', }, 'ScheduledTimePassed -> DidNotStart' => { label => 'Did Not Start', update => 'Comment', }, ], }, # Status mapping different lifecycles __maps__ => { 'default -> newlifecycle' => { 'new' => 'InProgress', 'open' => 'WaitingforApproval', 'stalled' => 'Scheduled', 'resolved' => 'ChangeCompleted', 'rejected' => 'ChangeBackedOut', 'deleted' => 'DidNotStart', }, 'newlifecycle -> default' => { 'InProgress' => 'new', 'PeerReviewed' => 'open', 'WaitingforApproval' => 'open', 'Scheduled' => 'open', 'ScheduledTimePassed' => 'open', 'ChangeCompleted' => 'resolved', 'ChangeUnsuccessful' => 'resolved', 'ChangeBackedOut' => 'rejected', 'DidNotStart' => 'rejected' }, }, ); Any comments would be appreciated, thanks a lot. BR, Chrilly