직접 메시지 비활성화 시 사용자 카드의 채팅 버튼 숨김 처리 필요

안녕하세요, 저는 채널에서 채팅을 허용하되 개인 메시지에서는 채팅을 비활성화했습니다. 이 경우, 스태프가 아닌 사용자는 다른 사용자의 사용자 카드에서 여전히 채팅 버튼을 볼 수 있습니다. 하지만 버튼을 클릭하면 잘못된 메시지를 받을 수 있습니다.

코드를 읽어보니, 버튼은 can_chat_user가 true일 때 표시됩니다. 이는 다음 코드에 의해 결정됩니다.

# plugins/chat/plugin.rb
  add_to_serializer(:user_card, :can_chat_user) do
    return false if !SiteSetting.chat_enabled
    return false if scope.user.blank?

    scope.user.id != object.id && scope.can_chat?(scope.user) && scope.can_chat?(object)
  end

그리고

# plugins/chat/lib/guardian_extentions.rb

 def can_chat?(user)
    return false unless user
    user.staff? || user.in_any_groups?(Chat.allowed_group_ids)
  end
2개의 좋아요

이 문제를 보고해 주셔서 감사합니다! 수정할 목록에 추가하겠습니다.

1개의 좋아요

좋은 지적 감사합니다. 다음을 통해 수정되어야 합니다:

:+1:

4개의 좋아요

이 주제는 마지막 답변 후 2일 자동으로 닫혔습니다. 더 이상 새로운 답변을 작성할 수 없습니다.