View Javadoc

1   package com.atlassian.jira.permission;
2   
3   import java.util.Map;
4   
5   import com.atlassian.jira.security.CustomPermissions;
6   
7   /**
8    * This class gets a list of all the Custom Permissions that can be added t to the default permissions
9    */
10  public class ExtendedSchemePermissions extends SchemePermissions {
11  
12  //	private boolean customPermissionsAdded = false;
13  
14  //	private ListOrderedMap customPermissions;
15  
16  //	/**
17  //	 * @return Map of Custom Permissions keyed by their ID
18  //	 */
19  //	protected synchronized Map getCustomPermissions() {
20  //		if (customPermissions == null) {
21  //			customPermissions = new ListOrderedMap();
22  //			addCustomPermissions(customPermissions, CustomPermissions.BROWSE_SUBTASK_PERM);
23  //		}
24  //		return customPermissions;
25  //	}
26  
27  //	/**
28  //	 * @see SchemeCustomPermissions#getSchemePermissions()
29  //	 */
30  //	public synchronized Map getSchemePermissions() {
31  //		Map schemePermissions = super.getSchemePermissions();
32  //		if (!customPermissionsAdded) {
33  //			schemePermissions.putAll(getCustomPermissions());
34  //			customPermissionsAdded = true;
35  //		}
36  //		return schemePermissions;
37  //	}
38  	
39  	public synchronized Map getProjectPermissions() {
40  		Map permissions = super.getProjectPermissions();
41  		addCustomPermissions(permissions, CustomPermissions.EDIT_KAAMELOT_SETTINGS_PERM);
42  		return permissions;		
43  	}
44  	
45  	public synchronized Map getIssuePermissions() {
46  		Map permissions = super.getIssuePermissions();
47  		addCustomPermissions(permissions, CustomPermissions.BROWSE_SUBTASK_PERM);
48  		return permissions;		
49  	}
50  	
51  	public synchronized Map getTimeTrackingPermissions() {
52  		Map permissions = super.getTimeTrackingPermissions();
53  		addCustomPermissions(permissions, CustomPermissions.BROWSE_WORKLOGS_PERM);
54  		addCustomPermissions(permissions, CustomPermissions.EDIT_WORKLOG_FOR_TEAM_PERM);
55  		return permissions;		
56  	}
57  
58  	/**
59  	 * Add a Permissions keyed by its ID to Map of Permissions
60  	 * 
61  	 * @param _schemePermissions
62  	 *           Map of Permissions
63  	 * @param _permission
64  	 *           Permission to add
65  	 */
66  	protected void addCustomPermissions(Map _schemePermissions, Permission _permission) {
67  		_schemePermissions.put(new Integer(_permission.getId()), _permission);
68  	}
69  
70  }