@Override public Acl setAcl(String repositoryId, String objectId, Acl aces) { Acl currentAcl = getAcl(repositoryId, objectId, false, null); List<Ace> removeAces = new ArrayList<Ace>(); if (currentAcl.getAces() != null) { for (Ace ace : currentAcl.getAces()) { if (ace.isDirect()) { removeAces.add(ace); } } } return applyAcl(repositoryId, objectId, aces, new AccessControlListImpl(removeAces), AclPropagation.OBJECTONLY, null); } }
@Override public Acl setAcl(String repositoryId, String objectId, Acl aces) { Acl currentAcl = getAcl(repositoryId, objectId, false, null); List<Ace> removeAces = new ArrayList<Ace>(); if (currentAcl.getAces() != null) { for (Ace ace : currentAcl.getAces()) { if (ace.isDirect()) { removeAces.add(ace); } } } return applyAcl(repositoryId, objectId, aces, new AccessControlListImpl(removeAces), AclPropagation.OBJECTONLY, null); } }
@Override public Acl setAcl(String repositoryId, String objectId, Acl aces) { Acl currentAcl = getAcl(repositoryId, objectId, false, null); List<Ace> removeAces = new ArrayList<Ace>(); if (currentAcl.getAces() != null) { for (Ace ace : currentAcl.getAces()) { if (ace.isDirect()) { removeAces.add(ace); } } } return applyAcl(repositoryId, objectId, aces, new AccessControlListImpl(removeAces), AclPropagation.OBJECTONLY, null); } }
XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACE_IS_DIRECT, ace.isDirect());
/** * Converts a list of ACEs into Map for better handling. */ private static Map<String, Set<String>> convertAclToMap(Acl acl) { Map<String, Set<String>> result = new HashMap<String, Set<String>>(); if (acl == null || acl.getAces() == null) { return result; } for (Ace ace : acl.getAces()) { // don't consider indirect ACEs - we can't change them if (!ace.isDirect()) { // ignore continue; } // although a principal must not be null, check it if (ace.getPrincipal() == null || ace.getPrincipal().getId() == null) { // ignore continue; } Set<String> permissions = result.get(ace.getPrincipal().getId()); if (permissions == null) { permissions = new HashSet<String>(); result.put(ace.getPrincipal().getId(), permissions); } if (ace.getPermissions() != null) { permissions.addAll(ace.getPermissions()); } } return result; }
/** * Converts a list of ACEs into Map for better handling. */ private static Map<String, Set<String>> convertAclToMap(Acl acl) { Map<String, Set<String>> result = new HashMap<String, Set<String>>(); if (acl == null || acl.getAces() == null) { return result; } for (Ace ace : acl.getAces()) { // don't consider indirect ACEs - we can't change them if (!ace.isDirect()) { // ignore continue; } // although a principal must not be null, check it if (ace.getPrincipal() == null || ace.getPrincipal().getId() == null) { // ignore continue; } Set<String> permissions = result.get(ace.getPrincipal().getId()); if (permissions == null) { permissions = new HashSet<String>(); result.put(ace.getPrincipal().getId(), permissions); } if (ace.getPermissions() != null) { permissions.addAll(ace.getPermissions()); } } return result; }
if (!ace.isDirect())
if (!ace.isDirect())
/** * Converts an ACL object with its ACEs. */ public static CmisAccessControlListType convert(Acl acl) { if (acl == null) { return null; } CmisAccessControlListType result = new CmisAccessControlListType(); if (acl.getAces() != null) { for (Ace ace : acl.getAces()) { if (ace == null) { continue; } CmisAccessControlEntryType entry = new CmisAccessControlEntryType(); if (ace.getPrincipal() != null) { CmisAccessControlPrincipalType pincipal = new CmisAccessControlPrincipalType(); pincipal.setPrincipalId(ace.getPrincipal().getId()); convertExtension(pincipal, ace.getPrincipal()); entry.setPrincipal(pincipal); } entry.setDirect(ace.isDirect()); entry.getPermission().addAll(ace.getPermissions()); convertExtension(ace, entry); result.getPermission().add(entry); } } // handle extensions convertExtension(acl, result); return result; }
XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACE_IS_DIRECT, ace.isDirect());
aceObject.put(JSON_ACE_IS_DIRECT, ace.isDirect());
aceObject.put(JSON_ACE_IS_DIRECT, ace.isDirect());