Плагин Geo Blocking

Что можно предположить… 98% из них — это боты :winking_face_with_tongue: Показывать сообщение или нет… зависит от ситуации. Если есть необходимость направлять реальных людей, заблокированных по гео-IP, на использование VPN, то указание причины — разумный шаг. С ботами же это пустая трата времени.

1 лайк

Плагин изначально был создан для введения экономических санкций против конкретных стран.

2 лайка

Теперь возникает ошибка 500. Однако пересборка проходит успешно.

Подскажите, пожалуйста, можно ли это исправить?

Иначе мне придётся установить Nginx в качестве обратного прокси, и тогда я буду слишком бояться обращаться сюда за поддержкой :joy:

Исправлено

@juanjosegzl, похоже, твой LLM был слишком энтузиастичен, и мы оба недостаточно тщательно протестировали твой PR.

1 лайк

Извините, я не понял, я был слишком сосредоточен на своём собственном случае использования.

1 лайк

Извините, проблемы всё ещё сохраняются.

Я отменил последний PR к плагину и пересмотрю его через несколько недель, когда у меня появится время. Извините всех за неудобства.

2 лайка

Такое бывает. Но этот плагин действительно необходим. Спасибо за ваши усилия.

1 лайк

Извините за все проблемы. Я перепроверил изменения и обнаружил ошибку в модерации, которую теперь исправил.

Ричард, я выложил изменения: в основном это исправление проблемы с модерацией и отключение кэширования при изменении настроек модерации.

2 лайка

Спасибо!
Сейчас я в пути и вернусь к этому PR через 10 дней.

У меня всё работает. Само геоблокирование я ещё не тестировал.

Что ж, мой анонимный пользователь набрал текст слишком быстро — это забавно, потому что я на iPad с виртуальной клавиатурой :joy:, но это не имеет никакого отношения к этому плагину.

Спасибо.

2 лайка

@juanjosegzl Я только что объединил ваш последний PR. Спасибо за ваш полезный вклад!

1 лайк

Работает ли это, если вы используете Cloudflare?

Cloudflare передаёт IP-адрес в переменной заголовка CF-IPCountry.

Да, это работает, если вы следуете руководству: Using Discourse with Cloudflare: Best Practices

Это неверно. Cloudflare передаёт в этом заголовке код страны, а не IP-адрес, и только если вы включили эту опцию. Кроме того, плагин не использует этот заголовок — он использует внутреннюю базу данных Maxmind от Discourse.

Здравствуйте, плагин отличный, у меня небольшая просьба: можно добавить настройку для кастомизации сообщений?

О, я понял, можно использовать функцию «Тексты сайта» по адресу /admin/customize/site_texts, дополнительная настройка не требуется.

1 лайк

Привет, я хотел бы узнать, как настроить доступ для конкретных IP-адресов из ограниченных регионов?

Я создал запрос на слияние:
добавить белый список IP от singi2016cn · Pull Request #8 · communiteq/discourse-geo-blocking

1 лайк

Спасибо за ваш PR. Я ответил на него. Функциональное улучшение очень кстати, но не в ущерб дополнительному вызову базы данных для каждого отдельного запроса. Если вы перенесете код внутрь блока ленивой загрузки кэша, мы сможем его принять.

2 лайка

Хорошо, я понял проблему. После внесения изменений я снова отправлю запрос на слияние, пожалуйста, проверьте ещё раз.

1 лайк

Всем привет, у меня снова появилась новая задача.
Теперь я хочу разрешить доступ только нескольким конкретным странам, а для большинства стран доступ должен быть закрыт. Неужели нужно добавить конфигурацию типа geo_blocking_country_region_allowlist? При её наличии система должна проверять, находится ли пользователь в этом списке: если да — пропускать, если нет — блокировать.
Если одновременно настроены и geo_blocking_country_region_blocklist, и geo_blocking_country_region_allowlist, система должна проверять только geo_blocking_country_region_allowlist. Только если allowlist не настроен, тогда уже следует проверять geo_blocking_country_region_blocklist.

Приветствуем PR, если вы сделаете следующее для обеспечения обратной совместимости с текущей функциональностью:

Добавьте дополнительный параметр «блокировать всё, кроме allowlist» и применяйте описанное вами поведение только когда этот параметр включён.