diff options
-rw-r--r-- | app/controllers/request_controller.rb | 3 | ||||
-rw-r--r-- | app/models/user.rb | 3 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb index d56b5d245..718a8aada 100644 --- a/app/controllers/request_controller.rb +++ b/app/controllers/request_controller.rb @@ -188,8 +188,7 @@ class RequestController < ApplicationController redirect_to select_authorities_path and return end - # TODO: I don't think batch requesters should be subject to rate limits, - # but I do think we should probably check for double submission of batch + # TODO: I do think we should probably check for double submission of batch # requests as we do in 'new' for ordinary requests with find_by_existing_request # TODO: Decide if we make batch requesters describe their undescribed requests diff --git a/app/models/user.rb b/app/models/user.rb index 2c4f87944..2052b942b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -269,6 +269,9 @@ class User < ActiveRecord::Base # Some users have no limit return false if self.no_limit + # Batch request users don't have a limit + return false if self.can_make_batch_requests? + # Has the user issued as many as MAX_REQUESTS_PER_USER_PER_DAY requests in the past 24 hours? return false if AlaveteliConfiguration::max_requests_per_user_per_day.blank? recent_requests = InfoRequest.count(:conditions => ["user_id = ? and created_at > now() - '1 day'::interval", self.id]) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index bb1b054aa..b6f48dad3 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -360,4 +360,11 @@ describe User, "when calculating if a user has exceeded the request limit" do @user.exceeded_limit?.should be_true end + it 'should return false if the user is allowed to make batch requests' do + @user.can_make_batch_requests = true + AlaveteliConfiguration.stub!(:max_requests_per_user_per_day).and_return(0) + @user.exceeded_limit?.should be_false + end + + end |