github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/models/scripts/reset.go (about)

     1  package scripts
     2  
     3  import (
     4  	"context"
     5  	model "github.com/cloudreve/Cloudreve/v3/models"
     6  	"github.com/cloudreve/Cloudreve/v3/pkg/util"
     7  	"github.com/fatih/color"
     8  )
     9  
    10  type ResetAdminPassword int
    11  
    12  // Run 运行脚本从社区版升级至 Pro 版
    13  func (script ResetAdminPassword) Run(ctx context.Context) {
    14  	// 查找用户
    15  	user, err := model.GetUserByID(1)
    16  	if err != nil {
    17  		util.Log().Panic("Initial admin user not exist: %s", err)
    18  	}
    19  
    20  	// 生成密码
    21  	password := util.RandStringRunes(8)
    22  
    23  	// 更改为新密码
    24  	user.SetPassword(password)
    25  	if err := user.Update(map[string]interface{}{"password": user.Password}); err != nil {
    26  		util.Log().Panic("Failed to update password: %s", err)
    27  	}
    28  
    29  	c := color.New(color.FgWhite).Add(color.BgBlack).Add(color.Bold)
    30  	util.Log().Info("Initial admin user password changed to:" + c.Sprint(password))
    31  }