1
2
3
4
5
6
7
8
9
10 package com.atlassian.jira.project.impl;
11
12 import java.util.ArrayList;
13 import java.util.Collection;
14 import java.util.HashMap;
15 import java.util.Iterator;
16 import java.util.List;
17 import java.util.Map;
18
19 import org.ofbiz.core.entity.GenericEntityException;
20 import org.ofbiz.core.entity.GenericValue;
21
22 import com.atlassian.core.user.GroupUtils;
23 import com.atlassian.jira.permission.PermissionSchemeManager;
24 import com.atlassian.jira.plugin.webfragment.conditions.IssueTypeSchemesDefaultCondition;
25 import com.atlassian.jira.project.AAdminProjectManager;
26 import com.atlassian.jira.project.AdminProjectManagerDirectory;
27 import com.atlassian.jira.project.ProjectManager;
28 import com.atlassian.jira.security.PermissionManager;
29 import com.atlassian.jira.security.Permissions;
30 import com.atlassian.jira.user.util.UserUtil;
31 import com.opensymphony.user.User;
32
33
34
35
36
37
38
39 public class DefaultAdminProjectManager extends AAdminProjectManager {
40
41
42
43
44
45
46 public DefaultAdminProjectManager(PermissionManager _permissionManager, PermissionSchemeManager _permissionSchemeManager, ProjectManager _projectManager, final UserUtil _userUtil,
47 final AdminProjectManagerDirectory _adminProjectManagerDirectory) {
48 super(_permissionManager, _permissionSchemeManager, _projectManager, _userUtil, _adminProjectManagerDirectory);
49 }
50
51
52
53
54
55
56 public String getDefaultActivationConditionFQCN() {
57 return IssueTypeSchemesDefaultCondition.class.getName();
58 }
59
60 public Map getManageableGroupParameters() {
61 Map _params = new HashMap();
62 _params.put("permission", new Integer(Permissions.BROWSE));
63 return _params;
64 }
65
66
67
68
69
70
71
72
73 public Collection getAuthorizedGroups(final GenericValue _project, final Map _params) {
74 Integer permission = (Integer) _params.get("permission");
75 int _permission = (permission == null) ? Permissions.BROWSE : permission.intValue();
76 Collection list = new ArrayList();
77 List schemes;
78 try {
79 schemes = permissionSchemeManager.getSchemes(_project);
80 for (Iterator si = schemes.iterator(); si.hasNext();) {
81 GenericValue scheme = (GenericValue) si.next();
82 List l = permissionSchemeManager.getEntities(scheme);
83 for (int n = 0; n < l.size(); n++) {
84 GenericValue schemePermission = (GenericValue) l.get(n);
85 int pid = schemePermission.getLong("permission").intValue();
86 if (pid == _permission && schemePermission.getString("type").equals("group")) {
87 String groupName = schemePermission.getString("parameter");
88 list.add(GroupUtils.getGroup(groupName));
89 }
90 }
91 }
92 } catch (GenericEntityException e) {
93 e.printStackTrace();
94 } catch (Exception e) {
95 e.printStackTrace();
96 }
97 return list;
98 }
99
100
101
102
103
104
105
106
107
108
109
110
111 public boolean isHasManagerPermission(final GenericValue _project, final User _user) {
112 return isAdmin(_user) || isProjectLead(_project, _user) || isProjectAdmin(_project, _user);
113 }
114
115 }