Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Filter Assignee List on Create Screen

Nguyen Q Bao June 24, 2018

Hi,

I am having a problem with filtering the Assign List (dropdown box) in Create / Assign Screen. I tried to accomplish this with behavior plugin but it is not working, here is the code. Please help

Regards,

BN

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.atlassian.jira.security.roles.ProjectRole
import com.atlassian.jira.security.JiraAuthenticationContext
import com.onresolve.jira.groovy.user.FieldBehaviours
//import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.user.ApplicationUser
import org.ofbiz.core.entity.GenericValue
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.plugin.webfragment.model.JiraHelper;
import com.atlassian.jira.project.Project
import static com.atlassian.jira.issue.IssueFieldConstants.*


//import com.atlassian.crowd.embedded.api.User
import groovy.transform.BaseScript
import static com.atlassian.jira.issue.IssueFieldConstants.ASSIGNEE
import com.atlassian.jira.bc.projectroles.ProjectRoleService

JiraAuthenticationContext jiraAuthenticationContext =
ComponentManager.getComponentInstanceOfType(JiraAuthenticationContext.Class) as JiraAuthenticationContext;

ProjectRoleManager projectRoleManager =
ComponentManager.getComponentInstanceOfType(ProjectRoleManager.Class) as ProjectRoleManager;

//current project & issue
JiraHelper jiraHelper;
Issue currentIsuse = (Issue) jiraHelper.getContextParams().get("issue");
Project currentProject = currentIsuse.getProjectObject();

//current user
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();

//name of the roles
ProjectRole bimManager = projectRoleManager.getProjectRole("BIM Manager");
ProjectRole bimOperators = projectRoleManager.getProjectRole("BIM Operators");
ProjectRole projectManager = projectRoleManager.getProjectRole("Project Manager");
ProjectRole projectMembers = projectRoleManager.getProjectRole("Project Members");
ProjectRole qsDirector = projectRoleManager.getProjectRole("QS Director");
ProjectRole qsManager = projectRoleManager.getProjectRole("QS Manager");
ProjectRole qsSurveyors = projectRoleManager.getProjectRole("QS Quantity Surveyors");
ProjectRole projectDirector = projectRoleManager.getProjectRole("Project Director");
//user list
//Set<ApplicationUser> assigneeList;
List<String> assignableList;

if (projectRoleManager.isUserInProjectRole(currentUser, bimManager, currentProject)){
def myName = currentUser.getDisplayName();
//assignable members for bimManager
def members = projectRoleManager.getProjectRoleActors(bimOperators, currentProject);
def usersInRole = members.getApplicationUsers();
for (int i = 0; i < usersInRole.size(); i ++)
{
def memberName = usersInRole[i].getDisplayName();
if (memberName != myName)
{
assignableList.add(memberName);
}
}
assignableList.add(myName);
}

//check with the dropdown
getFieldById(ASSIGNEE).setFieldOptions(assignableList);

 

 

1 answer

0 votes
Bastian Stehmann
Community Champion
June 24, 2018

Hi @Nguyen Q Bao,

as far as I understand, you want only users of specific roles to be assignable, right?

Did you consider to do this via permission scheme for the project, there you could change the assignable user permission to use that roles.

Nguyen Q Bao June 24, 2018

Hi @Bastian Stehmann

What I want is base on currentuser role, he is able to assign to users in roles under his control.

As above:

- BIM Manager can assign to users within BIM Operators role and himself.

- Project Manager can assign to users within Project Members role and himself.

- While the Project Director can assign to users in those Manager roles: BIM Manager, Project Manager, QS Manager.

The permission scheme does not fit my requirement since the list contains assignable users for ALL users that have assign permission.

Regards,

BN

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events