Browse Source

feat: Random Initial Password for Admin (#117)

lejianwen 11 months ago
parent
commit
ff77014acb
1 changed files with 18 additions and 15 deletions
  1. 18 15
      cmd/apimain.go

+ 18 - 15
cmd/apimain.go

@@ -12,7 +12,7 @@ import (
12
 	"Gwen/lib/upload"
12
 	"Gwen/lib/upload"
13
 	"Gwen/model"
13
 	"Gwen/model"
14
 	"Gwen/service"
14
 	"Gwen/service"
15
-	"fmt"
15
+	"Gwen/utils"
16
 	"github.com/go-redis/redis/v8"
16
 	"github.com/go-redis/redis/v8"
17
 	"github.com/nicksnyder/go-i18n/v2/i18n"
17
 	"github.com/nicksnyder/go-i18n/v2/i18n"
18
 	"github.com/spf13/cobra"
18
 	"github.com/spf13/cobra"
@@ -54,10 +54,10 @@ var resetPwdCmd = &cobra.Command{
54
 		admin := service.AllService.UserService.InfoById(1)
54
 		admin := service.AllService.UserService.InfoById(1)
55
 		err := service.AllService.UserService.UpdatePassword(admin, pwd)
55
 		err := service.AllService.UserService.UpdatePassword(admin, pwd)
56
 		if err != nil {
56
 		if err != nil {
57
-			fmt.Printf("reset password fail! %v \n", err)
57
+			global.Logger.Error("reset password fail! ", err)
58
 			return
58
 			return
59
 		}
59
 		}
60
-		fmt.Printf("reset password success! \n")
60
+		global.Logger.Info("reset password success! ")
61
 	},
61
 	},
62
 }
62
 }
63
 var resetUserPwdCmd = &cobra.Command{
63
 var resetUserPwdCmd = &cobra.Command{
@@ -70,20 +70,20 @@ var resetUserPwdCmd = &cobra.Command{
70
 		pwd := args[1]
70
 		pwd := args[1]
71
 		uid, err := strconv.Atoi(userId)
71
 		uid, err := strconv.Atoi(userId)
72
 		if err != nil {
72
 		if err != nil {
73
-			fmt.Printf("userId must be int! \n")
73
+			global.Logger.Warn("userId must be int!")
74
 			return
74
 			return
75
 		}
75
 		}
76
 		if uid <= 0 {
76
 		if uid <= 0 {
77
-			fmt.Printf("userId must be greater than 0! \n")
77
+			global.Logger.Warn("userId must be greater than 0! ")
78
 			return
78
 			return
79
 		}
79
 		}
80
 		u := service.AllService.UserService.InfoById(uint(uid))
80
 		u := service.AllService.UserService.InfoById(uint(uid))
81
 		err = service.AllService.UserService.UpdatePassword(u, pwd)
81
 		err = service.AllService.UserService.UpdatePassword(u, pwd)
82
 		if err != nil {
82
 		if err != nil {
83
-			fmt.Printf("reset password fail! %v \n", err)
83
+			global.Logger.Warn("reset password fail! ", err)
84
 			return
84
 			return
85
 		}
85
 		}
86
-		fmt.Printf("reset password success! \n")
86
+		global.Logger.Info("reset password success!")
87
 	},
87
 	},
88
 }
88
 }
89
 
89
 
@@ -93,7 +93,7 @@ func init() {
93
 }
93
 }
94
 func main() {
94
 func main() {
95
 	if err := rootCmd.Execute(); err != nil {
95
 	if err := rootCmd.Execute(); err != nil {
96
-		fmt.Println(err)
96
+		global.Logger.Error(err)
97
 		os.Exit(1)
97
 		os.Exit(1)
98
 	}
98
 	}
99
 }
99
 }
