Change e-mail whitelist/blacklist to not be checked when invited (#10683)
* Change e-mail whitelist/blacklist to not be checked when invited And only when creating an account, not when updating it later Fix #10648 * Fix test
This commit is contained in:
		
							parent
							
								
									cc9851a479
								
							
						
					
					
						commit
						c3b1f6963b
					
				
					 3 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -78,7 +78,7 @@ class User < ApplicationRecord
 | 
			
		|||
  accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? }
 | 
			
		||||
 | 
			
		||||
  validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
 | 
			
		||||
  validates_with BlacklistedEmailValidator, if: :email_changed?
 | 
			
		||||
  validates_with BlacklistedEmailValidator, on: :create
 | 
			
		||||
  validates_with EmailMxValidator, if: :validate_email_dns?
 | 
			
		||||
  validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,10 @@
 | 
			
		|||
 | 
			
		||||
class BlacklistedEmailValidator < ActiveModel::Validator
 | 
			
		||||
  def validate(user)
 | 
			
		||||
    return if user.invited?
 | 
			
		||||
 | 
			
		||||
    @email = user.email
 | 
			
		||||
 | 
			
		||||
    user.errors.add(:email, I18n.t('users.invalid_email')) if blocked_email?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
 | 
			
		|||
    let(:errors) { double(add: nil) }
 | 
			
		||||
 | 
			
		||||
    before do
 | 
			
		||||
      allow(user).to receive(:invited?) { false }
 | 
			
		||||
      allow_any_instance_of(described_class).to receive(:blocked_email?) { blocked_email }
 | 
			
		||||
      described_class.new.validate(user)
 | 
			
		||||
    end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue