diff --git a/app/controllers/moderations_controller.rb b/app/controllers/moderations_controller.rb index 143b6ff5c..ee12749ef 100644 --- a/app/controllers/moderations_controller.rb +++ b/app/controllers/moderations_controller.rb @@ -10,7 +10,7 @@ class ModerationsController < ApplicationController def index skip_authorization - return unless current_user&.trusted + return unless current_user&.trusted? articles = Article.published .order(published_at: :desc).limit(70) diff --git a/app/decorators/user_decorator.rb b/app/decorators/user_decorator.rb index f7fe8c581..3d044583b 100644 --- a/app/decorators/user_decorator.rb +++ b/app/decorators/user_decorator.rb @@ -55,7 +55,7 @@ class UserDecorator < ApplicationDecorator body_class = [ setting.config_theme.tr("_", "-"), "#{setting.resolved_font_name.tr('_', '-')}-article-body", - "trusted-status-#{trusted}", + "trusted-status-#{trusted?}", "#{setting.config_navbar.tr('_', '-')}-header", ] body_class.join(" ") diff --git a/app/models/rating_vote.rb b/app/models/rating_vote.rb index 11ee932d1..adc41f2ea 100644 --- a/app/models/rating_vote.rb +++ b/app/models/rating_vote.rb @@ -22,7 +22,7 @@ class RatingVote < ApplicationRecord end def permissions - return unless context == "explicit" && !user&.trusted && user_id != article&.user_id + return if user == article&.user || user&.trusted? || context != "explicit" errors.add(:user_id, "is not permitted to take this action.") end diff --git a/app/models/user.rb b/app/models/user.rb index 836214d9d..09227fc4e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -483,7 +483,7 @@ class User < ApplicationRecord end def auditable? - trusted || tag_moderator? || any_admin? + trusted? || tag_moderator? || any_admin? end def tag_moderator? diff --git a/app/views/admin/articles/_individual_article.html.erb b/app/views/admin/articles/_individual_article.html.erb index 1a95c6520..a549ff81f 100644 --- a/app/views/admin/articles/_individual_article.html.erb +++ b/app/views/admin/articles/_individual_article.html.erb @@ -82,7 +82,7 @@ <% cache "admin-user-info-#{article.user_id}-#{article.user&.updated_at}", expires_in: 4.hours do %> - <% if article.user&.warned %> + <% if article.user&.warned? %>

USER WARNED

