Class: EditRateLimiter

Inherits:
RateLimiter show all
Defined in:
lib/edit_rate_limiter.rb

Constant Summary

Constants inherited from RateLimiter

RateLimiter::PERFORM_LUA, RateLimiter::PERFORM_LUA_AGGRESSIVE

Instance Attribute Summary

Attributes inherited from RateLimiter

#error_code, #key, #max, #secs, #user

Instance Method Summary collapse

Methods inherited from RateLimiter

#can_perform?, #clear!, clear_all_global!, disable, disabled?, enable, key_prefix, #performed!, #remaining, #rollback!, #seconds_to_wait, time_left

Constructor Details

#initialize(user) ⇒ EditRateLimiter

Returns a new instance of EditRateLimiter.



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/edit_rate_limiter.rb', line 5

def initialize(user)
  limit = SiteSetting.max_edits_per_day

  if user.trust_level >= 2
    multiplier = SiteSetting.get("tl#{user.trust_level}_additional_edits_per_day_multiplier").to_f
    multiplier = 1.0 if multiplier < 1.0
    limit = (limit * multiplier).to_i
  end

  super(user, "edit-post", limit, 1.day.to_i)
end

Instance Method Details

#build_key(type) ⇒ Object



17
18
19
# File 'lib/edit_rate_limiter.rb', line 17

def build_key(type)
  "#{super(type)}:#{Date.today}"
end