mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 06:41:25 +08:00
added email whitelist SiteSetting feature to replicate email blacklist. email_validator method now also uses the regex method for both the whitelist and blacklist.
This commit is contained in:
@ -471,7 +471,12 @@ describe User do
|
||||
Fabricate.build(:user, email: 'notgood@trashmail.net').should_not be_valid
|
||||
Fabricate.build(:user, email: 'mailinator.com@gmail.com').should be_valid
|
||||
end
|
||||
|
||||
|
||||
it 'should not reject partial matches' do
|
||||
SiteSetting.stubs(:email_domains_blacklist).returns('mail.com')
|
||||
Fabricate.build(:user, email: 'mailinator@gmail.com').should be_valid
|
||||
end
|
||||
|
||||
it 'should reject some emails based on the email_domains_blacklist site setting ignoring case' do
|
||||
SiteSetting.stubs(:email_domains_blacklist).returns('trashmail.net')
|
||||
Fabricate.build(:user, email: 'notgood@TRASHMAIL.NET').should_not be_valid
|
||||
@ -494,6 +499,38 @@ describe User do
|
||||
u.email = 'nope@mailinator.com'
|
||||
u.should_not be_valid
|
||||
end
|
||||
|
||||
it 'whitelist should reject some emails based on the email_domains_whitelist site setting' do
|
||||
SiteSetting.stubs(:email_domains_whitelist).returns('vaynermedia.com')
|
||||
Fabricate.build(:user, email: 'notgood@mailinator.com').should_not be_valid
|
||||
Fabricate.build(:user, email: 'sbauch@vaynermedia.com').should be_valid
|
||||
end
|
||||
|
||||
it 'should reject some emails based on the email_domains_whitelist site setting when whitelisting multiple domains' do
|
||||
SiteSetting.stubs(:email_domains_whitelist).returns('vaynermedia.com|gmail.com')
|
||||
Fabricate.build(:user, email: 'notgood@mailinator.com').should_not be_valid
|
||||
Fabricate.build(:user, email: 'notgood@trashmail.net').should_not be_valid
|
||||
Fabricate.build(:user, email: 'mailinator.com@gmail.com').should be_valid
|
||||
Fabricate.build(:user, email: 'mailinator.com@vaynermedia.com').should be_valid
|
||||
end
|
||||
|
||||
it 'should accept some emails based on the email_domains_whitelist site setting ignoring case' do
|
||||
SiteSetting.stubs(:email_domains_whitelist).returns('vaynermedia.com')
|
||||
Fabricate.build(:user, email: 'good@VAYNERMEDIA.COM').should be_valid
|
||||
end
|
||||
|
||||
it 'email whitelist should not be used to validate existing records' do
|
||||
u = Fabricate(:user, email: 'in_before_whitelisted@fakemail.com')
|
||||
SiteSetting.stubs(:email_domains_blacklist).returns('vaynermedia.com')
|
||||
u.should be_valid
|
||||
end
|
||||
|
||||
it 'email whitelist should be used when email is being changed' do
|
||||
SiteSetting.stubs(:email_domains_whitelist).returns('vaynermedia.com')
|
||||
u = Fabricate(:user, email: 'good@vaynermedia.com')
|
||||
u.email = 'nope@mailinator.com'
|
||||
u.should_not be_valid
|
||||
end
|
||||
end
|
||||
|
||||
describe 'passwords' do
|
||||
|
Reference in New Issue
Block a user