|
|
@@ -2517,6 +2517,64 @@ func System_FindDataPermissionPage(c *entitys.CtrlContext) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+// _ModifyPassword
|
|
|
+// @Title _ModifyPassword
|
|
|
+// @Description 修改密码
|
|
|
+// @Param body models.ModifyPassword true ""
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_ModifyPassword(c *entitys.CtrlContext) {
|
|
|
+ var err error
|
|
|
+ var param models.ModifyPassword
|
|
|
+ if err = c.Ctx.BindJSON(¶m); err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var errmsg string
|
|
|
+ switch {
|
|
|
+ case param.Origin == "":
|
|
|
+ errmsg = "原密码不能为空"
|
|
|
+ case param.New == "":
|
|
|
+ errmsg = "新密码不能为空"
|
|
|
+ case param.Confirm == "":
|
|
|
+ errmsg = "确认密码不能为空"
|
|
|
+ case param.Confirm != param.New:
|
|
|
+ errmsg = "两次密码不一致"
|
|
|
+ }
|
|
|
+ if errmsg != "" {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, errmsg, nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ engine := c.PlatformDbEngine
|
|
|
+ var userId = c.Ctx.GetString("user_id")
|
|
|
+ if param.UserId == "" {
|
|
|
+ param.UserId = userId
|
|
|
+ }
|
|
|
+ var user sysmodel.SysUser
|
|
|
+ _, err = engine.ID(param.UserId).Get(&user)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ password := sysutils.HashPassword(param.Origin, "")
|
|
|
+ if !strings.EqualFold(password, user.Password) {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "原密码错误", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, err = engine.Table(user).ID(user.Id).
|
|
|
+ Update(map[string]interface{}{
|
|
|
+ "password": sysutils.HashPassword(param.New, ""),
|
|
|
+ "last_update_by": userId,
|
|
|
+ "last_update_time": time.Now().UnixNano(),
|
|
|
+ })
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "modify successfully", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func __none_func_system__(params ...interface{}) bool {
|
|
|
return true
|
|
|
}
|