1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.server.impl.browser;
20
21 import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.CONTEXT_OBJECT_ID;
22 import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createAddAcl;
23 import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createRemoveAcl;
24 import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.setStatus;
25 import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.writeJSON;
26 import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getBooleanParameter;
27 import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getEnumParameter;
28
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31
32 import org.apache.chemistry.opencmis.commons.data.Acl;
33 import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
34 import org.apache.chemistry.opencmis.commons.impl.Constants;
35 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
36 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
37 import org.apache.chemistry.opencmis.commons.server.CallContext;
38 import org.apache.chemistry.opencmis.commons.server.CmisService;
39
40
41
42
43 public class AclService {
44
45
46
47
48 public static void getACL(CallContext context, CmisService service, String repositoryId,
49 HttpServletRequest request, HttpServletResponse response) throws Exception {
50
51 String objectId = (String) context.get(CONTEXT_OBJECT_ID);
52 Boolean onlyBasicPermissions = getBooleanParameter(request, Constants.PARAM_ONLY_BASIC_PERMISSIONS);
53
54
55 Acl acl = service.getAcl(repositoryId, objectId, onlyBasicPermissions, null);
56
57
58 response.setStatus(HttpServletResponse.SC_OK);
59
60 JSONObject jsonObject = JSONConverter.convert(acl);
61 if (jsonObject == null) {
62 jsonObject = new JSONObject();
63 }
64
65 writeJSON(jsonObject, request, response);
66 }
67
68
69
70
71 public static void applyACL(CallContext context, CmisService service, String repositoryId,
72 HttpServletRequest request, HttpServletResponse response) throws Exception {
73
74 String objectId = (String) context.get(CONTEXT_OBJECT_ID);
75 AclPropagation aclPropagation = getEnumParameter(request, Constants.PARAM_ACL_PROPAGATION, AclPropagation.class);
76
77
78 ControlParser cp = new ControlParser(request);
79
80 Acl acl = service.applyAcl(repositoryId, objectId, createAddAcl(cp), createRemoveAcl(cp), aclPropagation, null);
81
82
83 setStatus(request, response, HttpServletResponse.SC_CREATED);
84
85 JSONObject jsonObject = JSONConverter.convert(acl);
86 if (jsonObject == null) {
87 jsonObject = new JSONObject();
88 }
89
90 writeJSON(jsonObject, request, response);
91 }
92 }