// Reset implemented user password reset. func (this *ForgotRouter) ResetPost() { this.TplNames = "auth/reset.html" code := this.GetString(":code") this.Data["Code"] = code var user models.User if models.VerifyUserResetPwdCode(&user, code) { this.Data["Success"] = true form := models.ResetPwdForm{} if this.ValidFormSets(&form) == false { return } user.IsActive = true user.Rands = models.GetUserSalt() if err := models.SaveNewPassword(&user, form.Password); err != nil { beego.Error("ResetPost Save New Password: "******"/login", 302, "ResetSuccess") } else { this.Data["Success"] = false } }
// ProfileSave implemented save user profile. func (this *SettingsRouter) ProfileSave() { this.TplNames = "settings/profile.html" if this.CheckLoginRedirect() { return } action := this.GetString("action") if this.IsAjax() { switch action { case "send-verify-email": if this.user.IsActive { this.Data["json"] = false } else { models.SendActiveMail(this.Locale, &this.user) this.Data["json"] = true } this.ServeJson() return } return } profileForm := models.ProfileForm{Locale: this.Locale} profileForm.SetFromUser(&this.user) pwdForm := models.PasswordForm{User: &this.user} this.Data["Form"] = profileForm switch action { case "save-profile": if this.ValidFormSets(&profileForm) { if err := profileForm.SaveUserProfile(&this.user); err != nil { beego.Error("ProfileSave: save-profile", err) } this.FlashRedirect("/settings/profile", 302, "ProfileSave") return } case "change-password": if this.ValidFormSets(&pwdForm) { // verify success and save new password if err := models.SaveNewPassword(&this.user, pwdForm.Password); err == nil { this.FlashRedirect("/settings/profile", 302, "PasswordSave") return } else { beego.Error("ProfileSave: change-password", err) } } default: this.Redirect("/settings/profile", 302) return } if action != "save-profile" { this.SetFormSets(&profileForm) } if action != "change-password" { this.SetFormSets(&pwdForm) } }