Extract SIGN_COUNT_LIMIT constant in WebauthnCredential class (#30636)
				
					
				
			This commit is contained in:
		
							parent
							
								
									921b0db544
								
							
						
					
					
						commit
						d818ddd687
					
				@ -15,9 +15,11 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class WebauthnCredential < ApplicationRecord
 | 
					class WebauthnCredential < ApplicationRecord
 | 
				
			||||||
 | 
					  SIGN_COUNT_LIMIT = (2**63)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  validates :external_id, :public_key, :nickname, :sign_count, presence: true
 | 
					  validates :external_id, :public_key, :nickname, :sign_count, presence: true
 | 
				
			||||||
  validates :external_id, uniqueness: true
 | 
					  validates :external_id, uniqueness: true
 | 
				
			||||||
  validates :nickname, uniqueness: { scope: :user_id }
 | 
					  validates :nickname, uniqueness: { scope: :user_id }
 | 
				
			||||||
  validates :sign_count,
 | 
					  validates :sign_count,
 | 
				
			||||||
            numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: (2**63) - 1 }
 | 
					            numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: SIGN_COUNT_LIMIT - 1 }
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -71,8 +71,8 @@ RSpec.describe WebauthnCredential do
 | 
				
			|||||||
      expect(webauthn_credential).to model_have_error_on_field(:sign_count)
 | 
					      expect(webauthn_credential).to model_have_error_on_field(:sign_count)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it 'is invalid if sign_count is greater 2**63 - 1' do
 | 
					    it 'is invalid if sign_count is greater than the limit' do
 | 
				
			||||||
      webauthn_credential = Fabricate.build(:webauthn_credential, sign_count: 2**63)
 | 
					      webauthn_credential = Fabricate.build(:webauthn_credential, sign_count: (described_class::SIGN_COUNT_LIMIT * 2))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      webauthn_credential.valid?
 | 
					      webauthn_credential.valid?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user