Merge branch 'master' into attribute-searching
This commit is contained in:
@@ -265,6 +265,10 @@ class User < ApplicationRecord
|
||||
name.match?(/\Auser_[0-9]+~*\z/)
|
||||
end
|
||||
|
||||
def is_restricted?
|
||||
requires_verification? && !is_verified?
|
||||
end
|
||||
|
||||
def is_anonymous?
|
||||
level == Levels::ANONYMOUS
|
||||
end
|
||||
@@ -343,6 +347,26 @@ class User < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def is_appeal_limited?
|
||||
return false if can_upload_free?
|
||||
upload_limit.free_upload_slots < UploadLimit::APPEAL_COST
|
||||
end
|
||||
|
||||
def is_flag_limited?
|
||||
return false if has_unlimited_flags?
|
||||
post_flags.active.count >= 5
|
||||
end
|
||||
|
||||
# Flags are unlimited if you're an approver or you have at least 30 flags
|
||||
# in the last 3 months and have a 70% flag success rate.
|
||||
def has_unlimited_flags?
|
||||
return true if can_approve_posts?
|
||||
|
||||
recent_flags = post_flags.where("created_at >= ?", 3.months.ago)
|
||||
flag_ratio = recent_flags.succeeded.count / recent_flags.count.to_f
|
||||
recent_flags.count >= 30 && flag_ratio >= 0.70
|
||||
end
|
||||
|
||||
def upload_limit
|
||||
@upload_limit ||= UploadLimit.new(self)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user