private static boolean containsEquivalentEntry()

in src/main/java/org/apache/sling/jcr/repoinit/impl/AclUtil.java [618:649]


    private static boolean containsEquivalentEntry(
            SessionContext context,
            String absPath,
            Principal principal,
            String[] privilegeNames,
            boolean isAllow,
            List<RestrictionClause> restrictionList)
            throws RepositoryException {
        if (absPath != null && !context.getSession().nodeExists(absPath)) {
            LOG.info(
                    "Cannot determine existence of equivalent path-based entry for principal {}. No node at path {} ",
                    principal.getName(),
                    absPath);
            return true;
        }
        for (AccessControlPolicy policy : context.getAccessControlManager().getPolicies(absPath)) {
            if (policy instanceof JackrabbitAccessControlList) {
                LocalRestrictions lr = createLocalRestrictions(
                        restrictionList, ((JackrabbitAccessControlList) policy), context.getSession());
                LocalAccessControlEntry newEntry =
                        new LocalAccessControlEntry(context, principal, privilegeNames, isAllow, lr);
                if (contains(((JackrabbitAccessControlList) policy).getAccessControlEntries(), newEntry)) {
                    LOG.info(
                            "Equivalent path-based entry exists for principal {} and effective path {} ",
                            newEntry.principal.getName(),
                            absPath);
                    return true;
                }
            }
        }
        return false;
    }