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:
Joffrey JAFFEUX
2019-07-04 10:12:39 +02:00
committed by GitHub
parent 5fdf228db6
commit 71bf9ec1b2
18 changed files with 638 additions and 457 deletions

View File

@ -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">