Return to issue index if you can't view reassigned issue

Fixes #3652
This commit is contained in:
Andy Allan 2022-08-24 14:05:19 +01:00
parent 651c6b0d4c
commit a0d0dee886
3 changed files with 32 additions and 3 deletions

View 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

View 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}"

View 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)