* blacklist email feature
This commit is contained in:
parent
1d532cc305
commit
54cbfc69f0
|
|
@ -0,0 +1,14 @@
|
||||||
|
ActiveAdmin.register JamRuby::EmailBlacklist, :as => 'Email Blacklist' do
|
||||||
|
|
||||||
|
menu :label => 'Email Blacklist', :parent => 'Operations'
|
||||||
|
|
||||||
|
config.sort_order = 'created_at desc'
|
||||||
|
config.batch_actions = false
|
||||||
|
|
||||||
|
index do
|
||||||
|
column :email
|
||||||
|
column :source
|
||||||
|
column :notes
|
||||||
|
column :created_at
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -337,3 +337,4 @@ add_sale_source_col.sql
|
||||||
jamblaster_v2.sql
|
jamblaster_v2.sql
|
||||||
acapella_rename.sql
|
acapella_rename.sql
|
||||||
jamblaster_pairing_active.sql
|
jamblaster_pairing_active.sql
|
||||||
|
email_blacklist.sql
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
CREATE TABLE email_blacklists (
|
||||||
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
|
||||||
|
email VARCHAR(1000) UNIQUE NOT NULL,
|
||||||
|
source VARCHAR(1000),
|
||||||
|
notes VARCHAR(1000),
|
||||||
|
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL,
|
||||||
|
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE jamblasters DROP COLUMN vtoken;
|
||||||
|
|
@ -114,6 +114,7 @@ require "jam_ruby/models/machine_extra"
|
||||||
require "jam_ruby/models/download_tracker"
|
require "jam_ruby/models/download_tracker"
|
||||||
require "jam_ruby/models/ip_blacklist"
|
require "jam_ruby/models/ip_blacklist"
|
||||||
require "jam_ruby/models/user_blacklist"
|
require "jam_ruby/models/user_blacklist"
|
||||||
|
require "jam_ruby/models/email_blacklist"
|
||||||
require "jam_ruby/models/ip_whitelist"
|
require "jam_ruby/models/ip_whitelist"
|
||||||
require "jam_ruby/models/user_whitelist"
|
require "jam_ruby/models/user_whitelist"
|
||||||
require "jam_ruby/models/fraud_alert"
|
require "jam_ruby/models/fraud_alert"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
module JamRuby
|
||||||
|
class EmailBlacklist < ActiveRecord::Base
|
||||||
|
|
||||||
|
attr_accessible :email, :source, :notes, as: :admin
|
||||||
|
|
||||||
|
@@log = Logging.logger[EmailBlacklist]
|
||||||
|
|
||||||
|
validates :email, uniqueness: true
|
||||||
|
|
||||||
|
def self.banned(user)
|
||||||
|
EmailBlacklist.count(:conditions => "email = '#{user.email.downcase}'") >= 1
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.listed(user)
|
||||||
|
EmailBlacklist.count(:conditions => "email= '#{user.id}'") == 1
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.admin_url
|
||||||
|
APP_CONFIG.admin_root_url + "/admin/email_blacklists/"
|
||||||
|
end
|
||||||
|
|
||||||
|
def admin_url
|
||||||
|
APP_CONFIG.admin_root_url + "/admin/email_blacklists/" + id
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
user
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -12,7 +12,6 @@ module JamRuby
|
||||||
validates :user, presence: true
|
validates :user, presence: true
|
||||||
|
|
||||||
validates :serial_no, uniqueness: true
|
validates :serial_no, uniqueness: true
|
||||||
validates :vtoken, uniqueness: true
|
|
||||||
validates :client_id, uniqueness: true
|
validates :client_id, uniqueness: true
|
||||||
|
|
||||||
before_save :sanitize_active_admin
|
before_save :sanitize_active_admin
|
||||||
|
|
|
||||||
|
|
@ -921,5 +921,9 @@ FactoryGirl.define do
|
||||||
factory :user_whitelist, class: "JamRuby::UserWhitelist" do
|
factory :user_whitelist, class: "JamRuby::UserWhitelist" do
|
||||||
association :user, factory: :user
|
association :user, factory: :user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
factory :email_blacklist, class: "JamRuby::EmailBlacklist" do
|
||||||
|
sequence(:email) { |n| "person_#{n}@example.com"}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe EmailBlacklist do
|
||||||
|
|
||||||
|
let(:user) { FactoryGirl.create(:user) }
|
||||||
|
|
||||||
|
describe "#banned" do
|
||||||
|
it "returns false if no ban" do
|
||||||
|
EmailBlacklist.banned(user).should eq false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true if banned" do
|
||||||
|
FactoryGirl.create(:email_blacklist, email: user.email)
|
||||||
|
EmailBlacklist.banned(user).should eq true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -163,6 +163,11 @@ module SessionsHelper
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if EmailBlacklist.banned(current_user)
|
||||||
|
Stats.write('web.blacklist.user', {value: 1, user_id: current_user.id})
|
||||||
|
render :json => { :message => "User blacklisted via email"}, :status => 403
|
||||||
|
end
|
||||||
|
|
||||||
if UserBlacklist.banned(current_user)
|
if UserBlacklist.banned(current_user)
|
||||||
Stats.write('web.blacklist.user', {value: 1, user_id: current_user.id})
|
Stats.write('web.blacklist.user', {value: 1, user_id: current_user.id})
|
||||||
render :json => { :message => "User blacklisted"}, :status => 403
|
render :json => { :message => "User blacklisted"}, :status => 403
|
||||||
|
|
|
||||||
|
|
@ -712,7 +712,7 @@ module JamWebsockets
|
||||||
end
|
end
|
||||||
|
|
||||||
# we have to deal with jamblaster before login
|
# we have to deal with jamblaster before login
|
||||||
if jamblaster_serial_no
|
if jamblaster_serial_no && jamblaster_serial_no != ''
|
||||||
jamblaster = Jamblaster.find_by_serial_no(jamblaster_serial_no)
|
jamblaster = Jamblaster.find_by_serial_no(jamblaster_serial_no)
|
||||||
if jamblaster
|
if jamblaster
|
||||||
jamblaster.client_id = client_id
|
jamblaster.client_id = client_id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue