Hallo, ich erlaube Benutzern, in Kanälen zu chatten, aber deaktiviere sie in Direktnachrichten. In diesem Fall kann ein Nicht-Mitarbeiter-Benutzer immer noch die Chat-Schaltfläche in der Benutzerkarte anderer Benutzer sehen. Sie erhalten jedoch möglicherweise eine falsche Nachricht, nachdem sie darauf geklickt haben.
Ich habe den Code gelesen, die Schaltfläche wird angezeigt, wenn can_chat_user. Dies wird durch den folgenden Code bestimmt.
# 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
und
# 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