in src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelper.java [131:146]
public static LocalPrivilege localAllowPriv(Map<Privilege, LocalPrivilege> privilegeToLocalPrivilegesMap,
Privilege privilege, boolean isAllow, Set<LocalRestriction> restrictions) {
LocalPrivilege localPrivilege = privilegeToLocalPrivilegesMap.computeIfAbsent(privilege, LocalPrivilege::new);
localPrivilege.setAllow(isAllow);
if (isAllow) {
localPrivilege.setAllowRestrictions(restrictions);
if (localPrivilege.isDeny() && localPrivilege.sameAllowAndDenyRestrictions()) {
// same restrictions to we can unset the other one
localPrivilege.setDeny(false);
localPrivilege.setDenyRestrictions(Collections.emptySet());
}
} else {
localPrivilege.setAllowRestrictions(Collections.emptySet());
}
return localPrivilege;
}