diff --git a/app/controllers/ip_addresses_controller.rb b/app/controllers/ip_addresses_controller.rb index 9ad8db88a..8c5da0cdc 100644 --- a/app/controllers/ip_addresses_controller.rb +++ b/app/controllers/ip_addresses_controller.rb @@ -4,8 +4,8 @@ class IpAddressesController < ApplicationController respond_to :html, :xml, :json def show - @ip_address = authorize IpAddress.new(ip_addr: params[:id]) - @ip_info = @ip_address.ip_addr.ip_info + @ip_address = authorize Danbooru::IpAddress.new(params[:id]), policy_class: IpAddressPolicy + @ip_info = @ip_address.ip_info respond_with(@ip_info) end end diff --git a/app/logical/bigquery_export_service.rb b/app/logical/bigquery_export_service.rb index 2140bfe0e..4f17b0b2f 100644 --- a/app/logical/bigquery_export_service.rb +++ b/app/logical/bigquery_export_service.rb @@ -41,7 +41,7 @@ class BigqueryExportService Rails.application.eager_load! models = ApplicationRecord.descendants.sort_by(&:name) - models -= [GoodJob::BaseRecord, GoodJob::Process, GoodJob::Execution, GoodJob::ActiveJobJob, GoodJob::Job, GoodJob::Setting, IpAddress, TagRelationship, ArtistVersion, ArtistCommentaryVersion, NoteVersion, PoolVersion, PostVersion, WikiPageVersion, Post, PostVote, MediaAsset, Favorite, AITag] + models -= [GoodJob::BaseRecord, GoodJob::Process, GoodJob::Execution, GoodJob::ActiveJobJob, GoodJob::Job, GoodJob::Setting, TagRelationship, ArtistVersion, ArtistCommentaryVersion, NoteVersion, PoolVersion, PostVersion, WikiPageVersion, Post, PostVote, MediaAsset, Favorite, AITag] models end diff --git a/app/models/ip_address.rb b/app/models/ip_address.rb deleted file mode 100644 index b25b7345e..000000000 --- a/app/models/ip_address.rb +++ /dev/null @@ -1,56 +0,0 @@ -# frozen_string_literal: true - -class IpAddress < ApplicationRecord - belongs_to :model, polymorphic: true - belongs_to :user - attribute :ip_addr, :ip_address - - def self.model_types - %w[Post User Comment Dmail ArtistVersion ArtistCommentaryVersion NoteVersion WikiPageVersion] - end - - def self.visible(user) - user.is_admin? ? all : where.not(model_type: "Dmail") - end - - def self.search(params) - q = search_attributes(params, :ip_addr, :user, :model) - q.order(created_at: :desc) - end - - def self.group_by_ip_addr(ipv4_masklen = nil, ipv6_masklen = nil) - ipv4_masklen ||= 32 - ipv6_masklen ||= 128 - - q = select(sanitize_sql([<<~SQL.squish, ipv4_masklen, ipv6_masklen])) - CASE - WHEN family(ip_addr) = 4 - THEN network(set_masklen(ip_addr, ?)) - ELSE network(set_masklen(ip_addr, ?)) - END AS ip_addr, - COUNT(*) AS count_all - SQL - - q.group("1").reorder("count_all DESC, ip_addr") - end - - def self.group_by_user - group(:user_id).select("user_id, COUNT(*) AS count_all").reorder("count_all DESC, user_id") - end - - def lookup - @lookup ||= ip_addr.ip_lookup - end - - def to_s - ip_addr.to_s - end - - def readonly? - true - end - - def self.available_includes - [:user, :model] - end -end diff --git a/app/views/ip_addresses/_info.html.erb b/app/views/ip_addresses/_info.html.erb index c72136d30..be1a10d7b 100644 --- a/app/views/ip_addresses/_info.html.erb +++ b/app/views/ip_addresses/_info.html.erb @@ -28,10 +28,10 @@
<%= JSON.pretty_generate(ip_address.lookup.response) %>+
<%= JSON.pretty_generate(ip_address.ip_lookup.response) %>