Bonjour, je permets aux utilisateurs de discuter dans un canal mais je les désactive dans les messages directs. Dans ce cas, un utilisateur non-staff peut toujours voir le bouton Chat dans la carte d’un autre utilisateur. Mais ils peuvent recevoir un mauvais message après l’avoir cliqué.
J’ai lu le code, le bouton est affiché si can_chat_user. Ceci est déterminé par le code suivant.
# 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
et
# 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