]> git.openstreetmap.org Git - rails.git/commitdiff
Return to issue index if you can't view reassigned issue
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 24 Aug 2022 13:05:19 +0000 (14:05 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 24 Aug 2022 13:05:19 +0000 (14:05 +0100)
Fixes #3652

app/controllers/issue_comments_controller.rb
config/locales/en.yml
test/system/issues_test.rb

index 3a6b357f90b5bc39d21fc222f1a45c043214405b..a4bb6a5ed15af00df5bd0b60132cdfc67461681e 100644 (file)
@@ -11,9 +11,20 @@ class IssueCommentsController < ApplicationController
     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
+      end
+    else
+      flash[:notice] = t(".comment_created")
+      redirect_to @issue
+    end
   end
 
   private
index 9db47674843e2e337e651e63e6656cf883fceeaa..ea85cef19ded2732070264fa2c4120b968b24458 100644 (file)
@@ -1436,6 +1436,7 @@ en:
   issue_comments:
     create:
       comment_created: Your comment was successfully created
+      issue_reassigned: Your comment was created and the issue was reassigned
   reports:
     new:
       title_html: "Report %{link}"
index f539dd739052fb844b5fc37d32504fa86a1c8236..e93e92a696aa1cfef262b886fba238c72d2bbae9 100644 (file)
@@ -125,10 +125,27 @@ class IssuesTest < ApplicationSystemTestCase
     check :reassign
     click_on "Add Comment"
 
+    assert_content "and the issue was reassigned"
+    assert_current_path issues_path
+
     issue.reload
     assert_equal "moderator", issue.assigned_role
   end
 
+  def test_reassign_issue_as_super_user
+    issue = create(:issue)
+    sign_in_as(create(:super_user))
+
+    visit issue_path(issue)
+
+    fill_in :issue_comment_body, :with => "reassigning to moderators"
+    check :reassign
+    click_on "Add Comment"
+
+    assert_content "and the issue was reassigned"
+    assert_current_path issue_path(issue)
+  end
+
   def test_issue_index_with_multiple_roles
     user1 = create(:user)
     user2 = create(:user)