mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-25 16:08:46 +09:00
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wxiaoguang <2114189+wxiaoguang@users.noreply.github.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
// Copyright 2025 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package v1_24
|
|
|
|
import (
|
|
"code.gitea.io/gitea/models/db"
|
|
"code.gitea.io/gitea/modules/json"
|
|
|
|
"xorm.io/xorm"
|
|
)
|
|
|
|
func MigrateSkipTwoFactor(x db.EngineMigration) error {
|
|
type LoginSource struct {
|
|
TwoFactorPolicy string `xorm:"two_factor_policy NOT NULL DEFAULT ''"`
|
|
}
|
|
_, err := x.SyncWithOptions(
|
|
xorm.SyncOptions{
|
|
IgnoreConstrains: true,
|
|
IgnoreIndices: true,
|
|
},
|
|
new(LoginSource),
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
type LoginSourceSimple struct {
|
|
ID int64
|
|
Cfg string
|
|
}
|
|
|
|
var loginSources []LoginSourceSimple
|
|
err = x.Table("login_source").Find(&loginSources)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, source := range loginSources {
|
|
if source.Cfg == "" {
|
|
continue
|
|
}
|
|
|
|
var cfg map[string]any
|
|
err = json.Unmarshal([]byte(source.Cfg), &cfg)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if cfg["SkipLocalTwoFA"] == true {
|
|
_, err = x.Exec("UPDATE login_source SET two_factor_policy = 'skip' WHERE id = ?", source.ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|