@@ -175,7 +175,6 @@ func DatabaseAutoUpdate() {
175
 	if global.Config.Gorm.Type == config.TypeMysql {
175
 	if global.Config.Gorm.Type == config.TypeMysql {
176
 		//检查存不存在数据库,不存在则创建
176
 		//检查存不存在数据库,不存在则创建
177
 		dbName := db.Migrator().CurrentDatabase()
177
 		dbName := db.Migrator().CurrentDatabase()
178
-		fmt.Println("dbName", dbName)
179
 		if dbName == "" {
178
 		if dbName == "" {
180
 			dbName = global.Config.Mysql.Dbname
179
 			dbName = global.Config.Mysql.Dbname
181
 			// 移除 DSN 中的数据库名称,以便初始连接时不指定数据库
180
 			// 移除 DSN 中的数据库名称,以便初始连接时不指定数据库
@@ -187,18 +186,18 @@ func DatabaseAutoUpdate() {
187
 			// 获取底层的 *sql.DB 对象,并确保在程序退出时关闭连接
186
 			// 获取底层的 *sql.DB 对象,并确保在程序退出时关闭连接
188
 			sqlDBWithoutDB, err := dbWithoutDB.DB()
187
 			sqlDBWithoutDB, err := dbWithoutDB.DB()
189
 			if err != nil {
188
 			if err != nil {
190
-				fmt.Printf("获取底层 *sql.DB 对象失败: %v\n", err)
189
+				global.Logger.Error("获取底层 *sql.DB 对象失败: %v\n", err)
191
 				return
190
 				return
192
 			}
191
 			}
193
 			defer func() {
192
 			defer func() {
194
 				if err := sqlDBWithoutDB.Close(); err != nil {
193
 				if err := sqlDBWithoutDB.Close(); err != nil {
195
-					fmt.Printf("关闭连接失败: %v\n", err)
194
+					global.Logger.Error("关闭连接失败: %v\n", err)
196
 				}
195
 				}
197
 			}()
196
 			}()
198
 
197
 
199
 			err = dbWithoutDB.Exec("CREATE DATABASE IF NOT EXISTS " + dbName + " DEFAULT CHARSET utf8mb4").Error
198
 			err = dbWithoutDB.Exec("CREATE DATABASE IF NOT EXISTS " + dbName + " DEFAULT CHARSET utf8mb4").Error
200
 			if err != nil {
199
 			if err != nil {
201
-				fmt.Println(err)
200
+				global.Logger.Error(err)
202
 				return
201
 				return
203
 			}
202
 			}
204
 		}
203
 		}
@@ -235,7 +234,7 @@ func DatabaseAutoUpdate() {
235
 
234
 
236
 }
235
 }
237
 func Migrate(version uint) {
236
 func Migrate(version uint) {
238
-	fmt.Println("migrating....", version)
237
+	global.Logger.Info("migrating....", version)
239
 	err := global.DB.AutoMigrate(
238
 	err := global.DB.AutoMigrate(
240
 		&model.Version{},
239
 		&model.Version{},
241
 		&model.User{},
240
 		&model.User{},
@@ -255,7 +254,7 @@ func Migrate(version uint) {
255
 		&model.ServerCmd{},
254
 		&model.ServerCmd{},
256
 	)
255
 	)
257
 	if err != nil {
256
 	if err != nil {
258
-		fmt.Println("migrate err :=>", err)
257
+		global.Logger.Error("migrate err :=>", err)
259
 	}
258
 	}
260
 	global.DB.Create(&model.Version{Version: version})
259
 	global.DB.Create(&model.Version{Version: version})
261
 	//如果是初次则创建一个默认用户
260
 	//如果是初次则创建一个默认用户
@@ -289,7 +288,11 @@ func Migrate(version uint) {
289
 			IsAdmin:  &is_admin,
288
 			IsAdmin:  &is_admin,
290
 			GroupId:  1,
289
 			GroupId:  1,
291
 		}
290
 		}
292
-		admin.Password = service.AllService.UserService.EncryptPassword("admin")
291
+
292
+		// 生成随机密码
293
+		pwd := utils.RandomString(8)
294
+		global.Logger.Info("Admin Password Is: ", pwd)
295
+		admin.Password = service.AllService.UserService.EncryptPassword(pwd)
293
 		global.DB.Create(admin)
296
 		global.DB.Create(admin)
294
 	}
297
 	}
295
 
298