Unable to grant Status changes rights to user

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

Any suggest please?

BR,
ChrillyOn Wed, Jun 24, 2015 at 5:12 PM, Chrilly Cheng chrilde@gmail.com wrote:

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

Hi All,

I tried this lifecycle on a new installed RT, it still has the same
problem. I cannot find any clue of it. Please help!

BR,
ChrillyOn Wed, Jun 24, 2015 at 5:12 PM, Chrilly Cheng chrilde@gmail.com wrote:

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

Issue resolved by rename the rights. It only supports 25 characters length.

BR,
ChrillyOn Wed, Jun 24, 2015 at 5:12 PM, Chrilly Cheng chrilde@gmail.com wrote:

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

Hi Chrilly,

2015/06/29 8:28、Chrilly Cheng chrilde@gmail.com のメール:

Issue resolved by rename the rights. It only supports 25 characters length.

Thanks for following up with your solution. I’ll see if I can remove that limit in RT, or at least warn about it!

BR,
Chrilly

Thanks,
Shawn

signature.asc (801 Bytes)