40 lines
869 B
Ruby
Executable file
40 lines
869 B
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
require File.join(File.dirname(__FILE__), "..", "config", "environment")
|
|
require "generator"
|
|
|
|
addresses = User.count(
|
|
:conditions => {
|
|
:status => %w[suspended deleted],
|
|
:creation_time => Time.now.utc - 28.days..Time.now.utc
|
|
},
|
|
:group => :creation_ip
|
|
)
|
|
|
|
addresses.each do |address, count|
|
|
next unless count > 1
|
|
next if Acl.exists?(:address => address)
|
|
|
|
Acl.create({
|
|
:address => address,
|
|
:k => "no_account_creation",
|
|
:v => "auto_spam_block"
|
|
}, { :without_protection => true })
|
|
|
|
puts "Blocked #{address}"
|
|
end
|
|
|
|
acls = Acl.find(:all, :conditions => {
|
|
:k => "no_account_creation",
|
|
:v => "auto_spam_block"
|
|
})
|
|
|
|
acls.each do |acl|
|
|
next if addresses[acl.address]
|
|
|
|
acl.delete
|
|
|
|
puts "Unblocked #{acl.address}"
|
|
end
|
|
|
|
exit 0
|
|
|