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