feat: 引导管理员账号重置接口

This commit is contained in:
TsMask
2024-05-08 10:59:12 +08:00
parent 9abfe9b30e
commit 3dab7ac6d4
2 changed files with 58 additions and 6 deletions

View File

@@ -28,9 +28,10 @@ func Setup(router *gin.Engine) {
// 系统引导初始化 // 系统引导初始化
guideGroup := router.Group("/bootloader") guideGroup := router.Group("/bootloader")
{ {
guideGroup.POST("", controller.NewBootloader.BootloaderStart) guideGroup.POST("", controller.NewBootloader.Start)
guideGroup.PUT("", middleware.PreAuthorize(nil), controller.NewBootloader.BootloaderDone) guideGroup.PUT("", middleware.PreAuthorize(nil), controller.NewBootloader.Done)
guideGroup.DELETE("", middleware.PreAuthorize(nil), controller.NewBootloader.BootloaderReset) guideGroup.DELETE("", middleware.PreAuthorize(nil), controller.NewBootloader.Reset)
guideGroup.PUT("/account", middleware.PreAuthorize(nil), controller.NewBootloader.Account)
} }
// 验证码操作处理 // 验证码操作处理

View File

@@ -4,8 +4,10 @@ import (
adminConstants "be.ems/src/framework/constants/admin" adminConstants "be.ems/src/framework/constants/admin"
"be.ems/src/framework/constants/common" "be.ems/src/framework/constants/common"
tokenConstants "be.ems/src/framework/constants/token" tokenConstants "be.ems/src/framework/constants/token"
"be.ems/src/framework/i18n"
"be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/ctx"
"be.ems/src/framework/utils/machine" "be.ems/src/framework/utils/machine"
"be.ems/src/framework/utils/regular"
tokenUtils "be.ems/src/framework/utils/token" tokenUtils "be.ems/src/framework/utils/token"
"be.ems/src/framework/vo" "be.ems/src/framework/vo"
"be.ems/src/framework/vo/result" "be.ems/src/framework/vo/result"
@@ -33,7 +35,7 @@ type BootloaderController struct {
// 首次引导开始 // 首次引导开始
// //
// POST / // POST /
func (s *BootloaderController) BootloaderStart(c *gin.Context) { func (s *BootloaderController) Start(c *gin.Context) {
// 是否完成引导 // 是否完成引导
launchInfo := machine.LaunchInfo launchInfo := machine.LaunchInfo
if launchInfo == nil { if launchInfo == nil {
@@ -81,7 +83,7 @@ func (s *BootloaderController) BootloaderStart(c *gin.Context) {
// 首次引导完成 // 首次引导完成
// //
// PUT / // PUT /
func (s *BootloaderController) BootloaderDone(c *gin.Context) { func (s *BootloaderController) Done(c *gin.Context) {
// 是否完成引导 // 是否完成引导
launchInfo := machine.LaunchInfo launchInfo := machine.LaunchInfo
if launchInfo == nil { if launchInfo == nil {
@@ -107,7 +109,7 @@ func (s *BootloaderController) BootloaderDone(c *gin.Context) {
// 引导系统数据重置 // 引导系统数据重置
// //
// DELETE / // DELETE /
func (s *BootloaderController) BootloaderReset(c *gin.Context) { func (s *BootloaderController) Reset(c *gin.Context) {
// 是否完成引导 // 是否完成引导
launchInfo := machine.LaunchInfo launchInfo := machine.LaunchInfo
if launchInfo == nil { if launchInfo == nil {
@@ -128,3 +130,52 @@ func (s *BootloaderController) BootloaderReset(c *gin.Context) {
tokenUtils.Remove(ctx.Authorization(c)) tokenUtils.Remove(ctx.Authorization(c))
c.JSON(200, result.Ok(nil)) c.JSON(200, result.Ok(nil))
} }
// 账号变更
//
// PUT /account
func (s *BootloaderController) Account(c *gin.Context) {
language := ctx.AcceptLanguage(c)
var body struct {
UserName string `json:"username" binding:"required"`
Password string `json:"password" binding:"required"`
}
if err := c.ShouldBindJSON(&body); err != nil {
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
return
}
if !regular.ValidPassword(body.Password) {
// 登录密码至少包含大小写字母、数字、特殊符号且不少于6位
c.JSON(200, result.ErrMsg(i18n.TKey(language, "user.errPasswd")))
return
}
// 是否完成引导
launchInfo := machine.LaunchInfo
if launchInfo == nil {
c.JSON(200, result.Err(nil))
return
}
if v, ok := launchInfo[common.LAUNCH_BOOTLOADER]; ok && !v.(bool) {
c.JSON(200, result.ErrMsg("bootloader done"))
return
}
// 查询用户登录账号
sysUser := s.sysUserService.SelectUserById("2")
if sysUser.UserID != "2" {
c.JSON(200, result.ErrMsg("not found user data"))
return
}
sysUser.UserName = body.UserName
sysUser.NickName = body.UserName
sysUser.Password = body.Password
sysUser.UpdateBy = ctx.LoginUserToUserName(c)
rows := s.sysUserService.UpdateUser(sysUser)
if rows > 0 {
c.JSON(200, result.Ok(nil))
return
}
c.JSON(200, result.Err(nil))
}