mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	- For WebAuthn Credential level 3, the `backup_eligible` and `backup_state` flags are checked if they are consistent with the values given on login. Forgejo never stored this data, so add a database migration that makes all webauthn credentials 'legacy' and on the next first use capture the values of `backup_eligible` and `backup_state`. As suggested in https://github.com/go-webauthn/webauthn/discussions/219#discussioncomment-10429662 - Adds unit tests. - Add E2E test.
		
			
				
	
	
		
			17 lines
		
	
	
	
		
			505 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
	
		
			505 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2024 The Forgejo Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package forgejo_migrations //nolint:revive
 | 
						|
 | 
						|
import "xorm.io/xorm"
 | 
						|
 | 
						|
func AddLegacyToWebAuthnCredential(x *xorm.Engine) error {
 | 
						|
	type WebauthnCredential struct {
 | 
						|
		ID             int64 `xorm:"pk autoincr"`
 | 
						|
		BackupEligible bool  `xorm:"NOT NULL DEFAULT false"`
 | 
						|
		BackupState    bool  `xorm:"NOT NULL DEFAULT false"`
 | 
						|
		Legacy         bool  `xorm:"NOT NULL DEFAULT true"`
 | 
						|
	}
 | 
						|
 | 
						|
	return x.Sync(&WebauthnCredential{})
 | 
						|
}
 |