Project

General

Profile

Defect #43164 ยป fix_destroy_role.patch

Kenta Kumojima, 2025-08-27 11:11

View differences:

app/controllers/roles_controller.rb
98 98
  def destroy
99 99
    begin
100 100
      @role.destroy
101
      redirect_to roles_path
101 102
    rescue
102
      flash[:error] = l(:error_can_not_remove_role)
103
      flash.now[:error] = l(:error_can_not_remove_role)
103 104

  
104 105
      if @role.members.present?
105 106
        projects = Project.joins(members: :member_roles).where(member_roles: { role_id: @role.id }).distinct.sorted
106 107
        links = projects.map do |p|
107 108
          view_context.link_to(p, settings_project_path(p, tab: 'members'))
108 109
        end.join(', ')
109
        flash[:error] += l(:error_can_not_remove_role_reason_members_html, projects: links)
110
        flash.now[:error] += l(:error_can_not_remove_role_reason_members_html, projects: links)
110 111
      end
112
      @roles = Role.sorted.to_a
113
      render :index
111 114
    end
112
    redirect_to roles_path
113 115
  end
114 116

  
115 117
  def permissions
test/functional/roles_controller_test.rb
244 244

  
245 245
    delete :destroy, params: { id: role.id }
246 246

  
247
    assert_redirected_to roles_path
247
    assert_response :success
248 248
    assert Role.find_by(id: role.id)
249 249

  
250 250
    assert flash[:error].present?
......
262 262

  
263 263
    delete :destroy, params: { id: role.id }
264 264

  
265
    assert_redirected_to roles_path
265
    assert_response :success
266 266
    assert Role.find_by(id: role.id)
267 267
    assert flash[:error].present?
268 268
    assert_equal flash[:error], I18n.t(:error_can_not_remove_role)
    (1-1/1)