* Add honeypot fields to limit non-specialized spam Add two honeypot fields: a fake website input and a fake password confirmation one. The label/placeholder/aria-label tells not to fill them, and they are hidden in CSS, so legitimate users should not fall into these. This should cut down on some non-Mastodon-specific spambots. * Require a 3 seconds delay before submitting the registration form * Fix tests * Move registration form time check to model validation * Give people a chance to clear the honeypot fields * Refactor honeypot translation strings Co-authored-by: Claire <claire.github-309c@sitedethib.com>
		
			
				
	
	
		
			9 lines
		
	
	
	
		
			328 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			9 lines
		
	
	
	
		
			328 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| class RegistrationFormTimeValidator < ActiveModel::Validator
 | |
|   REGISTRATION_FORM_MIN_TIME = 3.seconds.freeze
 | |
| 
 | |
|   def validate(user)
 | |
|     user.errors.add(:base, I18n.t('auth.too_fast')) if user.registration_form_time.present? && user.registration_form_time > REGISTRATION_FORM_MIN_TIME.ago
 | |
|   end
 | |
| end
 |