]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/issue_comments_controller.rb
Use character validate to exclude URL characters for trace tags
[rails.git] / app / controllers / issue_comments_controller.rb
index ba35b79789d8229a52b7c331cd9b970e36bd45d1..0e4a7079e0e4c5e27608bf344767d529a4349e1f 100644 (file)
@@ -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