48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package user
|
|
|
|
import (
|
|
"SciencesServer/app/api/admin/model"
|
|
model2 "SciencesServer/app/common/model"
|
|
"SciencesServer/app/session"
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
type Person struct{ *session.Admin }
|
|
|
|
type PersonHandle func(session *session.Admin) *Person
|
|
|
|
// EditPassword 修改密码
|
|
func (c *Person) EditPassword(oldPassword, password, repeatPwd string) error {
|
|
if password != repeatPwd {
|
|
return errors.New("两次密码不一致")
|
|
}
|
|
mSysUser := model.NewSysUser()
|
|
|
|
isExist, err := model2.FirstWhere(mSysUser.SysUser, model2.NewWhere("uuid", c.UID))
|
|
|
|
if err != nil {
|
|
return err
|
|
} else if !isExist {
|
|
return errors.New("用户信息不存在或已被删除")
|
|
}
|
|
if !mSysUser.ValidatePassword(oldPassword) {
|
|
return errors.New("旧密码错误")
|
|
}
|
|
mSysUser.Password = password
|
|
mSysUser.Pass()
|
|
|
|
if err = model2.Updates(mSysUser.SysUser, map[string]interface{}{
|
|
"password": mSysUser.Password, "salt": mSysUser.Salt, "updated_at": time.Now(),
|
|
}); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func NewPerson() PersonHandle {
|
|
return func(session *session.Admin) *Person {
|
|
return &Person{Admin: session}
|
|
}
|
|
}
|