Greetings community,
I want to programmatically add a simple conditon to my workflow, something like "Only users in project role Administrators can execute this transition."
I know this is possible for post-functions with
FunctionDescriptor functionDescriptor = workflowFunctionDescriptorFactory.updateIssueField(...);
workflowTransitionService.addPostFunctionToWorkflow(...);
and it should work for conditions analogously with
ConditionDescriptor conditionDescriptor = workflowConditionDescriptorFactory.permission(ProjectPermissionKey key);
workflowTransitionService.addConditionToWorkflow(...);
but I can't get my head around how to create the PermissionKey.
Is the ProjectPermissionKey the right concept to begin with, or do I need something else?
Tanks in advance!
After some digging, I came up with this solution:
ConditionDescriptor conditionDescriptor = DescriptorFactory.getFactory().createConditionDescriptor(); conditionDescriptor.setType("class"); final Map conditionArgs = conditionDescriptor.getArgs(); conditionArgs.put("class.name", "com.atlassian.jira.workflow.condition.InProjectRoleCondition"); conditionArgs.put("jira.projectrole.id", "10002");
Im pretty sure there should be an already existing method to do this, but even after hours of searching, I was not able to find it. If someone coincidentally stumbles over it, please enlighten me.
Hi Johannes,
Thank you for this useful information.
Did you try to add a subtask condition to a transition ? If so, could you share how you did it ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Johannes,
How to get key of condition as
"com.atlassian.jira.workflow.condition.InProjectRoleCondition"
?
Thank!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.