/** * Compiles the ACL for a relation.<p> * * @param cms the CMS context * @param resource the resource for which to collect the ACLs * @param onlyBasic flag to only include basic ACEs * * @return the ACL for the resource */ protected Acl collectAcl(CmsObject cms, CmsResource resource, boolean onlyBasic) { AccessControlListImpl cmisAcl = new AccessControlListImpl(); List<Ace> cmisAces = new ArrayList<Ace>(); cmisAcl.setAces(cmisAces); cmisAcl.setExact(Boolean.FALSE); return cmisAcl; }
@Override protected boolean read(XmlPullParser parser, QName name, AccessControlListImpl target) throws XmlPullParserException { if (isCmisNamespace(name)) { if (isTag(name, TAG_ACL_PERMISSISONS)) { target.setAces(addToList(target.getAces(), ACE_PARSER.walk(parser))); return true; } } return false; } };
@Override protected AccessControlListImpl prepareTarget(XMLStreamReader parser, QName name) throws XMLStreamException { return new AccessControlListImpl(); }
originalAces = new AccessControlListImpl(object.getAcl().getAces()); originalAces.setExact(object.isExactAcl());
@Override public Void execute(CmisService cmisService) { List<RepositoryInfo> repositories = cmisService.getRepositoryInfos(null); assertNotNull(repositories); assertTrue(repositories.size() > 0); RepositoryInfo repo = repositories.iterator().next(); String repositoryId = repo.getId(); String docIdStr = document.getNodeRef().toString(); // when removing Coordinator ACE there are only inherited permissions // so empty list of direct permissions is sent to be set AccessControlListImpl acesToPut = new AccessControlListImpl(); List<Ace> acesList = Collections.emptyList(); acesToPut.setAces(acesList); cmisService.applyAcl(repositoryId, docIdStr, acesToPut, AclPropagation.REPOSITORYDETERMINED); return null; } }, CmisVersion.CMIS_1_1);
@Override protected AccessControlListImpl prepareTarget(XmlPullParser parser, QName name) throws XmlPullParserException { return new AccessControlListImpl(); }
originalAces = new AccessControlListImpl(object.getAcl().getAces()); originalAces.setExact(object.isExactAcl());
AccessControlListImpl result = new AccessControlListImpl(); result.setAces(aces); result.setExact(getBoolean(json, JSON_ACL_IS_EXACT));
@Override public MutableAcl createAccessControlList(List<Ace> aces) { return new AccessControlListImpl(aces); }
@Override protected boolean read(XMLStreamReader parser, QName name, AccessControlListImpl target) throws XMLStreamException { if (isCmisNamespace(name)) { if (isTag(name, TAG_ACL_PERMISSISONS)) { target.setAces(addToList(target.getAces(), ACE_PARSER.walk(parser))); return true; } } return false; } };
AccessControlListImpl result = new AccessControlListImpl(); result.setAces(aces); result.setExact(getBoolean(json, JSON_ACL_IS_EXACT));
@Override public MutableAcl createAccessControlList(List<Ace> aces) { return new AccessControlListImpl(aces); }
/** * Compiles the ACL for a file or folder. * @param cms the CMS context * @param resource the resource for which to collect the ACLs * @param onlyBasic flag to only include basic ACEs * * @return the ACL for the resource * @throws CmsException if something goes wrong */ protected Acl collectAcl(CmsObject cms, CmsResource resource, boolean onlyBasic) throws CmsException { AccessControlListImpl cmisAcl = new AccessControlListImpl(); List<Ace> cmisAces = new ArrayList<Ace>(); List<CmsAccessControlEntry> aces = cms.getAccessControlEntries(resource.getRootPath(), true); for (CmsAccessControlEntry ace : aces) { boolean isDirect = ace.getResource().equals(resource.getResourceId()); CmsUUID principalId = ace.getPrincipal(); String principalName = getAcePrincipalName(cms, principalId); AccessControlEntryImpl cmisAce = new AccessControlEntryImpl(); AccessControlPrincipalDataImpl cmisPrincipal = new AccessControlPrincipalDataImpl(); cmisPrincipal.setId(principalName); cmisAce.setPrincipal(cmisPrincipal); cmisAce.setPermissions(onlyBasic ? getCmisPermissions(ace) : getNativePermissions(ace)); cmisAce.setDirect(isDirect); cmisAces.add(cmisAce); } cmisAcl.setAces(cmisAces); cmisAcl.setExact(Boolean.FALSE); return cmisAcl; }
return new AccessControlListImpl(newAces);
public Acl getACL(NodeRef nodeRef, boolean onlyBasicPermissions) AccessControlListImpl result = new AccessControlListImpl(); result.setAces(aces); for (Map<Boolean, AccessControlEntryImpl> bothAces : aceMap.values()) result.setExact(!onlyBasicPermissions);
return new AccessControlListImpl(newAces);
/** * Converts an ACL object with its ACEs. */ public static Acl convert(CmisAccessControlListType acl, Boolean isExact) { if (acl == null) { return null; } AccessControlListImpl result = new AccessControlListImpl(); List<Ace> aces = new ArrayList<Ace>(); for (CmisAccessControlEntryType entry : acl.getPermission()) { if (entry == null) { continue; } AccessControlEntryImpl ace = new AccessControlEntryImpl(); ace.setDirect(entry.isDirect()); ace.setPermissions(entry.getPermission()); AccessControlPrincipalDataImpl principal = new AccessControlPrincipalDataImpl( entry.getPrincipal() == null ? null : entry.getPrincipal().getPrincipalId()); convertExtension(entry.getPrincipal(), principal); ace.setPrincipal(principal); // handle extensions convertExtension(entry, ace); aces.add(ace); } result.setAces(aces); result.setExact(isExact); // handle extensions convertExtension(acl, result); return result; }
return new AccessControlListImpl(newAces);
public Acl getACL(NodeRef nodeRef, boolean onlyBasicPermissions) AccessControlListImpl result = new AccessControlListImpl(); result.setAces(aces); for (Map<Boolean, AccessControlEntryImpl> bothAces : aceMap.values()) result.setExact(!onlyBasicPermissions);
return new AccessControlListImpl(newAces);