مرحباً، أنا أسمح للمستخدمين بالدردشة في القناة ولكنني أعطلها في الرسائل المباشرة. في هذه الحالة، لا يزال بإمكان المستخدم غير الموظف رؤية زر الدردشة في بطاقة المستخدم الخاصة بالآخرين. ولكنهم قد يحصلون على رسالة خاطئة بعد النقر عليها.
لقد قرأت الكود، يتم عرض الزر إذا كان can_chat_user. يتم تحديد ذلك بواسطة الكود التالي.
# 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