X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/8e21e4e80156a1fc29d7b283b254ff623ca844b6..c0bdcd53d2c04638a7490400e2abb43c88fe99ad:/app/models/changeset.rb diff --git a/app/models/changeset.rb b/app/models/changeset.rb index abb494de6..e6bde19a5 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -130,6 +130,8 @@ class Changeset < ApplicationRecord def update_bbox!(bbox_update) bbox.expand!(bbox_update) + raise OSM::APISizeLimitExceeded if bbox.linear_size > size_limit + # update active record. rails 2.1's dirty handling should take care of # whether this object needs saving or not. self.min_lon, self.min_lat, self.max_lon, self.max_lat = @bbox.to_a.collect(&:round) if bbox.complete? @@ -225,4 +227,10 @@ class Changeset < ApplicationRecord def subscribed?(user) subscribers.exists?(user.id) end + + def size_limit + @size_limit ||= ActiveRecord::Base.connection.select_value( + "SELECT api_size_limit($1)", "api_size_limit", [user_id] + ) + end end