<% end %> diff --git a/app/views/moderations/index.html.erb b/app/views/moderations/index.html.erb index 3d8404ce1..f9d45e9d3 100644 --- a/app/views/moderations/index.html.erb +++ b/app/views/moderations/index.html.erb @@ -4,7 +4,7 @@ -<% if current_user&.trusted %> +<% if current_user&.trusted? %>
<%= render "moderations/mod_sidebar_left" %>
diff --git a/spec/decorators/user_decorator_spec.rb b/spec/decorators/user_decorator_spec.rb index e720d17bf..54d0cae10 100644 --- a/spec/decorators/user_decorator_spec.rb +++ b/spec/decorators/user_decorator_spec.rb @@ -109,7 +109,7 @@ RSpec.describe UserDecorator, type: :decorator do it "creates proper body class with defaults" do expected_result = %W[ light-theme sans-serif-article-body - trusted-status-#{user.trusted} #{user.setting.config_navbar}-header + trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header ].join(" ") expect(user.decorate.config_body_class).to eq(expected_result) end @@ -118,7 +118,7 @@ RSpec.describe UserDecorator, type: :decorator do user.setting.config_font = "sans_serif" expected_result = %W[ light-theme sans-serif-article-body - trusted-status-#{user.trusted} #{user.setting.config_navbar}-header + trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header ].join(" ") expect(user.decorate.config_body_class).to eq(expected_result) end @@ -127,7 +127,7 @@ RSpec.describe UserDecorator, type: :decorator do user.setting.config_theme = "dark_theme" expected_result = %W[ dark-theme sans-serif-article-body - trusted-status-#{user.trusted} #{user.setting.config_navbar}-header + trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header ].join(" ") expect(user.decorate.config_body_class).to eq(expected_result) end @@ -136,7 +136,7 @@ RSpec.describe UserDecorator, type: :decorator do user.setting.config_navbar = "static" expected_result = %W[ light-theme sans-serif-article-body - trusted-status-#{user.trusted} static-header + trusted-status-#{user.trusted?} static-header ].join(" ") expect(user.decorate.config_body_class).to eq(expected_result) end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 19d9e551d..f7cb56b56 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -612,7 +612,7 @@ RSpec.describe User, type: :model do it "creates proper body class with defaults" do # rubocop:disable Layout/LineLength - classes = "light-theme sans-serif-article-body trusted-status-#{user.trusted} #{user.setting.config_navbar}-header" + classes = "light-theme sans-serif-article-body trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header" # rubocop:enable Layout/LineLength expect(user.decorate.config_body_class).to eq(classes) end @@ -621,7 +621,7 @@ RSpec.describe User, type: :model do user.setting.config_font = "sans_serif" # rubocop:disable Layout/LineLength - classes = "light-theme sans-serif-article-body trusted-status-#{user.trusted} #{user.setting.config_navbar}-header" + classes = "light-theme sans-serif-article-body trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header" # rubocop:enable Layout/LineLength expect(user.decorate.config_body_class).to eq(classes) end @@ -630,7 +630,7 @@ RSpec.describe User, type: :model do user.setting.config_font = "open_dyslexic" # rubocop:disable Layout/LineLength - classes = "light-theme open-dyslexic-article-body trusted-status-#{user.trusted} #{user.setting.config_navbar}-header" + classes = "light-theme open-dyslexic-article-body trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header" # rubocop:enable Layout/LineLength expect(user.decorate.config_body_class).to eq(classes) end @@ -638,7 +638,8 @@ RSpec.describe User, type: :model do it "creates proper body class with dark theme" do user.setting.config_theme = "dark_theme" - classes = "dark-theme sans-serif-article-body trusted-status-#{user.trusted} #{user.setting.config_navbar}-header" + classes = + "dark-theme sans-serif-article-body trusted-status-#{user.trusted?} #{user.setting.config_navbar}-header" expect(user.decorate.config_body_class).to eq(classes) end end @@ -801,7 +802,7 @@ RSpec.describe User, type: :model do end end - describe "#trusted" do + describe "#trusted?" do it "memoizes the result from rolify" do allow(Rails.cache) .to receive(:fetch) @@ -809,7 +810,7 @@ RSpec.describe User, type: :model do .and_return(false) .once - 2.times { user.trusted } + 2.times { user.trusted? } end end diff --git a/spec/requests/admin/tags/moderators_spec.rb b/spec/requests/admin/tags/moderators_spec.rb index 04d2940e6..884449e40 100644 --- a/spec/requests/admin/tags/moderators_spec.rb +++ b/spec/requests/admin/tags/moderators_spec.rb @@ -11,7 +11,7 @@ RSpec.describe "/admin/content_manager/tags/:id/moderator", type: :request do it "adds the given user as trusted and as a tag moderator" do post admin_tag_moderator_path(tag.id), params: { tag_id: tag.id, tag: { user_id: user.id } } expect(user.tag_moderator?).to be true - expect(user.trusted).to be true + expect(user.trusted?).to be true end end @@ -29,7 +29,7 @@ RSpec.describe "/admin/content_manager/tags/:id/moderator", type: :request do it "does not remove the trusted role from the user" do delete admin_tag_moderator_path(tag.id), params: { tag_id: tag.id, tag: { user_id: user.id } } - expect(user.trusted).to be true + expect(user.trusted?).to be true end end end