Is there a way to hide Seen column?

Some of my users dont like this option:

Screenshot_2018-07-29%20How%20to%20hide%20users%20column%20on%20latest%20

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>

제공


나중에 이 글을 읽는 분들을 위해, 사용자가 잘못 대상이 지정되는 것을 방지하는 아래의 더 나은 스크립트를 참고하세요. (예: .startsWith("/u/john")를 사용하면 "johndoe"라는 이름의 사용자가 잘못 대상이 될 수 있습니다.)

안전 모드가 켜져 있으면 이 기능이 작동하지 않나요?

네. 필요할 경우 관리자가 비스태프의 안전 모드를 비활성화할 수 있습니다 :slight_smile:

하지만 호기심 많은 사용자는 여전히 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>