mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +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{})
 | |
| }
 |