Ciao, permetto agli utenti di chattare nei canali ma li disabilito nei messaggi diretti. In questo caso, un utente non staff può ancora vedere il pulsante Chat nella scheda di altri utenti. Ma potrebbero ricevere un messaggio errato dopo averci cliccato.
Ho letto il codice, il pulsante viene mostrato se can_chat_user. Questo è determinato dal seguente codice.
# 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
e
# 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