mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 01:08:35 +08:00
UX: Group membership PMs thread (#26974)
Instead of creating two separate Topics when a user (1) requests to join a group and (2) gets accepted in, this makes the acceptance message into a Post under the origin group request Topic.
This commit is contained in:
@ -480,6 +480,17 @@ class GroupsController < ApplicationController
|
||||
user = User.find_by(id: params[:user_id])
|
||||
raise Discourse::InvalidParameters.new(:user_id) if user.blank?
|
||||
|
||||
# find original membership request PM
|
||||
request_topic =
|
||||
Topic.find_by(
|
||||
title:
|
||||
(
|
||||
I18n.t "groups.request_membership_pm.title", group_name: group.name, locale: user.locale
|
||||
),
|
||||
archetype: "private_message",
|
||||
user_id: user.id,
|
||||
)
|
||||
|
||||
ActiveRecord::Base.transaction do
|
||||
if params[:accept]
|
||||
group.add(user)
|
||||
@ -492,9 +503,11 @@ class GroupsController < ApplicationController
|
||||
if params[:accept]
|
||||
PostCreator.new(
|
||||
current_user,
|
||||
title: I18n.t("groups.request_accepted_pm.title", group_name: group.name),
|
||||
raw: I18n.t("groups.request_accepted_pm.body", group_name: group.name),
|
||||
archetype: Archetype.private_message,
|
||||
post_type: Post.types[:regular],
|
||||
topic_id: request_topic.id,
|
||||
raw:
|
||||
(I18n.t "groups.request_accepted_pm.body", group_name: group.name, locale: user.locale),
|
||||
reply_to_post_number: 1,
|
||||
target_usernames: user.username,
|
||||
skip_validations: true,
|
||||
).create!
|
||||
|
Reference in New Issue
Block a user