pangbo
17. April 2024 um 06:18
1
Als Administrator kann ich keine persönlichen Chats mit anderen Benutzern erstellen.
Gemäß den Website-Einstellungen sollten Mitarbeiter jedoch immer die Möglichkeit haben, persönliche Chats zu erstellen.
Schritte zur Reproduktion:
Setzen Sie chat allowed groups auf TL0 und direct message enabled groups auf Moderatoren.
Versuchen Sie als Administrator, einen persönlichen Chat mit einem TL1-Benutzer zu erstellen.
Behebung
Dieses Problem hängt mit PR #26010 zusammen.
# frozen_string_literal: true
module Chat
class ChatableUserSerializer < UserWithCustomFieldsSerializer
attributes :can_chat, :has_chat_enabled
def can_chat
SiteSetting.chat_enabled && object.guardian.can_chat? && object.guardian.can_direct_message?
end
def has_chat_enabled
can_chat && object.user_option&.chat_enabled
end
end
end
Wenn ein Benutzer versucht, einen persönlichen Chat zu erstellen, sollten wir nicht überprüfen, ob der Zielbenutzer die Berechtigung zum Erstellen persönlicher Chats hat. Stattdessen sollten wir, wie in den Website-Einstellungen angegeben, überprüfen, ob der aktuelle Benutzer die Berechtigung zum Erstellen persönlicher Chats hat.
Solange der aktuelle Benutzer Mitglied der für Direktnachrichten aktivierten Gruppen ist oder ein Mitarbeiter ist, sollte er in der Lage sein, einen persönlichen Chat zu erstellen.
Ich habe einen Pull-Request zur Behebung dieses Problems eingereicht:
main ← pangbo13:fix/staff-cannot-create-personal-chats
opened 05:57AM - 17 Apr 24 UTC
As an admin, I am unable to create personal chats with other users.

However, according to the site settings, staff members should always have the ability to create personal chats.

## Steps to reproduce:
1. Set `chat allowed groups` to TL0 & `direct message enabled groups` to moderators
2. As an admin, attempt to create a personal chat with a TL1 user.
## Fix
This issue is related to PR https://github.com/discourse/discourse/pull/26010
https://github.com/discourse/discourse/blob/df373d90fe9460b49aaa771e138aebf3f768c803/plugins/chat/app/serializers/chat/chatable_user_serializer.rb#L8
When a user attempts to create a personal chat, we should not verify whether the target user has the ability to create personal chats. Instead, as specified in the site settings, we should verify whether the **current user** has the ability to create personal chats.
As long as the current user is a member of the direct message enabled groups or is a staff member, they should be able to create a personal chat.
4 „Gefällt mir“
Danke @pangbo , ich habe den PR gerade zusammengeführt
Wir werden diese Einstellungen / Optionen intern gründlicher prüfen, um zu sehen, ob wir noch weitere übersehen haben.
1 „Gefällt mir“