* 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
|
||||
acapella_rename.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/ip_blacklist"
|
||||
require "jam_ruby/models/user_blacklist"
|
||||
require "jam_ruby/models/email_blacklist"
|
||||
require "jam_ruby/models/ip_whitelist"
|
||||
require "jam_ruby/models/user_whitelist"
|
||||
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 :serial_no, uniqueness: true
|
||||
validates :vtoken, uniqueness: true
|
||||
validates :client_id, uniqueness: true
|
||||
|
||||
before_save :sanitize_active_admin
|
||||
|
|
|
|||
|
|
@ -921,5 +921,9 @@ FactoryGirl.define do
|
|||
factory :user_whitelist, class: "JamRuby::UserWhitelist" do
|
||||
association :user, factory: :user
|
||||
end
|
||||
|
||||
factory :email_blacklist, class: "JamRuby::EmailBlacklist" do
|
||||
sequence(:email) { |n| "person_#{n}@example.com"}
|
||||
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
|
||||
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)
|
||||
Stats.write('web.blacklist.user', {value: 1, user_id: current_user.id})
|
||||
render :json => { :message => "User blacklisted"}, :status => 403
|
||||
|
|
|
|||
|
|
@ -712,7 +712,7 @@ module JamWebsockets
|
|||
end
|
||||
|
||||
# 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)
|
||||
if jamblaster
|
||||
jamblaster.client_id = client_id
|
||||
|
|
|
|||
Loading…
Reference in New Issue