//重设密码 func (this *AuthController) ResetPassword() { code := this.Ctx.Input.Param(":code") user := models.User{} if !user.TestActivateCode(code) { this.Abort("403") } this.Data["code"] = code this.Data["PageTitle"] = fmt.Sprintf("重设密码 | %s", setting.AppName) this.Layout = "layout.html" this.TplNames = "reset-password.html" valid := validation.Validation{} form := ResetPasswordForm{} if this.Ctx.Request.Method == "POST" { if err := this.ParseForm(&form); err != nil { beego.Error(err) } b, err := valid.Valid(form) if err != nil { beego.Error(err) } if b { user.SetPassword(form.Password) if err := user.Update(); err != nil { beego.Error(err) this.Abort("500") } user.ConsumeActivateCode(code) this.FlashWrite("notice", "新密码已经生效,请重新登录!") this.Redirect("/login", 302) } else { this.Data["HasError"] = true this.Data["errors"] = valid.Errors } } }