<div dir="ltr"><div><div>Any suggest please?<br><br><br></div>BR,<br></div>Chrilly<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 24, 2015 at 5:12 PM, Chrilly Cheng <span dir="ltr"><<a href="mailto:chrilde@gmail.com" target="_blank">chrilde@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hi All,<br><br></div>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.<br><br></div><div>I was unable to grant 'Update ticket to inactive' rights.<br></div>Error log:<br>[error]: Invalid right. Couldn't canonicalize right 'Reopen Case' (/usr/share/request-tracker4/lib/RT/ACE.pm:410)<br>[error]: Invalid right. Couldn't canonicalize right 'Update ticket to inactive' (/usr/share/request-tracker4/lib/RT/ACE.pm:410)<br>[error]: Invalid right. Couldn't canonicalize right 'AutoSet by Crontool task(' (/usr/share/request-tracker4/lib/RT/ACE.pm:410)<br>[warn]: Tried to revoke the invalid right 'Reopen Case', ignoring it. (/usr/share/request-tracker4/lib/RT/Principal.pm:217)<br>[warn]: Tried to revoke the invalid right 'Update ticket to inactive', ignoring it. (/usr/share/request-tracker4/lib/RT/Principal.pm:217)<br>[warn]: Tried to revoke the invalid right 'AutoSet by Crontool task(', ignoring it. (/usr/share/request-tracker4/lib/RT/Principal.pm:217)<br><br></div>Here is the lifecycle setting:<br>Set(%Lifecycles,<br><br>        # modify the default lifecycle<br>        newlifecycle => {<br>            # All the appropriate ticket statuses<br>            initial         => [ 'InProgress' ],<br>            active          => [ 'PeerReviewed','WaitingforApproval','Scheduled','ScheduledTimePassed' ],<br>            inactive        => [ 'ChangeCompleted','ChangeUnsuccessful','ChangeBackedOut','DidNotStart' ],<br><br>            # Default ticket statuses for certain actions<br>            defaults => {<br>                on_create => 'InProgress',<br>            },<br><br>            # Status change restrictions<br>            transitions => {<br>                'InProgress'                => [qw(PeerReviewed)],<br>                'PeerReviewed'                => [qw(WaitingforApproval)],<br>                'WaitingforApproval'        => [qw(InProgress Scheduled)],<br>                'Scheduled'                 => [qw(InProgress ScheduledTimePassed)],<br>                'ScheduledTimePassed'       => [qw(ChangeCompleted ChangeUnsuccessful ChangeBackedOut DidNotStart)],<br>            },<br><br>            # Rights for different actions<br>            rights => {<br><br>                # These rights are in the default lifecycle<br>                'WaitingforApproval -> Scheduled'       => 'Right to approve ticket',<br>                '* -> InProgress'                        => 'Right to unapprove ticket',<br>                'Scheduled -> ScheduledTimePassed'        => 'AutoSet by Crontool task(Do not grant)',<br>                'ScheduledTimePassed -> *'              => 'Update ticket to inactive status',<br>            },<br><br>            # Actions for the web UI<br>            actions => [<br>                'InProgress -> PeerReviewed' => {<br>                    label  => 'Peer Review Completed',<br>                    update => 'Comment',<br>                },<br>                'PeerReviewed -> WaitingforApproval' => {<br>                    label  => 'Submit for Approval',<br>                    update => 'Correspond',<br>                },<br>                'WaitingforApproval -> Scheduled' => {<br>                    label  => 'Approve it',<br>                    update => 'Commment',<br>                },<br>                'WaitingforApproval -> InProgress' => {<br>                    label  => 'Unapprove it',<br>                    update => 'Comment',<br>                },<br>                'Scheduled -> InProgress'=> {<br>                    label  => 'Unapprove it',<br>                    update => 'Correpond',<br>                },<br>                'ScheduledTimePassed -> ChangeCompleted' => {<br>                    label  => 'Change Completed Successfully',<br>                    update => 'Comment',<br>                },<br>                'ScheduledTimePassed -> ChangeUnsuccessful' => {<br>                    label  => 'Change Unsuccessful',<br>                    update => 'Comment',<br>                },<br>                'ScheduledTimePassed -> ChangeBackedOut' => {<br>                    label  => 'Change Backed Out',<br>                    update => 'Comment',<br>                },<br>                'ScheduledTimePassed -> DidNotStart' => {<br>                    label  => 'Did Not Start',<br>                    update => 'Comment',<br>                },<br>            ],<br>        },<br>        # Status mapping different lifecycles<br>        __maps__ => {<br>            'default -> newlifecycle' => {<br>                'new'      => 'InProgress',<br>                'open'     => 'WaitingforApproval',<br>                'stalled'  => 'Scheduled',<br>                'resolved' => 'ChangeCompleted',<br>                'rejected' => 'ChangeBackedOut',<br>                'deleted'  => 'DidNotStart',<br>            },<br>            'newlifecycle -> default' => {<br>                'InProgress'                    => 'new',<br>                'PeerReviewed'                    => 'open',<br>                'WaitingforApproval'            => 'open',<br>                'Scheduled'                     => 'open',<br>                'ScheduledTimePassed'           => 'open',<br>                'ChangeCompleted'                 => 'resolved',<br>                'ChangeUnsuccessful'               => 'resolved',<br>                'ChangeBackedOut'               => 'rejected',<br>                'DidNotStart'                    => 'rejected'<br>            },<br>        },<br>    );<br><br></div>Any comments would be appreciated, thanks a lot.<br><br><br></div>BR,<br></div>Chrilly<br></div>
</blockquote></div><br></div>