12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package base
- import (
- "net/http"
- "github.com/allanpk716/ChineseSubFinder/internal/types/backend"
- "github.com/allanpk716/ChineseSubFinder/pkg/common"
- "github.com/allanpk716/ChineseSubFinder/pkg/settings"
- "github.com/gin-gonic/gin"
- )
- func (cb ControllerBase) ChangePwdHandler(c *gin.Context) {
- var err error
- defer func() {
- // 统一的异常处理
- cb.ErrorProcess(c, "ChangePwdHandler", err)
- }()
- changePwd := backend.ReqChangePwd{}
- err = c.ShouldBindJSON(&changePwd)
- if err != nil {
- return
- }
- if settings.GetSettings().UserInfo.Username == "" || settings.GetSettings().UserInfo.Password == "" {
- // 配置文件中的账号和密码任意一个未空,提示用户需要进行 setup 流程
- c.JSON(http.StatusNoContent, backend.ReplyCommon{Message: "You need do `Setup`"})
- return
- }
- if settings.GetSettings().UserInfo.Password != changePwd.OrgPwd {
- // 原始的密码不对
- c.JSON(http.StatusNoContent, backend.ReplyCommon{Message: "Org Password Error"})
- } else {
- // 同意修改密码
- settings.GetSettings().UserInfo.Password = changePwd.NewPwd
- err = settings.GetSettings().Save()
- if err != nil {
- return
- }
- // 修改密码成功后,会清理 AccessToken,强制要求重写登录
- common.SetAccessToken("")
- c.JSON(http.StatusOK, backend.ReplyCommon{Message: "ok, need ReLogin"})
- }
- }
|