openstreetmap-website/app/controllers/issue_comments_controller.rb
2017-12-06 18:01:51 +00:00

37 lines
969 B
Ruby

class IssueCommentsController < ApplicationController
layout "site"
before_action :authorize_web
before_action :require_user
before_action :check_permission
def create
@issue = Issue.find(params[:issue_id])
comment = @issue.comments.build(issue_comment_params)
comment.user = current_user
comment.save!
notice = t("issues.comment.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 check_permission
unless current_user.administrator? || current_user.moderator?
flash[:error] = t("application.require_admin.not_an_admin")
redirect_to root_path
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