fix🐛: Fix password reset caused by modifying user information

This commit is contained in:
zhangwenjian
2022-03-05 11:00:52 +08:00
parent f998d20a86
commit 4876fc0aa1
2 changed files with 33 additions and 22 deletions
+30 -16
View File
@@ -2,6 +2,7 @@ package apis
import ( import (
"github.com/gin-gonic/gin/binding" "github.com/gin-gonic/gin/binding"
"github.com/go-admin-team/go-admin-core/sdk/config"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"net/http" "net/http"
@@ -30,7 +31,7 @@ type SysUser struct {
// @Security Bearer // @Security Bearer
func (e SysUser) GetPage(c *gin.Context) { func (e SysUser) GetPage(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.SysUserGetPageReq{} req := dto.SysUserGetPageReq{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req). Bind(&req).
@@ -67,7 +68,7 @@ func (e SysUser) GetPage(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) Get(c *gin.Context) { func (e SysUser) Get(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.SysUserById{} req := dto.SysUserById{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req, nil). Bind(&req, nil).
@@ -101,7 +102,7 @@ func (e SysUser) Get(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) Insert(c *gin.Context) { func (e SysUser) Insert(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.SysUserInsertReq{} req := dto.SysUserInsertReq{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req, binding.JSON). Bind(&req, binding.JSON).
@@ -136,7 +137,7 @@ func (e SysUser) Insert(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) Update(c *gin.Context) { func (e SysUser) Update(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.SysUserUpdateReq{} req := dto.SysUserUpdateReq{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req). Bind(&req).
@@ -171,7 +172,7 @@ func (e SysUser) Update(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) Delete(c *gin.Context) { func (e SysUser) Delete(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.SysUserById{} req := dto.SysUserById{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req, binding.JSON). Bind(&req, binding.JSON).
@@ -208,7 +209,7 @@ func (e SysUser) Delete(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) InsetAvatar(c *gin.Context) { func (e SysUser) InsetAvatar(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.UpdateSysUserAvatarReq{} req := dto.UpdateSysUserAvatarReq{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
MakeService(&s.Service). MakeService(&s.Service).
@@ -257,7 +258,7 @@ func (e SysUser) InsetAvatar(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) UpdateStatus(c *gin.Context) { func (e SysUser) UpdateStatus(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.UpdateSysUserStatusReq{} req := dto.UpdateSysUserStatusReq{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req, binding.JSON, nil). Bind(&req, binding.JSON, nil).
@@ -294,7 +295,7 @@ func (e SysUser) UpdateStatus(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) ResetPwd(c *gin.Context) { func (e SysUser) ResetPwd(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.ResetSysUserPwdReq{} req := dto.ResetSysUserPwdReq{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req, binding.JSON). Bind(&req, binding.JSON).
@@ -311,16 +312,23 @@ func (e SysUser) ResetPwd(c *gin.Context) {
//数据权限检查 //数据权限检查
p := actions.GetPermissionFromContext(c) p := actions.GetPermissionFromContext(c)
if req.UserId == 1 && config.ApplicationConfig.Mode == "demo" {
req.Password = "123456"
}
err = s.ResetPwd(&req, p) err = s.ResetPwd(&req, p)
if err != nil { if err != nil {
e.Logger.Error(err) e.Logger.Error(err)
return return
} }
e.OK(req.GetId(), "更新成功") if req.UserId == 1 && config.ApplicationConfig.Mode == "demo" {
e.OK(req.GetId(), "admin:现在使用的预览环境,休想改掉我!否则会影响其他朋友体验的哦!可以创建其他用户体验该功能!")
} else {
e.OK(req.GetId(), "更新成功")
}
} }
// UpdatePwd // UpdatePwd
// @Summary 重置密码 // @Summary 修改密码
// @Description 获取JSON // @Description 获取JSON
// @Tags 用户 // @Tags 用户
// @Accept application/json // @Accept application/json
@@ -331,7 +339,7 @@ func (e SysUser) ResetPwd(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) UpdatePwd(c *gin.Context) { func (e SysUser) UpdatePwd(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.PassWord{} req := dto.PassWord{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
Bind(&req). Bind(&req).
@@ -345,14 +353,20 @@ func (e SysUser) UpdatePwd(c *gin.Context) {
// 数据权限检查 // 数据权限检查
p := actions.GetPermissionFromContext(c) p := actions.GetPermissionFromContext(c)
if user.GetUserId(c) == 1 && config.ApplicationConfig.Mode == "demo" {
req.NewPassword = "123456"
}
err = s.UpdatePwd(user.GetUserId(c), req.OldPassword, req.NewPassword, p) err = s.UpdatePwd(user.GetUserId(c), req.OldPassword, req.NewPassword, p)
if err != nil { if err != nil {
e.Logger.Error(err) e.Logger.Error(err)
e.Error(http.StatusForbidden, err, "密码修改失败") e.Error(http.StatusForbidden, err, "密码修改失败")
return return
} }
e.OK(nil, "密码修改成功") if user.GetUserId(c) == 1 && config.ApplicationConfig.Mode == "demo" {
e.OK(nil, "admin:现在使用的预览环境,休想改掉我!否则会影响其他朋友体验的哦!可以创建其他用户体验该功能!")
} else {
e.OK(nil, "密码修改成功")
}
} }
// GetProfile // GetProfile
@@ -364,7 +378,7 @@ func (e SysUser) UpdatePwd(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysUser) GetProfile(c *gin.Context) { func (e SysUser) GetProfile(c *gin.Context) {
s := service.SysUser{} s := service.SysUser{}
req :=dto.SysUserById{} req := dto.SysUserById{}
err := e.MakeContext(c). err := e.MakeContext(c).
MakeOrm(). MakeOrm().
MakeService(&s.Service). MakeService(&s.Service).
@@ -401,7 +415,7 @@ func (e SysUser) GetProfile(c *gin.Context) {
// @Router /api/v1/getinfo [get] // @Router /api/v1/getinfo [get]
// @Security Bearer // @Security Bearer
func (e SysUser) GetInfo(c *gin.Context) { func (e SysUser) GetInfo(c *gin.Context) {
req :=dto.SysUserById{} req := dto.SysUserById{}
s := service.SysUser{} s := service.SysUser{}
r := service.SysRole{} r := service.SysRole{}
err := e.MakeContext(c). err := e.MakeContext(c).
@@ -450,4 +464,4 @@ func (e SysUser) GetInfo(c *gin.Context) {
mp["name"] = sysUser.NickName mp["name"] = sysUser.NickName
mp["code"] = 200 mp["code"] = 200
e.OK(mp, "") e.OK(mp, "")
} }
+3 -6
View File
@@ -127,8 +127,7 @@ func (e *SysUser) UpdateAvatar(c *dto.UpdateSysUserAvatarReq, p *actions.DataPer
return errors.New("无权更新该数据") return errors.New("无权更新该数据")
} }
c.Generate(&model) err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error
err = e.Orm.Save(&model).Error
if err != nil { if err != nil {
e.Log.Errorf("Service UpdateSysUser error: %s", err) e.Log.Errorf("Service UpdateSysUser error: %s", err)
return err return err
@@ -151,8 +150,7 @@ func (e *SysUser) UpdateStatus(c *dto.UpdateSysUserStatusReq, p *actions.DataPer
return errors.New("无权更新该数据") return errors.New("无权更新该数据")
} }
c.Generate(&model) err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error
err = e.Orm.Save(&model).Error
if err != nil { if err != nil {
e.Log.Errorf("Service UpdateSysUser error: %s", err) e.Log.Errorf("Service UpdateSysUser error: %s", err)
return err return err
@@ -174,8 +172,7 @@ func (e *SysUser) ResetPwd(c *dto.ResetSysUserPwdReq, p *actions.DataPermission)
if db.RowsAffected == 0 { if db.RowsAffected == 0 {
return errors.New("无权更新该数据") return errors.New("无权更新该数据")
} }
c.Generate(&model) err = e.Orm.Table(model.TableName()).Where("user_id =? ", c.UserId).Updates(c).Error
err = e.Orm.Save(&model).Error
if err != nil { if err != nil {
e.Log.Errorf("At Service ResetSysUserPwd error: %s", err) e.Log.Errorf("At Service ResetSysUserPwd error: %s", err)
return err return err