forgejo/models/forgejo_migrations/v22.go
Gusted 63736e8301
[FEAT] Add support for webauthn credential level 3
- 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.
2024-08-29 10:05:03 +02:00

18 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{})
}