openstreetmap-website/app/controllers/issue_comments_controller.rb

40 lines
948 B
Ruby

class IssueCommentsController < ApplicationController
layout "site"
before_action :authorize_web
before_action :set_locale
authorize_resource
def create
@issue = Issue.find(params[:issue_id])
comment = @issue.comments.build(issue_comment_params)
comment.user = current_user
comment.save!
notice = t(".comment_created")
reassign_issue(@issue) if params[:reassign]
redirect_to @issue, :notice => notice
end
private
def issue_comment_params
params.require(:issue_comment).permit(:body)
end
def deny_access(_exception)
if current_user
flash[:error] = t("application.require_moderator_or_admin.not_a_moderator_or_admin")
redirect_to root_path
else
super
end
end
# This sort of assumes there are only two roles
def reassign_issue(issue)
role = (Issue::ASSIGNED_ROLES - [issue.assigned_role]).first
issue.assigned_role = role
issue.save!
end
end