diff --git a/app/controllers/report_controller/widgets.rb b/app/controllers/report_controller/widgets.rb index 91515da840b..96768d4269a 100644 --- a/app/controllers/report_controller/widgets.rb +++ b/app/controllers/report_controller/widgets.rb @@ -292,9 +292,8 @@ def widget_get_node_info if @widget.visibility && @widget.visibility[:roles] @sb[:user_roles] = [] if @widget.visibility[:roles][0] != "_ALL_" - Rbac.filtered(MiqUserRole).sort_by(&:name).each do |r| - @sb[:user_roles].push(r.name) if @widget.visibility[:roles].include?(r.name) - end + role_ids = @widget.visibility[:roles] + @sb[:user_roles] = Rbac.filtered(MiqUserRole.where(:id => role_ids)).order(:name).pluck(:name) end elsif @widget.visibility && @widget.visibility[:groups] @sb[:groups] = [] @@ -335,8 +334,7 @@ def widget_set_form_vars if @widget.visibility[:roles][0] == "_ALL_" @edit[:new][:roles] = ["_ALL_"] else - roles = Rbac.filtered(MiqUserRole.where(:name => @widget.visibility[:roles])) - @edit[:new][:roles] = roles.collect(&:id).sort + @edit[:new][:roles] = @widget.visibility[:roles].sort end elsif @widget.visibility[:groups] @edit[:new][:visibility_typ] = "group" @@ -573,12 +571,7 @@ def widget_set_record_vars(widget) widget.visibility.delete(:roles) if widget.visibility[:roles] else if @edit[:new][:visibility_typ] == "role" - roles = [] - @edit[:new][:roles].each do |r| - role = MiqUserRole.find(r) - roles.push(role.name) if r == role.id.to_s - end - widget.visibility[:roles] = roles + widget.visibility[:roles] = @edit[:new][:roles] else widget.visibility[:roles] = ["_ALL_"] end diff --git a/spec/controllers/report_controller/widget_spec.rb b/spec/controllers/report_controller/widget_spec.rb index 5c65351ae6c..7d0cf2036ba 100644 --- a/spec/controllers/report_controller/widget_spec.rb +++ b/spec/controllers/report_controller/widget_spec.rb @@ -67,7 +67,7 @@ @edit_hash[:new][:visibility_typ] = 'role' @edit_hash[:new][:roles] = [role.id.to_s] controller.send(:widget_set_record_vars, @widget) - expect(@widget.visibility[:roles]).to eq([role.name]) + expect(@widget.visibility[:roles]).to eq([role.id.to_s]) end it "sets group visibility for widget" do