public static boolean verifyModeSanity()

in src/main/java/org/apache/maven/plugins/assembly/utils/TypeConversionUtils.java [80:143]


    public static boolean verifyModeSanity(final int mode, final Logger logger) {
        final StringBuilder messages = new StringBuilder();

        messages.append("The mode: ").append(Integer.toString(mode, 8)).append(" contains nonsensical permissions:");

        boolean warn = false;

        // read-access checks.
        if (((mode & U_R) == 0) && ((mode & G_R) == G_R)) {
            messages.append("\n- Group has read access, but user does not.");
            warn = true;
        }

        if (((mode & U_R) == 0) && ((mode & W_R) == W_R)) {
            messages.append("\n- World has read access, but user does not.");
            warn = true;
        }

        if (((mode & G_R) == 0) && ((mode & W_R) == W_R)) {
            messages.append("\n- World has read access, but group does not.");
            warn = true;
        }
        // end read-access checks.

        // write-access checks.
        if (((mode & U_W) == 0) && ((mode & G_W) == G_W)) {
            messages.append("\n- Group has write access, but user does not.");
            warn = true;
        }

        if (((mode & U_W) == 0) && ((mode & W_W) == W_W)) {
            messages.append("\n- World has write access, but user does not.");
            warn = true;
        }

        if (((mode & G_W) == 0) && ((mode & W_W) == W_W)) {
            messages.append("\n- World has write access, but group does not.");
            warn = true;
        }
        // end write-access checks.

        // execute-/list-access checks.
        if (((mode & U_X) == 0) && ((mode & G_X) == G_X)) {
            messages.append("\n- Group has execute/list access, but user does not.");
            warn = true;
        }

        if (((mode & U_X) == 0) && ((mode & W_X) == W_X)) {
            messages.append("\n- World has execute/list access, but user does not.");
            warn = true;
        }

        if (((mode & G_X) == 0) && ((mode & W_X) == W_X)) {
            messages.append("\n- World has execute/list access, but group does not.");
            warn = true;
        }
        // end execute-/list-access checks.

        if (warn && logger != null) {
            logger.warn(messages.toString());
        }

        return !warn;
    }