mirror of
https://github.com/discourse/discourse.git
synced 2025-06-01 09:08:10 +08:00
FEATURE: Add email normalization rules setting (#14593)
When this setting is turned on, it will check that normalized emails are unique. Normalized emails are emails without any dots or plus aliases. This setting can be used to block use of aliases of the same email address.
This commit is contained in:
@ -26,6 +26,32 @@ describe UserEmail do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'normalized_email' do
|
||||
it 'checks if normalized email is unique' do
|
||||
SiteSetting.normalize_emails = true
|
||||
|
||||
user_email = user.user_emails.create(email: "a.b+c@example.com", primary: false)
|
||||
expect(user_email.normalized_email).to eq("ab@example.com")
|
||||
expect(user_email).to be_valid
|
||||
|
||||
user_email = user.user_emails.create(email: "a.b+d@example.com", primary: false)
|
||||
expect(user_email.normalized_email).to eq("ab@example.com")
|
||||
expect(user_email).not_to be_valid
|
||||
end
|
||||
|
||||
it 'does not check uniqueness if email normalization is not enabled' do
|
||||
SiteSetting.normalize_emails = false
|
||||
|
||||
user_email = user.user_emails.create(email: "a.b+c@example.com", primary: false)
|
||||
expect(user_email.normalized_email).to eq("ab@example.com")
|
||||
expect(user_email).to be_valid
|
||||
|
||||
user_email = user.user_emails.create(email: "a.b+d@example.com", primary: false)
|
||||
expect(user_email.normalized_email).to eq("ab@example.com")
|
||||
expect(user_email).to be_valid
|
||||
end
|
||||
end
|
||||
|
||||
context "indexes" do
|
||||
it "allows only one primary email" do
|
||||
expect {
|
||||
|
Reference in New Issue
Block a user