diff --git a/app/models/user.rb b/app/models/user.rb index b53d8c3e93b..f66c6e02c42 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -312,7 +312,9 @@ class User < ActiveRecord::Base end def new_user? - created_at >= 24.hours.ago || trust_level == TrustLevel[0] + (created_at >= 24.hours.ago || trust_level == TrustLevel[0]) && + trust_level < TrustLevel[2] && + !staff? end def seen_before? diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 6b63af0d682..df3a47e6711 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1180,4 +1180,25 @@ describe User do end + describe "new_user?" do + it "correctly detects new user" do + user = User.new(created_at: Time.now, trust_level: TrustLevel[0]) + + expect(user.new_user?).to eq(true) + + user.trust_level = TrustLevel[1] + + expect(user.new_user?).to eq(true) + + user.trust_level = TrustLevel[2] + + expect(user.new_user?).to eq(false) + + user.trust_level = TrustLevel[0] + user.moderator = true + + expect(user.new_user?).to eq(false) + end + end + end