permissionChanges().principalAdded(principal);
org.modeshape.jcr.value.Property primaryType = propertyFactory.create(
JcrLexicon.PRIMARY_TYPE, ModeShapeLexicon.PERMISSION);
Property principalProp = propertyFactory.create(ModeShapeLexicon.PERMISSION_PRINCIPAL_NAME,
principal);
Property privileges = propertyFactory.create(ModeShapeLexicon.PERMISSION_PRIVILEGES_NAME,
privilegesByPrincipalName.get(principal));
aclNode.createChild(cache, null, principalName, primaryType, principalProp, privileges);
} else {
//there already is a child node for this principal, so we just need to update its privileges
MutableCachedNode permissionNode = cache.mutable(permissionRef.getKey());