ProjectRolesAttribute.java
3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.adobe.cq.projects.api.ProjectMemberRole
* com.day.cq.wcm.api.Template
* javax.jcr.Session
* javax.servlet.ServletException
* org.apache.felix.scr.annotations.Reference
* org.apache.felix.scr.annotations.sling.SlingServlet
* org.apache.sling.api.SlingHttpServletRequest
* org.apache.sling.api.SlingHttpServletResponse
* org.apache.sling.api.resource.Resource
* org.apache.sling.api.resource.ResourceResolver
* org.apache.sling.api.servlets.SlingAllMethodsServlet
*/
package com.adobe.cq.projects.impl.team;
import com.adobe.cq.projects.api.ProjectMemberRole;
import com.adobe.cq.projects.impl.team.DefaultProjectsRoleProvider;
import com.adobe.cq.projects.impl.team.GenericRole;
import com.adobe.cq.projects.impl.team.TeamException;
import com.adobe.cq.projects.impl.team.TeamManager;
import com.adobe.cq.projects.impl.team.TeamManagerFactory;
import com.day.cq.wcm.api.Template;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import javax.jcr.Session;
import javax.servlet.ServletException;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
@SlingServlet(methods={"GET"}, resourceTypes={"cq/gui/components/projects/admin/datasource/projectroledefaults"})
public class ProjectRolesAttribute
extends SlingAllMethodsServlet {
@Reference
TeamManagerFactory teamManagerFactory;
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
ResourceResolver resolver = request.getResourceResolver();
HashMap<GenericRole, String[]> roleDefaults = new HashMap<GenericRole, String[]>();
Template template = null;
if (request.getParameter("template") != null) {
String templatePath = request.getParameter("template");
Resource templateResource = resolver.getResource(templatePath);
template = (Template)templateResource.adaptTo(Template.class);
}
if (template == null) {
return;
}
try {
TeamManager teamManager = this.teamManagerFactory.createTeamManager((Session)resolver.adaptTo(Session.class), template);
Map<String, ProjectMemberRole> teamRoles = teamManager.getRoles();
if (teamRoles != null) {
for (ProjectMemberRole role : teamRoles.values()) {
GenericRole genericRole;
if (!(role instanceof GenericRole) || (genericRole = (GenericRole)role).getDefaultMembers() == null || genericRole.getDefaultMembers().length <= 0) continue;
roleDefaults.put(genericRole, genericRole.getDefaultMembers());
}
}
request.setAttribute("roleDefaults", roleDefaults);
request.setAttribute("ownerRole", (Object)DefaultProjectsRoleProvider.ROLE_OWNER);
}
catch (TeamException e) {
throw new ServletException("Team Exception", (Throwable)e);
}
}
protected void bindTeamManagerFactory(TeamManagerFactory teamManagerFactory) {
this.teamManagerFactory = teamManagerFactory;
}
protected void unbindTeamManagerFactory(TeamManagerFactory teamManagerFactory) {
if (this.teamManagerFactory == teamManagerFactory) {
this.teamManagerFactory = null;
}
}
}