From a0d0dee8869a0199262aad57f23752c2b4a390ef Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Wed, 24 Aug 2022 14:05:19 +0100 Subject: [PATCH] Return to issue index if you can't view reassigned issue Fixes #3652 --- app/controllers/issue_comments_controller.rb | 17 ++++++++++++++--- config/locales/en.yml | 1 + test/system/issues_test.rb | 17 +++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/controllers/issue_comments_controller.rb b/app/controllers/issue_comments_controller.rb index 3a6b357f9..a4bb6a5ed 100644 --- a/app/controllers/issue_comments_controller.rb +++ b/app/controllers/issue_comments_controller.rb @@ -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 diff --git a/config/locales/en.yml b/config/locales/en.yml index 9db476748..ea85cef19 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -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}" diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index f539dd739..e93e92a69 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -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) -- 2.39.5