diff --git a/app/assets/stylesheets/components/tooltips.scss b/app/assets/stylesheets/components/tooltips.scss
index 0987eff83..c30c46c19 100644
--- a/app/assets/stylesheets/components/tooltips.scss
+++ b/app/assets/stylesheets/components/tooltips.scss
@@ -51,4 +51,10 @@
transition-delay: 0s;
}
}
+
+ // Variant allowing placement in line with right edge instead of left
+ &.crayons-hover-tooltip--right:after {
+ left: revert;
+ right: 0;
+ }
}
diff --git a/app/helpers/admin/users_helper.rb b/app/helpers/admin/users_helper.rb
index 3876346fe..b8a58d1f6 100644
--- a/app/helpers/admin/users_helper.rb
+++ b/app/helpers/admin/users_helper.rb
@@ -21,5 +21,15 @@ module Admin
"Resource Admin"
end
end
+
+ def format_role_tooltip(user)
+ if user.super_admin?
+ "Super Admin"
+ elsif user.admin?
+ "Admin"
+ elsif user.single_resource_admin_for?(:any)
+ "Resource Admin: #{user.roles.pluck(:resource_type).compact.join(', ')}"
+ end
+ end
end
end
diff --git a/app/views/admin/users/_member_index.html.erb b/app/views/admin/users/_member_index.html.erb
index 526f30910..85a95b712 100644
--- a/app/views/admin/users/_member_index.html.erb
+++ b/app/views/admin/users/_member_index.html.erb
@@ -30,7 +30,7 @@
<%= render "admin/users/index/status_indicator", user: user %>
-
+
<%= cascading_high_level_roles(user) %>
diff --git a/app/views/admin/users/index/_organizations.html.erb b/app/views/admin/users/index/_organizations.html.erb
index f53bc44a4..4928454b3 100644
--- a/app/views/admin/users/index/_organizations.html.erb
+++ b/app/views/admin/users/index/_organizations.html.erb
@@ -1,6 +1,6 @@
<% if organizations.any? %>
<% organizations.each do |organization| %>
-
+
<% end %>
diff --git a/spec/helpers/admin/users_helper_spec.rb b/spec/helpers/admin/users_helper_spec.rb
index aa0bd8a61..77452d0b4 100644
--- a/spec/helpers/admin/users_helper_spec.rb
+++ b/spec/helpers/admin/users_helper_spec.rb
@@ -25,21 +25,23 @@ describe Admin::UsersHelper do
end
describe "#cascading_high_level_roles" do
+ let(:user) { create(:user) }
+
it "renders the proper role for a Super Admin" do
- super_admin = create(:user, :super_admin)
- role = helper.cascading_high_level_roles(super_admin)
+ user.add_role(:super_admin)
+ role = helper.cascading_high_level_roles(user)
expect(role).to eq "Super Admin"
end
it "renders the proper role for an Admin" do
- admin = create(:user, :admin)
- role = helper.cascading_high_level_roles(admin)
+ user.add_role(:admin)
+ role = helper.cascading_high_level_roles(user)
expect(role).to eq "Admin"
end
it "renders the proper role for a Resource Admin" do
- resource_admin = create(:user, :single_resource_admin)
- role = helper.cascading_high_level_roles(resource_admin)
+ user.add_role(:single_resource_admin, Article)
+ role = helper.cascading_high_level_roles(user)
expect(role).to eq "Resource Admin"
end
@@ -49,4 +51,39 @@ describe Admin::UsersHelper do
expect(role).to be_nil
end
end
+
+ describe "#format_role_tooltip" do
+ let(:user) { create(:user) }
+
+ it "renders the proper tooltip for a Super Admin" do
+ user.add_role(:super_admin)
+ role = helper.format_role_tooltip(user)
+ expect(role).to eq "Super Admin"
+ end
+
+ it "renders the proper tooltip for an Admin" do
+ user.add_role(:admin)
+ role = helper.format_role_tooltip(user)
+ expect(role).to eq "Admin"
+ end
+
+ it "renders the proper tooltip for a Resource Admin" do
+ user.add_role(:single_resource_admin, Article)
+ role = helper.format_role_tooltip(user)
+ expect(role).to eq "Resource Admin: Article"
+ end
+
+ it "renders the proper, comma-separated tooltip for a Resource Admin with multiple resource_types" do
+ user.add_role(:single_resource_admin, Article)
+ user.add_role(:single_resource_admin, Badge)
+ role = helper.format_role_tooltip(user)
+ expect(role).to eq "Resource Admin: Article, Badge"
+ end
+
+ it "does not render a the resource_type for a Trusted user" do
+ user.add_role(:trusted)
+ role = helper.format_role_tooltip(user)
+ expect(role).to be_nil
+ end
+ end
end