Smail/server/controllers/settings.go
Jinnrry 826ac26636
Feature/v2.8.10 (#323)
v2.8.10

1、bug fix #317 #320

2、支持token方式验签,使用参考 PMail_Github/server/main_test.go:135

3、587端口 starttls 问题修复

4、imap 协议功能补全 Tnanks for @HanaKDev
2026-02-01 16:40:24 +08:00

43 lines
1.0 KiB
Go

package controllers
import (
"encoding/json"
"github.com/Jinnrry/pmail/db"
"github.com/Jinnrry/pmail/dto/response"
"github.com/Jinnrry/pmail/i18n"
"github.com/Jinnrry/pmail/utils/context"
"github.com/Jinnrry/pmail/utils/password"
log "github.com/sirupsen/logrus"
"io"
"net/http"
)
type modifyPasswordRequest struct {
Password string `json:"password"`
}
func ModifyPassword(ctx *context.Context, w http.ResponseWriter, req *http.Request) {
reqBytes, err := io.ReadAll(req.Body)
if err != nil {
log.Errorf("%+v", err)
}
var retData modifyPasswordRequest
err = json.Unmarshal(reqBytes, &retData)
if err != nil {
log.Errorf("%+v", err)
}
if retData.Password != "" {
encodePwd := password.Encode(retData.Password)
_, err := db.Instance.Table("user").Where("id=?", ctx.UserID).Update(map[string]interface{}{"password": encodePwd})
if err != nil {
response.NewErrorResponse(response.ServerError, i18n.GetText(ctx.Lang, "unknowError"), "").FPrint(w)
return
}
}
response.NewSuccessResponse(i18n.GetText(ctx.Lang, "succ")).FPrint(w)
}