private void removeAce()

in src/main/java/org/apache/sling/launchpad/webapp/integrationtest/resourceresolver/ResourceResolverGeneralTest.java [2981:3005]


    private void removeAce(Session adminSession, Principal principal, String absPath) throws Exception{

        AccessControlManager accessControlManager = adminSession.getAccessControlManager();
        AccessControlPolicy [] policies = accessControlManager.getPolicies(absPath);

        for (AccessControlPolicy plc : policies) {
            if (plc instanceof AccessControlList) {
                boolean modified = false;
                AccessControlList acl = ((AccessControlList) plc);
                for (AccessControlEntry ace : acl.getAccessControlEntries()) {
                    if (principal.equals(ace.getPrincipal())) {
                        acl.removeAccessControlEntry(ace);
                        modified = true;
                    }
                }
                if (modified) {
                    accessControlManager.setPolicy(absPath, acl);
                }
            }
        }

        if (adminSession.hasPendingChanges()) {
            adminSession.save();
        }
    }