lib/antispam/tools.rb in antispam-0.1.4 vs lib/antispam/tools.rb in antispam-0.1.5
- old
+ new
@@ -1,48 +1,55 @@
-module Antispam
- module Tools
- # before_action :check_ip_against_database
- def check_ip_against_database(options = {ip_blacklists: {default: ''}})
- return if request.get?
- return if skip_if_user_whitelisted
- return if controller_name == "validate"
- ip = request.remote_ip
- # First, check IP blacklists.
- if (options[:ip_blacklists])
- if options[:ip_blacklists][:default]
- options[:ip_blacklists][:httpbl] = options[:ip_blacklists][:default]
- options[:ip_blacklists].delete(:default)
- end
- check_ip_against_blacklists(ip, options[:ip_blacklists], options[:verbose])
- end
- # Second, check for weird countries.
- if (options[:scrutinize_countries_except])
-
- end
- Rails.logger.info "Got to this function. #{ip}"
- puts "Got to this function. #{ip}"
- end
- def check_ip_against_blacklists(ip, lists, verbose)
- lists.each do |provider_name, provider_api_key|
- puts "Checking provider: #{provider_name}" if verbose
- if provider_name == :httpbl
- result = Antispam::Blacklists::Httpbl.check(ip, provider_api_key)
- puts result if verbose
- if (result > 30)
- Block.create(ip: ip, provider: provider_name, threat: result)
- redirect_to '/antispam/validate'
- end
- end
- end
- end
-
- def skip_if_user_whitelisted
- if respond_to? :current_user
- if current_user && current_user.respond_to?(:antispam_whitelisted?)
- return true if current_user.antispam_whitelisted?
- end
- end
- end
-
-
- end
-end
+module Antispam
+ module Tools
+ # before_action :check_ip_against_database
+ def check_ip_against_database(options = {ip_blacklists: {default: ''}})
+ if (options[:methods])
+ return if request.get? unless options[:methods].include?(:get)
+ return if request.post? unless options[:methods].include?(:post)
+ return if request.put? unless options[:methods].include?(:put)
+ return if request.patch? unless options[:methods].include?(:patch)
+ return if request.delete? unless options[:methods].include?(:delete)
+ else
+ return if request.get?
+ end
+ return if skip_if_user_whitelisted
+ return if controller_name == "validate"
+ ip = request.remote_ip
+ # First, check IP blacklists.
+ if (options[:ip_blacklists])
+ if options[:ip_blacklists][:default]
+ options[:ip_blacklists][:httpbl] = options[:ip_blacklists][:default]
+ options[:ip_blacklists].delete(:default)
+ end
+ check_ip_against_blacklists(ip, options[:ip_blacklists], options[:verbose])
+ end
+ # Second, check for weird countries.
+ if (options[:scrutinize_countries_except])
+
+ end
+ Rails.logger.info "Completed IP database check. #{ip}" if options[:verbose]
+ end
+ def check_ip_against_blacklists(ip, lists, verbose)
+ lists.each do |provider_name, provider_api_key|
+ puts "Checking provider: #{provider_name}" if verbose
+ if provider_name == :httpbl
+ result = Antispam::Blacklists::Httpbl.check(ip, provider_api_key, verbose)
+ Rails.logger.info(result) if verbose
+ if (result > 30)
+ Block.create(ip: ip, provider: provider_name, threat: result)
+ redirect_to '/antispam/validate'
+ end
+ end
+ end
+ end
+
+ def skip_if_user_whitelisted
+ if respond_to? :current_user
+ if current_user && current_user.respond_to?(:antispam_whitelisted?)
+ return true if current_user.antispam_whitelisted?
+ end
+ end
+ end
+
+
+ end
+end