X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/effb1b7f4170bb7244c4dfffcbe6134fe00e2bc4..f11221f05bcdd05edd7a9f97d6d57e7baaeb4921:/app/controllers/issue_comments_controller.rb diff --git a/app/controllers/issue_comments_controller.rb b/app/controllers/issue_comments_controller.rb index ba35b7978..0e4a7079e 100644 --- a/app/controllers/issue_comments_controller.rb +++ b/app/controllers/issue_comments_controller.rb @@ -2,19 +2,17 @@ class IssueCommentsController < ApplicationController layout "site" before_action :authorize_web - before_action :require_user - before_action :check_permission + 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 - # if params[:reassign] - # reassign_issue - # @issue_comment.reassign = true - # end comment.save! - notice = t("issues.comment.comment_created") + notice = t(".comment_created") + reassign_issue(@issue) if params[:reassign] redirect_to @issue, :notice => notice end @@ -24,10 +22,19 @@ class IssueCommentsController < ApplicationController 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") + 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