package rigger import ( "fmt" "net/http" "ciyon/web/admin" . "ciyon/zciyon" ) func Chgpass_update(w http.ResponseWriter, r *http.Request) bool { post := NewCiyPost(w, r) _, userid := admin.Verifyfast(CiyDB, post) if userid == 0 { return false } oldpass := post.Get("oldpass") newpass := post.Get("newpass") if oldpass == "" { return ErrJSON(w, "请输入原密码") } if newpass == "" { return ErrJSON(w, "请输入新密码") } if newpass == admin.Gdefpass { return ErrJSON(w, "新密码不要与默认密码相同") } if len(newpass) < 6 { return ErrJSON(w, "密码应至少6位") } csql := NewCiySQL("zc_admin") csql.Where("id", userid) userrow, err := CiyDB.Getone(csql) if userrow == nil { return ErrJSON(w, "遇到读取错误", err) } if Tostr(userrow["password"]) != MD5(oldpass+admin.Gtokensalt) { return ErrJSON(w, "原密码错误") } err = CiyDB.Tran(func() error { updata := map[string]any{} updata["password"] = MD5(newpass + admin.Gtokensalt) csql = NewCiySQL("zc_admin") csql.Where("id", userid) _, err = CiyDB.Update(csql, updata) if err != nil { return fmt.Errorf("更新失败:%v", err) } admin.SaveLog(CiyDB, "PASSWORD", "修改密码:"+Tostr(updata["password"])) return nil }) if err != nil { return ErrJSON(w, "事务"+err.Error()) } return SuccJSON(w) }