View Javadoc

1   package com.atlassian.jira.workflow.condition;
2   
3   import java.util.Map;
4   
5   import com.atlassian.jira.ManagerFactory;
6   import com.atlassian.jira.issue.Issue;
7   import com.atlassian.jira.security.PermissionManager;
8   import com.atlassian.jira.security.Permissions;
9   import com.opensymphony.module.propertyset.PropertySet;
10  import com.opensymphony.user.User;
11  
12  /**
13   * FQCN : com.atlassian.jira.workflow.condition.GlobalPermissionCondition
14   * @author Kaamelot
15   * @since 3.10.1.30
16   * Description : Provides a Condition evaluation for any Permissions (Local and Global Permissions) 
17   *
18   */
19  public class GlobalPermissionCondition extends AbstractJiraCondition {
20  
21  	public boolean passesCondition(Map transientVars, Map args, PropertySet ps) {
22  		boolean hasPermission = false;
23  		PermissionManager permissionManager = ManagerFactory.getPermissionManager();
24  		String permName = (String) args.get("permission");
25  		int permissionId = Permissions.getType(permName);
26  		
27  		User caller = getCaller(transientVars, args);
28  		if (Permissions.isGlobalPermission(permissionId)) {
29  			hasPermission =permissionManager.hasPermission(permissionId, caller);
30  		} else {
31  			Issue issue = getIssue(transientVars);
32  			hasPermission =permissionManager.hasPermission(permissionId, issue.getGenericValue(), caller);
33  		}
34  
35  		return hasPermission;
36  	}
37  }