FIX: Don't rate limit admin and staff constraints when matching routes.

* When an error is raised when checking route constraints, we
  can only return true/false which either lets the request
  through or return a 404 error. Therefore, we just skip
  rate limiting here and let the controller handle the
  rate limiting.
This commit is contained in:
Guo Xiang Tan
2018-09-04 13:52:58 +08:00
parent edbcc992d4
commit 651b50b1a1
4 changed files with 36 additions and 12 deletions

View File

@ -8,7 +8,8 @@ class AdminConstraint
def matches?(request)
return false if @require_master && RailsMultisite::ConnectionManagement.current_db != "default"
provider = Discourse.current_user_provider.new(request.env)
provider = Discourse.current_user_provider.new(request.env, rate_limit: false)
provider.current_user &&
provider.current_user.admin? &&
custom_admin_check(request)