From 74dd11a3e93401e5d153359c85ba75dfca5aa959 Mon Sep 17 00:00:00 2001 From: kumojima Date: Wed, 27 Aug 2025 14:50:58 +0900 Subject: fix destroy role to prevent CookieOverflow --- app/controllers/roles_controller.rb | 8 +++++--- test/functional/roles_controller_test.rb | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index 89f9ee497..76675fd5f 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -98,18 +98,20 @@ class RolesController < ApplicationController def destroy begin @role.destroy + redirect_to roles_path rescue - flash[:error] = l(:error_can_not_remove_role) + flash.now[:error] = l(:error_can_not_remove_role) if @role.members.present? projects = Project.joins(members: :member_roles).where(member_roles: { role_id: @role.id }).distinct.sorted links = projects.map do |p| view_context.link_to(p, settings_project_path(p, tab: 'members')) end.join(', ') - flash[:error] += l(:error_can_not_remove_role_reason_members_html, projects: links) + flash.now[:error] += l(:error_can_not_remove_role_reason_members_html, projects: links) end + @roles = Role.sorted.to_a + render :index end - redirect_to roles_path end def permissions diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb index cbb2da3de..8a87657fa 100644 --- a/test/functional/roles_controller_test.rb +++ b/test/functional/roles_controller_test.rb @@ -244,7 +244,7 @@ class RolesControllerTest < Redmine::ControllerTest delete :destroy, params: { id: role.id } - assert_redirected_to roles_path + assert_response :success assert Role.find_by(id: role.id) assert flash[:error].present? @@ -262,7 +262,7 @@ class RolesControllerTest < Redmine::ControllerTest delete :destroy, params: { id: role.id } - assert_redirected_to roles_path + assert_response :success assert Role.find_by(id: role.id) assert flash[:error].present? assert_equal flash[:error], I18n.t(:error_can_not_remove_role) -- 2.34.1