@Override protected AccessControlEntryImpl prepareTarget(XMLStreamReader parser, QName name) throws XMLStreamException { return new AccessControlEntryImpl(); }
@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; } };
ace = new AccessControlEntryImpl(); ace.setPrincipal(new AccessControlPrincipalDataImpl(entry.getAuthority())); ace.setPermissions(new ArrayList<String>()); ace.setDirect(entry.isSetDirectly()); directAce.put(entry.isSetDirectly(), ace); ace.getPermissions().add(entry.getPermission()); ace.getPermissions().remove(entry.getPermission()); if ((directAce != null) && (!directAce.getPermissions().isEmpty())) List<String> permissions = translatePermissionsToCMIS(directAce.getPermissions(), onlyBasicPermissions); if(permissions != null && !permissions.isEmpty()) directAce.setPermissions(permissions); aces.add(directAce); if ((indirectAce != null) && (!indirectAce.getPermissions().isEmpty())) List<String> permissions = translatePermissionsToCMIS(indirectAce.getPermissions(), onlyBasicPermissions); indirectAce.setPermissions(permissions); if ((directAce != null) && (!directAce.getPermissions().isEmpty())) indirectAce.getPermissions().removeAll(directAce.getPermissions()); if(!indirectAce.getPermissions().isEmpty())
ace = new AccessControlEntryImpl(); ace.setPrincipal(new AccessControlPrincipalDataImpl(entry.getAuthority())); ace.setPermissions(new ArrayList<String>()); ace.setDirect(entry.isSetDirectly()); directAce.put(entry.isSetDirectly(), ace); ace.getPermissions().add(entry.getPermission()); ace.getPermissions().remove(entry.getPermission()); if ((directAce != null) && (!directAce.getPermissions().isEmpty())) List<String> permissions = translatePermissionsToCMIS(directAce.getPermissions(), onlyBasicPermissions); if(permissions != null && !permissions.isEmpty()) directAce.setPermissions(permissions); aces.add(directAce); if ((indirectAce != null) && (!indirectAce.getPermissions().isEmpty())) List<String> permissions = translatePermissionsToCMIS(indirectAce.getPermissions(), onlyBasicPermissions); indirectAce.setPermissions(permissions); if ((directAce != null) && (!directAce.getPermissions().isEmpty())) indirectAce.getPermissions().removeAll(directAce.getPermissions()); if(!indirectAce.getPermissions().isEmpty())
@Override protected AccessControlEntryImpl prepareTarget(XmlPullParser parser, QName name) throws XmlPullParserException { return new AccessControlEntryImpl(); }
@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 public MutableAce createAccessControlEntry(String principal, List<String> permissions) { return new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principal), permissions); }
Map<String, Object> entry = getMap(obj); if (entry != null) { AccessControlEntryImpl ace = new AccessControlEntryImpl(); ace.setDirect(isDirect != null ? isDirect.booleanValue() : true); ace.setPermissions(permissions); ace.setPrincipal(principal);
@Override public MutableAce createAccessControlEntry(String principal, List<String> permissions) { return new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principal), permissions); }
Map<String, Object> entry = getMap(obj); if (entry != null) { AccessControlEntryImpl ace = new AccessControlEntryImpl(); ace.setDirect(isDirect != null ? isDirect.booleanValue() : true); ace.setPermissions(permissions); ace.setPrincipal(principal);
newAces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ace.getKey()), new ArrayList<String>(ace.getValue()))); newAces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ace.getKey()), new ArrayList<String>(ace.getValue())));
/** * 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; }
newAces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ace .getKey()), new ArrayList<String>(ace.getValue())));
/** * 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; }
newAces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ace .getKey()), new ArrayList<String>(ace.getValue())));
newAces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ace.getKey()), new ArrayList<String>(ace.getValue()))); newAces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(ace.getKey()), new ArrayList<String>(ace.getValue())));
public Acl createAddAcl(ControlParser controlParser) { List<String> principals = controlParser.getValues(Constants.CONTROL_ADD_ACE_PRINCIPAL); if (principals == null) { return null; } List<Ace> aces = new ArrayList<Ace>(); int i = 0; for (String principalId : principals) { aces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principalId), controlParser .getValues(Constants.CONTROL_ADD_ACE_PERMISSION, i))); i++; } return new AccessControlListImpl(aces); }
public Acl createRemoveAcl(ControlParser controlParser) { List<String> principals = controlParser.getValues(Constants.CONTROL_REMOVE_ACE_PRINCIPAL); if (principals == null) { return null; } List<Ace> aces = new ArrayList<Ace>(); int i = 0; for (String principalId : principals) { aces.add(new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principalId), controlParser .getValues(Constants.CONTROL_REMOVE_ACE_PERMISSION, i))); i++; } return new AccessControlListImpl(aces); }