Some of my users dont like this option:
Per user, no we do not have this option, you can suppress it globally via CSS.
If hiding it for all users in an option, this would be the CSS to globally suppress the “last seen” user profile stat:
// Hide the "Last Seen" section of the user profile
.user-main .about .secondary dl div:nth-child(3) {
display: none;
}
Привет! Я работаю с экземпляром Discourse, который стремится привлекать людей из самых разных слоёв общества и создавать безопасную, защищённую и доверительную среду.
Интересует, планируете ли вы в будущем добавить настройку для глобального отключения информации о времени последнего посещения (в списках групп и в других местах)? Мы хотели бы гарантировать нашим пользователям, что никто другой не сможет увидеть, когда они были онлайн последним (то есть эта информация также будет недоступна даже при просмотре HTML-кода).
Если ответ отрицательный, не могли бы вы дать совет, как поступить в описанной ситуации? Я ещё довольно новичок в этом, поэтому хотел бы узнать, лучше ли нанять кого-то для редактирования исходного кода или можно обойтись плагином или компонентом?
Большое спасибо!
Я не уверен насчёт вашего точного вопроса, но эта дискуссия касается вашей проблемы:
В ней описывается настройка, скрывающая карточку пользователя:
hide_user_profiles_from_public
Спасибо за ваш комментарий!
Мы уже скрываем карточки пользователей, и я считаю, что это хорошая функция.
Однако меня беспокоит, что в будущем участники моего сообщества захотят скрывать информацию о «просмотре» даже от авторизованных пользователей. Поэтому я просто хотел уточнить, какие у нас есть варианты на тот случай, если такое время наступит.
Извините за всплытие темы, но я не смог найти никаких свежих постов на эту тему. Возможность скрывать часть информации о «прочитано» и «присутствии» даже от авторизованных пользователей — это способ предоставить пользователям больше приватности.
Есть ли какие-то новые настройки для управления этим? Стоит ли нам открыть запрос на новую функцию?
Возможно ли добавить CSS-классы, чтобы скрывать время последнего посещения для конкретных пользователей?
Я хочу скрыть это для своего профиля, потому что люди пишут мне сообщения, а затем могут видеть, когда я был в сети в последний раз. Это просто неловко, если я не отвечаю в течение нескольких дней (не хватает времени, чтобы сразу обработать всё), но они видят, что я был в сети недавно, так как периодически проверяют мой профиль. Иногда это происходит потому, что у меня просто открыта вкладка в браузере, но я не заходил на сайт.
Я считаю, что никто не должен ожидать от кого-либо чего-либо только за то, что он просто присутствует. Это ваша жизнь, и у вас есть свои обязанности. Поэтому, думаю, поможет установление границ, например, путём указания их в вашем профиле. Например: «Я занятой человек и отвечаю вам в течение недели» или «Пожалуйста, ожидайте от меня ответов только на вопросы по темам X и Y; по остальным вопросам обращайтесь к сообществу».
Так что я думаю, проблема скорее в других людях. Ведь если бы они встретили вас в реальной жизни и бросились к вам с чем-то очень важным, что нужно сделать прямо сейчас!
Это сложнее, чем кажется, но я не могу объяснить подробно. Давление может быть огромным.
Я согласен с этим. Иногда именно я проверяю, и поэтому я становлюсь нервным, когда знаю, что пользователь онлайн, но не отвечает мне.
Это невозможно с помощью чистого CSS, так как путь к узлу не может использовать ваше имя пользователя для выбора элементов «последний раз в сети».
С помощью JavaScript это должно работать:
<script type="text/discourse-plugin" version="1.4.0">
function hideLastSeen() {
if (location.pathname.startsWith("/u/j127")) {
document.querySelectorAll(".last-seen-at").forEach(el => el.remove());
}
}
api.onPageChange(hideLastSeen);
document.addEventListener("DOMContentLoaded", hideLastSeen);
</script>
С любезного разрешения 
Для будущих читателей обратите внимание на улучшенный скрипт ниже, который предотвращает ошибочное выборку пользователей (чтобы избежать выборки пользователя с именем “johndoe”, если используется .startsWith("/u/john")).
Это перестанет работать в безопасном режиме?
Да. Администратор может при необходимости отключить безопасный режим для не-сотрудников ![]()
Но любопытный пользователь всё ещё мог бы прочитать информацию из JSON-ответа, верно?
Да. Поскольку это настройка, выполняемая только на стороне клиента, она всегда является «мягким барьером». Пользователи могут быть достаточно решительными и компетентными, чтобы использовать эту уязвимость, а могут и нет.
Спасибо, работает.
Редактирование: Я изменил это на следующее, чтобы сделать регистронезависимым:
<script type="text/discourse-plugin" version="1.4.0">
function shouldHideLastSeen() {
const p = location.pathname.toLowerCase();
return p === "/u/username" || p.startsWith("/u/username/");
}
function hideLastSeen() {
if (shouldHideLastSeen()) {
document.querySelectorAll(".last-seen-at").forEach(el => el.remove());
}
}
api.onPageChange(hideLastSeen);
document.addEventListener("DOMContentLoaded", hideLastSeen);
</script>