annotate src/main/java/de/mpiwg/gazetteer/servlet/GetRoleAssignments.java @ 12:c2e2d794847f

new: add config.properties file for gazetteer
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Wed, 30 Sep 2015 13:43:54 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package de.mpiwg.gazetteer.servlet;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
4
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 import java.io.IOException;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import java.util.ArrayList;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 import java.util.LinkedList;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 import java.util.List;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 import java.util.Set;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 import java.util.logging.Level;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 import java.util.logging.Logger;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
12
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
13 import javax.ejb.EJB;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 import javax.servlet.ServletException;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 import javax.servlet.http.HttpServletRequest;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 import javax.servlet.http.HttpServletResponse;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
17
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 import org.apache.commons.lang.StringUtils;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 import org.primefaces.json.JSONArray;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 import org.primefaces.json.JSONException;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 import org.primefaces.json.JSONObject;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
22
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 import edu.harvard.iq.dataverse.DataFile;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 import edu.harvard.iq.dataverse.Dataverse;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 import edu.harvard.iq.dataverse.DataverseRoleServiceBean;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 import edu.harvard.iq.dataverse.DvObject;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 import edu.harvard.iq.dataverse.DvObjectServiceBean;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
28 import edu.harvard.iq.dataverse.RoleAssigneeServiceBean;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 import edu.harvard.iq.dataverse.RoleAssignment;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 import edu.harvard.iq.dataverse.ManagePermissionsPage.RoleAssignmentRow;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 import edu.harvard.iq.dataverse.authorization.AuthenticationRequest;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 import edu.harvard.iq.dataverse.authorization.CredentialsAuthenticationProvider;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 import edu.harvard.iq.dataverse.authorization.Permission;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 import edu.harvard.iq.dataverse.authorization.RoleAssignee;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 import edu.harvard.iq.dataverse.authorization.RoleAssigneeDisplayInfo;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 import edu.harvard.iq.dataverse.authorization.exceptions.AuthenticationFailedException;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
38
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
39
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 public class GetRoleAssignments extends AbstractMonographServlet{
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
41
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
42
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
43 private static final Logger logger = Logger.getLogger(GetRoleAssignments.class.getName());
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
44
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
45 @EJB
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 DvObjectServiceBean dvObjectService;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 @EJB
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 DataverseRoleServiceBean roleService;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 @EJB
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 RoleAssigneeServiceBean roleAssigneeService;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
51
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 public List<JSONObject> getRoleAssignments (String datasetId) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
53
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 List<JSONObject> raList = new ArrayList<JSONObject>();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
55
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 DvObject dvObject = dvObjectService.findDvObject(Long.parseLong(datasetId));
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
57
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
58 if (dvObject != null && dvObject.getId() != null) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 Set<RoleAssignment> ras = roleService.rolesAssignments(dvObject);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
60
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 for (RoleAssignment roleAssignment : ras) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
62
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 RoleAssignee roleAssignee = roleAssigneeService.getRoleAssignee(roleAssignment.getAssigneeIdentifier());
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 if (roleAssignee != null) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
65
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
66 try {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
67 JSONObject aroleAssignment = new JSONObject();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
68 aroleAssignment.put("roleAssignment", roleAssignment);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 raList.add(aroleAssignment);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
70
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
71
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 } catch (JSONException e) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
73
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 e.printStackTrace();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
75 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
76
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 } else {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 logger.info("Could not find role assignee based on role assignment id " + roleAssignment.getId());
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
79 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
80
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
81 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
82 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
83
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 return raList;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
85 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
86
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
87
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
88
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
90 // Set response content type
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 response.setContentType("application/json");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
92 JSONObject jsonResponse = new JSONObject();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
93
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
94 String user = request.getParameter("user");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
95 String password = request.getParameter("password");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
96 String datasetId = request.getParameter("datasetId");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
97
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
98 if(StringUtils.isNotEmpty(user) && StringUtils.isNotEmpty(password)){
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
99
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
100 // authenticate checking. TODO use GetUser.java or something like that to do the authenticate checking.
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
101 AuthenticationRequest authReq = new AuthenticationRequest();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
102 authReq.putCredential("Username", user);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
103 authReq.putCredential("Password", password);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
104 try {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
105 String credentialsAuthProviderId = "builtin";
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
106 this.authUser = authSvc.authenticate(credentialsAuthProviderId, authReq);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
107 System.out.println("User authenticated: " + authUser.getIdentifier());
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
108 } catch (AuthenticationFailedException ex) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
109 ex.printStackTrace();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
110 return;
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
111 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
112 if(authUser == null){
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
113 try {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
114 jsonResponse.put("state", "error");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
115 jsonResponse.put("error", "User " + user + " no found.");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
116 } catch (JSONException e) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
117
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
118 e.printStackTrace();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
119 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
120 } else {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
121 // get roleAssignments
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
122 try {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
123 jsonResponse.put("state", "ok");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
124
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
125 List<JSONObject> raJson = getRoleAssignments(datasetId);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
126 // raJson contains all roleAssignments in the dataset
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
127 // find the roleAssignment for the user
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
128 JSONArray assignments = new JSONArray();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
129
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
130
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
131 for (int i = 0; i < raJson.size(); i++) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
132
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
133 RoleAssignment aUser = (RoleAssignment) raJson.get(i).get("roleAssignment");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
134
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
135 JSONObject assignment = new JSONObject();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
136 assignment.put("identifier", aUser.getAssigneeIdentifier());
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
137 assignment.put("roleName", aUser.getRole().getName());
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
138
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
139 assignments.put(assignment);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
140
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
141 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
142
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
143 jsonResponse.put("roleAssignments", assignments);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
144
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
145 } catch (JSONException e) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
146
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
147 e.printStackTrace();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
148 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
149 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
150
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
151 } else {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
152 try {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
153 jsonResponse.put("state", "error");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
154 jsonResponse.put("error", "Request error. Parameters 'user' and 'password' are mandatory");
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
155 } catch (Exception e) {
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
156 e.printStackTrace();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
157 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
158 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
159
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
160 // ======================
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
161
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
162
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
163 java.io.PrintWriter out = response.getWriter();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
164 out.print(jsonResponse);
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
165 out.flush();
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
166
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
167
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
168
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
169 }
c2e2d794847f new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
170 }