public Set<String> getIdentifiersWithin(ModeledAuthenticatedUser user,
            String identifier)
            throws GuacamoleException {

        // Bypass permission checks if the user is privileged
        if (user.isPrivileged())
            return connectionGroupMapper.selectIdentifiersWithin(identifier);

        // Otherwise only return explicitly readable identifiers
        else
            return connectionGroupMapper.selectReadableIdentifiersWithin(
                    user.getUser().getModel(), identifier,
                    user.getEffectiveUserGroups(),
                    getCaseSensitivity());

    }
Returns the set of all identifiers for all connection groups within the
connection group having the given identifier. Only connection groups
that the user has read access to will be returned.

Permission to read the connection group having the given identifier is
NOT checked.

@param user
    The user retrieving the identifiers.

@param identifier
    The identifier of the parent connection group, or null to check the
    root connection group.

@return
    The set of all identifiers for all connection groups in the
    connection group having the given identifier that the user has read
    access to.

@throws GuacamoleException
    If an error occurs while reading identifiers.
extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupService.java