53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package rigger
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"ciyon/web/admin"
|
|
c "ciyon/zciyon"
|
|
)
|
|
|
|
func Chgpass_update(w http.ResponseWriter, r *http.Request) bool {
|
|
post := c.NewCiyPost(w, r)
|
|
_, userid := admin.Verifyfast(r, c.CiyDB, post)
|
|
if userid == 0 {
|
|
return false
|
|
}
|
|
oldpass := post.Get("oldpass")
|
|
newpass := post.Get("newpass")
|
|
if oldpass == "" {
|
|
return c.ErrJSON(w, "请输入原密码")
|
|
}
|
|
if newpass == "" {
|
|
return c.ErrJSON(w, "请输入新密码")
|
|
}
|
|
|
|
csql := c.NewCiySQL("zc_admin")
|
|
csql.Where("id", userid)
|
|
userrow, err := c.CiyDB.Getone(csql)
|
|
if userrow == nil {
|
|
return c.ErrJSON(w, "遇到读取错误", err)
|
|
}
|
|
if c.Tostr(userrow["password"]) != oldpass {
|
|
return c.ErrJSON(w, "原密码错误")
|
|
}
|
|
|
|
err = c.CiyDB.Tran(func() error {
|
|
updata := map[string]any{}
|
|
updata["password"] = newpass
|
|
csql = c.NewCiySQL("zc_admin")
|
|
csql.Where("id", userid)
|
|
_, err = c.CiyDB.Update(csql, updata)
|
|
if err != nil {
|
|
return fmt.Errorf("更新失败:%v", err)
|
|
}
|
|
admin.SaveLog(c.CiyDB, "PASSWORD", "已修改密码")
|
|
return nil
|
|
})
|
|
if err != nil {
|
|
return c.ErrJSON(w, "事务"+err.Error())
|
|
}
|
|
return c.SuccJSON(w, r)
|
|
}
|