From f1f6e5ccc94181a7d38234c63741a2d339b7dbc7 Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 21 May 2017 12:27:39 -0500 Subject: [PATCH 1/2] anonymous_user.rb: generate is_? methods from User::Roles. --- app/logical/anonymous_user.rb | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/app/logical/anonymous_user.rb b/app/logical/anonymous_user.rb index 3dacd7798..65b458049 100644 --- a/app/logical/anonymous_user.rb +++ b/app/logical/anonymous_user.rb @@ -8,6 +8,10 @@ class AnonymousUser 0 end + def level_string + "Anonymous" + end + def comment_threshold 0 end @@ -36,10 +40,6 @@ class AnonymousUser true end - def is_banned? - false - end - def is_banned_or_ip_banned? false end @@ -245,14 +245,6 @@ class AnonymousUser false end - def is_voter? - false - end - - def is_super_voter? - false - end - def disable_tagged_filenames? false end @@ -261,7 +253,7 @@ class AnonymousUser false end - %w(member banned gold builder platinum moderator admin).each do |name| + User::Roles.reject {|r| r == :anonymous}.each do |name| define_method("is_#{name}?") do false end From 9b613157aed9eb3b408d6eb5666a200026a3f19c Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 21 May 2017 12:29:53 -0500 Subject: [PATCH 2/2] Add data attributes for CurrentUser's privileges to tag (fix #3073). --- app/assets/stylesheets/specific/posts.scss | 2 +- app/helpers/application_helper.rb | 12 ++++++++++++ app/views/layouts/default.html.erb | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/specific/posts.scss b/app/assets/stylesheets/specific/posts.scss index ae118f21d..7262166b5 100644 --- a/app/assets/stylesheets/specific/posts.scss +++ b/app/assets/stylesheets/specific/posts.scss @@ -129,7 +129,7 @@ a.blacklisted-active { } /* Flagged posts have red borders for approvers. */ -body[data-can-approve-posts="true"] .post-preview { +body[data-user-can-approve-posts="true"] .post-preview { &.post-status-flagged img { border-color: $preview_flagged_color; } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0d6a57ccf..124c3bec2 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -163,6 +163,18 @@ module ApplicationHelper string += '' string.html_safe end + + def body_attributes(user = CurrentUser.user) + attributes = [:id, :name, :level, :level_string, :can_approve_posts?, :can_upload_free?] + attributes += User::Roles.map { |role| :"is_#{role}?" } + + attributes.map do |attr| + name = attr.to_s.dasherize.delete("?") + value = user.send(attr) + + %{data-user-#{name}="#{h(value)}"} + end.join(" ").html_safe + end protected def nav_link_match(controller, url) diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb index 07646a58b..cbd96de60 100644 --- a/app/views/layouts/default.html.erb +++ b/app/views/layouts/default.html.erb @@ -69,7 +69,7 @@ } - +>
<%= render "news_updates/listing" %>