1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.client.bindings.spi.browser;
20
21 import java.io.OutputStream;
22 import java.util.Map;
23
24 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
25 import org.apache.chemistry.opencmis.client.bindings.spi.http.HttpUtils;
26 import org.apache.chemistry.opencmis.commons.data.Acl;
27 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
28 import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
29 import org.apache.chemistry.opencmis.commons.impl.Constants;
30 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
31 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
32 import org.apache.chemistry.opencmis.commons.spi.AclService;
33
34
35
36
37 public class AclServiceImpl extends AbstractBrowserBindingService implements AclService {
38
39
40
41
42 public AclServiceImpl(BindingSession session) {
43 setSession(session);
44 }
45
46 public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
47
48 UrlBuilder url = getObjectUrl(repositoryId, objectId, Constants.SELECTOR_ACL);
49 url.addParameter(Constants.PARAM_ONLY_BASIC_PERMISSIONS, onlyBasicPermissions);
50
51
52 HttpUtils.Response resp = read(url);
53 Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
54
55 return JSONConverter.convertAcl(json, null);
56 }
57
58 public Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
59 AclPropagation aclPropagation, ExtensionsData extension) {
60
61 UrlBuilder url = getObjectUrl(repositoryId, objectId);
62
63
64 final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_APPLY_ACL);
65 formData.addAddAcesParameters(addAces);
66 formData.addRemoveAcesParameters(removeAces);
67 formData.addParameter(Constants.PARAM_ACL_PROPAGATION, aclPropagation);
68
69
70 HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
71 public void write(OutputStream out) throws Exception {
72 formData.write(out);
73 }
74 });
75 Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
76
77 return JSONConverter.convertAcl(json, null);
78 }
79 }