mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FEATURE: opt-in guidance on topics for users without access (#7852)
Co-Authored-By: majakomel <maja.komel@gmail.com> Co-Authored-By: Robin Ward <robin.ward@gmail.com>
This commit is contained in:
@ -420,12 +420,18 @@ class GroupsController < ApplicationController
|
||||
end
|
||||
|
||||
def request_membership
|
||||
params.require(:reason)
|
||||
params.require(:reason) if params[:topic_id].blank?
|
||||
|
||||
group = find_group(:id)
|
||||
|
||||
if params[:topic_id] && topic = Topic.find_by_id(params[:topic_id])
|
||||
reason = I18n.t("groups.view_hidden_topic_request_reason", group_name: group.name, topic_url: topic.url)
|
||||
end
|
||||
|
||||
reason ||= params[:reason]
|
||||
|
||||
begin
|
||||
GroupRequest.create!(group: group, user: current_user, reason: params[:reason])
|
||||
GroupRequest.create!(group: group, user: current_user, reason: reason)
|
||||
rescue ActiveRecord::RecordNotUnique => e
|
||||
return render json: failed_json.merge(error: I18n.t("groups.errors.already_requested_membership")), status: 409
|
||||
end
|
||||
@ -438,7 +444,7 @@ class GroupsController < ApplicationController
|
||||
)
|
||||
|
||||
raw = <<~EOF
|
||||
#{params[:reason]}
|
||||
#{reason}
|
||||
|
||||
---
|
||||
<a href="#{Discourse.base_uri}/g/#{group.name}/requests">
|
||||
|
Reference in New Issue
Block a user