FEATURE: Send a private message when a group membership is accepted (#9822)

* FEATURE: Send a private message when a group membership is accepted

* DEV: Small code improvements

* FIX: Send PM as group owner

* Copy edits
This commit is contained in:
Bianca Nenciu
2020-05-26 16:28:03 +03:00
committed by GitHub
parent 41f742c2f9
commit f47400475e
4 changed files with 41 additions and 9 deletions

View File

@@ -340,18 +340,28 @@ class GroupsController < ApplicationController
raise Discourse::InvalidParameters.new(:id) if group.blank?
guardian.ensure_can_edit!(group)
ActiveRecord::Base.transaction do
user = User.find_by(id: params[:user_id])
raise Discourse::InvalidParameters.new(:user_id) if user.blank?
user = User.find_by(id: params[:user_id])
raise Discourse::InvalidParameters.new(:user_id) if user.blank?
ActiveRecord::Base.transaction do
if params[:accept]
group.add(user, notify: true)
group.add(user)
GroupActionLogger.new(current_user, group).log_add_user_to_group(user)
end
GroupRequest.where(group_id: group.id, user_id: user.id).delete_all
end
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,
target_usernames: user.username,
skip_validations: true
).create!
end
render json: success_json
end