private static boolean isRoleAssignableByUser(Role role, UserToken verifiedUserToken) {
        try {
            if (role == null || role.assignableBy == null || role.assignableBy.length()<3 || verifiedUserToken == null) {
                throw new RuntimeException();
            }
            UserAccount user = verifiedUserToken.userAccount;
            String[] assigners = role.assignableBy.split(",");
            for (String assignerRole : assigners) {
                assignerRole = assignerRole.trim();
                if (user.hasRole(assignerRole)) {
                    return true;
                }
            }
        } catch (Throwable t) {
            //fall through
        }
        return false;
    }