in src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelper.java [186:209]
private static void expandAllowAndDenyPrivWithoutAggregates(Map<Privilege, LocalPrivilege> privilegeToLocalPrivilegesMap,
Privilege p,
boolean allow, @NotNull Set<LocalRestriction> allowRestrictions,
boolean deny, @NotNull Set<LocalRestriction> denyRestrictions
) throws RepositoryException {
if (p.isAggregate()) {
Privilege[] aggregatePrivileges = p.getDeclaredAggregatePrivileges();
for (Privilege aggregatePrivilege : aggregatePrivileges) {
if (aggregatePrivilege.isAggregate()) {
expandAllowAndDenyPrivWithoutAggregates(privilegeToLocalPrivilegesMap, aggregatePrivilege,
allow, allowRestrictions,
deny, denyRestrictions);
} else {
localAllowAndDenyPriv(privilegeToLocalPrivilegesMap, aggregatePrivilege,
allow, allowRestrictions,
deny, denyRestrictions);
}
}
} else {
localAllowAndDenyPriv(privilegeToLocalPrivilegesMap, p,
allow, allowRestrictions,
deny, denyRestrictions);
}
}