mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 03:06:53 +08:00
Internal renaming of elder,leader,regular,basic to numbers
Changed internals so trust levels are referred to with TrustLevel[1], TrustLevel[2] etc. This gives us much better flexibility naming trust levels, these names are meant to be controlled by various communities.
This commit is contained in:
@ -15,37 +15,36 @@ class Promotion
|
||||
return false if @user.blank?
|
||||
|
||||
# Promotion beyond basic requires some expensive queries, so don't do that here.
|
||||
return false if @user.trust_level >= TrustLevel.levels[:regular]
|
||||
return false if @user.trust_level >= TrustLevel[2]
|
||||
|
||||
trust_key = TrustLevel.levels[@user.trust_level]
|
||||
|
||||
review_method = :"review_#{trust_key}"
|
||||
review_method = :"review_tl#{@user.trust_level}"
|
||||
return send(review_method) if respond_to?(review_method)
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
def review_newuser
|
||||
Promotion.basic_met?(@user) && change_trust_level!(:basic)
|
||||
def review_tl0
|
||||
Promotion.tl1_met?(@user) && change_trust_level!(TrustLevel[1])
|
||||
end
|
||||
|
||||
def review_basic
|
||||
Promotion.regular_met?(@user) && change_trust_level!(:regular)
|
||||
def review_tl1
|
||||
Promotion.tl2_met?(@user) && change_trust_level!(TrustLevel[2])
|
||||
end
|
||||
|
||||
def review_regular
|
||||
Promotion.leader_met?(@user) && change_trust_level!(:leader)
|
||||
def review_tl2
|
||||
Promotion.tl3_met?(@user) && change_trust_level!(TrustLevel[3])
|
||||
end
|
||||
|
||||
def change_trust_level!(level, opts = {})
|
||||
raise "Invalid trust level #{level}" unless TrustLevel.valid_level?(level)
|
||||
raise "Invalid trust level #{level}" unless TrustLevel.valid?(level)
|
||||
|
||||
old_level = @user.trust_level
|
||||
new_level = TrustLevel.levels[level]
|
||||
new_level = level
|
||||
|
||||
if new_level < old_level
|
||||
next_up = TrustLevel.levels[new_level+1]
|
||||
key = "#{next_up}_met?"
|
||||
next_up = new_level+1
|
||||
key = "tl#{next_up}_met?"
|
||||
if self.class.respond_to?(key) && self.class.send(key, @user)
|
||||
raise Discourse::InvalidAccess.new, I18n.t('trust_levels.change_failed_explanation',
|
||||
user_name: @user.name,
|
||||
@ -79,7 +78,7 @@ class Promotion
|
||||
end
|
||||
|
||||
|
||||
def self.regular_met?(user)
|
||||
def self.tl2_met?(user)
|
||||
stat = user.user_stat
|
||||
return false if stat.topics_entered < SiteSetting.tl2_requires_topics_entered
|
||||
return false if stat.posts_read_count < SiteSetting.tl2_requires_read_posts
|
||||
@ -92,7 +91,7 @@ class Promotion
|
||||
true
|
||||
end
|
||||
|
||||
def self.basic_met?(user)
|
||||
def self.tl1_met?(user)
|
||||
stat = user.user_stat
|
||||
return false if stat.topics_entered < SiteSetting.tl1_requires_topics_entered
|
||||
return false if stat.posts_read_count < SiteSetting.tl1_requires_read_posts
|
||||
@ -100,12 +99,12 @@ class Promotion
|
||||
return true
|
||||
end
|
||||
|
||||
def self.leader_met?(user)
|
||||
LeaderRequirements.new(user).requirements_met?
|
||||
def self.tl3_met?(user)
|
||||
TrustLevel3Requirements.new(user).requirements_met?
|
||||
end
|
||||
|
||||
def self.leader_lost?(user)
|
||||
LeaderRequirements.new(user).requirements_lost?
|
||||
def self.tl3_lost?(user)
|
||||
TrustLevel3Requirements.new(user).requirements_lost?
|
||||
end
|
||||
|
||||
end
|
||||
|
Reference in New Issue
Block a user