ace.setPrincipal(new AccessControlPrincipalDataImpl(entry.getAuthority())); ace.setPermissions(new ArrayList<String>()); ace.setDirect(entry.isSetDirectly()); directAce.put(entry.isSetDirectly(), ace);
ace.setDirect(isDirect != null ? isDirect.booleanValue() : true);
ace.setDirect(isDirect != null ? isDirect.booleanValue() : true);
ace.setPrincipal(new AccessControlPrincipalDataImpl(entry.getAuthority())); ace.setPermissions(new ArrayList<String>()); ace.setDirect(entry.isSetDirectly()); directAce.put(entry.isSetDirectly(), ace);
/** * 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; }
/** * 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; }
@Override protected boolean read(XMLStreamReader parser, QName name, AccessControlEntryImpl target) throws XMLStreamException { if (isCmisNamespace(name)) { if (isTag(name, TAG_ACE_PRINCIPAL)) { target.setPrincipal(PRINCIPAL_PARSER.walk(parser)); return true; } if (isTag(name, TAG_ACE_PERMISSIONS)) { target.setPermissions(addToList(target.getPermissions(), readText(parser))); return true; } if (isTag(name, TAG_ACE_IS_DIRECT)) { target.setDirect(readBoolean(parser)); return true; } } return false; } };
@Override protected boolean read(XmlPullParser parser, QName name, AccessControlEntryImpl target) throws XmlPullParserException { if (isCmisNamespace(name)) { if (isTag(name, TAG_ACE_PRINCIPAL)) { target.setPrincipal(PRINCIPAL_PARSER.walk(parser)); return true; } if (isTag(name, TAG_ACE_PERMISSIONS)) { target.setPermissions(addToList(target.getPermissions(), readText(parser))); return true; } if (isTag(name, TAG_ACE_IS_DIRECT)) { target.setDirect(readBoolean(parser)); return true; } } return false; } };