59 lines
1.3 KiB
Go
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)
|
|
}
|