KunWeb/web/admin/rigger/chgpass.go
2025-05-16 01:00:48 +08:00

59 lines
1.3 KiB
Go

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)
}