keep better track of per-user ip addrs
This commit is contained in:
@@ -42,7 +42,9 @@ class UsersController < ApplicationController
|
||||
end
|
||||
|
||||
def create
|
||||
@user = User.create(params[:user], :as => CurrentUser.role)
|
||||
@user = User.new(params[:user], :as => CurrentUser.role)
|
||||
@user.last_ip_addr = request.remote_ip
|
||||
@user.save
|
||||
if @user.errors.empty?
|
||||
session[:user_id] = @user.id
|
||||
end
|
||||
|
||||
@@ -26,6 +26,7 @@ class SessionLoader
|
||||
end
|
||||
|
||||
update_last_logged_in_at
|
||||
update_last_ip_addr
|
||||
set_time_zone
|
||||
store_favorite_tags_in_cookies
|
||||
set_statement_timeout
|
||||
@@ -108,6 +109,12 @@ private
|
||||
refresh_listbooru
|
||||
end
|
||||
|
||||
def update_last_ip_addr
|
||||
return if CurrentUser.is_anonymous?
|
||||
return if CurrentUser.user.last_ip_addr == @request.remote_ip
|
||||
CurrentUser.user.update_attribute(:last_ip_addr, @request.remote_ip)
|
||||
end
|
||||
|
||||
def refresh_listbooru
|
||||
if CurrentUser.is_gold? && CurrentUser.has_saved_searches? && Danbooru.config.listbooru_server && CurrentUser.is_gold?
|
||||
SavedSearch.refresh_listbooru(CurrentUser.id)
|
||||
|
||||
@@ -64,6 +64,7 @@ class User < ActiveRecord::Base
|
||||
after_save :update_cache
|
||||
after_update :update_remote_cache
|
||||
before_create :promote_to_admin_if_first_user
|
||||
#after_create :notify_sock_puppets
|
||||
has_many :feedback, :class_name => "UserFeedback", :dependent => :destroy
|
||||
has_many :posts, :foreign_key => "uploader_id"
|
||||
has_many :bans, lambda {order("bans.id desc")}
|
||||
@@ -802,6 +803,19 @@ class User < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
module SockPuppetMethods
|
||||
def notify_sock_puppets
|
||||
sock_puppet_suspects.each do |user|
|
||||
end
|
||||
end
|
||||
|
||||
def sock_puppet_suspects
|
||||
if last_ip_addr.present?
|
||||
User.where(:last_ip_addr => last_ip_addr)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
include BanMethods
|
||||
include NameMethods
|
||||
include PasswordMethods
|
||||
|
||||
Reference in New Issue
Block a user