package cmd import ( "fmt" "github.com/spf13/cobra" "hy2xs-admin/dao" "hy2xs-admin/util" "os" ) var resetCmd = &cobra.Command{ Use: "reset-admin", Short: "Reset admin username and password", Long: "Reset admin username and password.", Run: runReset, } func init() { rootCmd.AddCommand(resetCmd) } func runReset(cmd *cobra.Command, args []string) { username, err := util.RandomString(6) if err != nil { fmt.Println(err.Error()) os.Exit(1) } password, err := util.RandomString(6) if err != nil { fmt.Println(err.Error()) os.Exit(1) } if err = dao.InitSqliteDB(); err != nil { fmt.Println(err.Error()) os.Exit(1) } admin, err := dao.GetAdminUser("id = ?", 1) 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) } if err = dao.CloseSqliteDB(); err != nil { fmt.Println(err.Error()) os.Exit(1) } fmt.Println(fmt.Sprintf("HY2XS admin Login Username: %s", username)) fmt.Println(fmt.Sprintf("HY2XS admin Login Password: %s", password)) }