X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/16bef0c8ecad24ac0ca93963196bc844adbb57de..a5d14a1815b26cbec356441876d533163e5de3b2:/app/controllers/issue_comments_controller.rb diff --git a/app/controllers/issue_comments_controller.rb b/app/controllers/issue_comments_controller.rb index 0e4a7079e..7edef184e 100644 --- a/app/controllers/issue_comments_controller.rb +++ b/app/controllers/issue_comments_controller.rb @@ -3,17 +3,31 @@ class IssueCommentsController < ApplicationController before_action :authorize_web before_action :set_locale + before_action :check_database_readable authorize_resource + before_action :check_database_writable, :only => [:create] + 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 + + if params[:reassign] + reassign_issue(@issue) + flash[:notice] = t ".issue_reassigned" + + if current_user.has_role? @issue.assigned_role + redirect_to @issue + else + redirect_to issues_path(:status => "open") + end + else + flash[:notice] = t(".comment_created") + redirect_to @issue + end end private @@ -22,15 +36,6 @@ class IssueCommentsController < ApplicationController 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