mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Allow admins to lock users from TL3 promotion/demotion
Also, update the display logic for the leader promotion screen to account for the demotion grace period.
This commit is contained in:
@@ -16,13 +16,15 @@ class TrustLevel3Requirements
|
||||
:posts_read_all_time, :min_posts_read_all_time,
|
||||
:num_flagged_posts, :max_flagged_posts,
|
||||
:num_likes_given, :min_likes_given,
|
||||
:num_likes_received, :min_likes_received
|
||||
:num_likes_received, :min_likes_received,
|
||||
:trust_level_locked, :on_grace_period
|
||||
|
||||
def initialize(user)
|
||||
@user = user
|
||||
end
|
||||
|
||||
def requirements_met?
|
||||
return false if trust_level_locked
|
||||
!@user.suspended? &&
|
||||
days_visited >= min_days_visited &&
|
||||
num_topics_replied_to >= min_topics_replied_to &&
|
||||
@@ -37,6 +39,7 @@ class TrustLevel3Requirements
|
||||
end
|
||||
|
||||
def requirements_lost?
|
||||
return false if trust_level_locked
|
||||
@user.suspended? ||
|
||||
days_visited < min_days_visited * LOW_WATER_MARK ||
|
||||
num_topics_replied_to < min_topics_replied_to * LOW_WATER_MARK ||
|
||||
@@ -50,6 +53,14 @@ class TrustLevel3Requirements
|
||||
num_likes_received < min_likes_received * LOW_WATER_MARK
|
||||
end
|
||||
|
||||
def trust_level_locked
|
||||
@user.trust_level_locked
|
||||
end
|
||||
|
||||
def on_grace_period
|
||||
@user.on_leader_grace_period?
|
||||
end
|
||||
|
||||
def days_visited
|
||||
@user.user_visits.where("visited_at > ? and posts_read > 0", TIME_PERIOD.days.ago).count
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user