fix26: полный прод-фикс auth/jwt, import-export peer и frontend flow
This commit is contained in:
+45
-15
@@ -4,8 +4,10 @@ import (
|
||||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
"hy2xs-admin/dao"
|
||||
"hy2xs-admin/model/entity"
|
||||
"hy2xs-admin/util"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var resetCmd = &cobra.Command{
|
||||
@@ -30,25 +32,53 @@ func runReset(cmd *cobra.Command, args []string) {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
if err = dao.InitSqliteDB(); err != nil {
|
||||
if err = dao.InitSql(""); err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
admin, err := dao.GetAdminUser("id = ?", 1)
|
||||
admin, err := dao.GetAdminUser("1 = 1")
|
||||
nowMs := time.Now().UnixMilli()
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
if err = dao.UpdateAdminUser([]int64{*admin.Id}, map[string]interface{}{
|
||||
"username": username,
|
||||
"password_hash": func() string {
|
||||
hash, _ := util.HashPassword(password)
|
||||
return hash
|
||||
}(),
|
||||
"force_password_change": 1,
|
||||
}); err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
tokenVersion := int64(1)
|
||||
status := int64(1)
|
||||
forcePasswordChange := int64(1)
|
||||
passwordChangedAt := nowMs
|
||||
hash, hashErr := util.HashPassword(password)
|
||||
if hashErr != nil {
|
||||
fmt.Println(hashErr.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
adminUser := entity.AdminUser{
|
||||
Username: &username,
|
||||
PasswordHash: &hash,
|
||||
Status: &status,
|
||||
ForcePasswordChange: &forcePasswordChange,
|
||||
PasswordChangedAt: &passwordChangedAt,
|
||||
TokenVersion: &tokenVersion,
|
||||
}
|
||||
if _, saveErr := dao.SaveAdminUser(adminUser); saveErr != nil {
|
||||
fmt.Println(saveErr.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
} else {
|
||||
tokenVersion := int64(1)
|
||||
if admin.TokenVersion != nil && *admin.TokenVersion > 0 {
|
||||
tokenVersion = *admin.TokenVersion + 1
|
||||
}
|
||||
if err = dao.UpdateAdminUser([]int64{*admin.Id}, map[string]interface{}{
|
||||
"username": username,
|
||||
"password_hash": func() string {
|
||||
hash, _ := util.HashPassword(password)
|
||||
return hash
|
||||
}(),
|
||||
"force_password_change": 1,
|
||||
"password_changed_at": nowMs,
|
||||
"token_version": tokenVersion,
|
||||
"status": 1,
|
||||
}); err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
if err = dao.CloseSqliteDB(); err != nil {
|
||||
fmt.Println(err.Error())
|
||||
|
||||
Reference in New Issue
Block a user