mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 03:36:18 +08:00
FEATURE: introduces group channels (#24288)
Group channels will allow users to create channels with a name and invite people. It's possible to add people even after creation of the channel. Removing users is not yet possible but will be added in the near future. Technically a group channel is `direct_message_channel` with a group attribute set to true on its direct message (chatable). This model might evolve in the future but offers much flexibility for now without having to rely on a complex migration. The commit essentially consists of: - a migration to set existing direct message channels with more than 2 users to a group - a new message creator which allows to search, add members, and create groups - a new `AddUsersToChannel` service - a modified `SearchChatable` service
This commit is contained in:
@ -102,6 +102,17 @@ module ChatSpecHelpers
|
||||
service_failed!(result) if result.failure?
|
||||
result
|
||||
end
|
||||
|
||||
def add_users_to_channel(users, channel, user: Discourse.system_user)
|
||||
result =
|
||||
::Chat::AddUsersToChannel.call(
|
||||
guardian: user.guardian,
|
||||
channel_id: channel.id,
|
||||
usernames: Array(users).map(&:username),
|
||||
)
|
||||
service_failed!(result) if result.failure?
|
||||
result
|
||||
end
|
||||
end
|
||||
|
||||
RSpec.configure do |config|
|
||||
|
Reference in New Issue
Block a user