protected Node ensureAuthorizablePathExists()

in src/main/java/org/apache/sling/testing/mock/jcr/MockUserManager.java [219:245]


    protected Node ensureAuthorizablePathExists(String intermediatePath, String principalName, boolean isGroup) throws RepositoryException {
        if (intermediatePath == null) {
            if (isGroup) {
                intermediatePath = "/home/groups"; // NOSONAR
            } else {
                intermediatePath = "/home/users"; // NOSONAR
            }
        }
        // ensure the resource at the path exists
        String[] segments = intermediatePath.split("/");
        Node node = session.getRootNode();
        for (int i = 0; i < segments.length; i++) {
            String segment = segments[i];
            if (node.hasNode(segment)) {
                node = node.getNode(segment);
            } else {
                node = node.addNode(segment, UserConstants.NT_REP_AUTHORIZABLE_FOLDER);
            }
        }
        if (!node.hasNode(principalName)) {
            node = node.addNode(principalName, isGroup ? UserConstants.NT_REP_GROUP : UserConstants.NT_REP_USER);
            node.setProperty(UserConstants.REP_PRINCIPAL_NAME, principalName);
            node.setProperty(UserConstants.REP_AUTHORIZABLE_ID, principalName);
        }

        return node;
    }