Defect #43164 ยป fix_destroy_role.patch
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) |