更新前后端代码
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"filestoragesystem/internal/middleware"
|
||||
"filestoragesystem/internal/utils"
|
||||
)
|
||||
|
||||
// UserController 用户管理控制器(个人资料)
|
||||
type UserController struct {
|
||||
*Base
|
||||
}
|
||||
|
||||
// NewUserController 创建用户控制器
|
||||
func NewUserController(b *Base) *UserController { return &UserController{Base: b} }
|
||||
|
||||
// GetProfile 获取个人资料
|
||||
func (ctl *UserController) GetProfile(c *gin.Context) {
|
||||
userID := middleware.CurrentUserID(c)
|
||||
u, err := ctl.svc.User.GetProfile(userID)
|
||||
if err != nil {
|
||||
utils.NotFound(c, "用户不存在")
|
||||
return
|
||||
}
|
||||
utils.OK(c, u)
|
||||
}
|
||||
|
||||
type updateProfileReq struct {
|
||||
Email string `json:"email"`
|
||||
}
|
||||
|
||||
// UpdateProfile 更新个人资料
|
||||
func (ctl *UserController) UpdateProfile(c *gin.Context) {
|
||||
var req updateProfileReq
|
||||
if !bindJSON(c, &req) {
|
||||
return
|
||||
}
|
||||
userID := middleware.CurrentUserID(c)
|
||||
if err := ctl.svc.User.UpdateProfile(userID, req.Email); err != nil {
|
||||
utils.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
ctl.svc.RecordOpLog(ctl.opCtx(c), "update", "user", userID, "", true, "")
|
||||
utils.OKMsg(c, "资料已更新")
|
||||
}
|
||||
|
||||
type changePasswordReq struct {
|
||||
OldPassword string `json:"old_password" binding:"required"`
|
||||
NewPassword string `json:"new_password" binding:"required"`
|
||||
}
|
||||
|
||||
// ChangePassword 修改密码
|
||||
func (ctl *UserController) ChangePassword(c *gin.Context) {
|
||||
var req changePasswordReq
|
||||
if !bindJSON(c, &req) {
|
||||
return
|
||||
}
|
||||
userID := middleware.CurrentUserID(c)
|
||||
if err := ctl.svc.User.ChangePassword(userID, req.OldPassword, req.NewPassword); err != nil {
|
||||
ctl.svc.RecordOpLog(ctl.opCtx(c), "update", "user", userID, "password", false, err.Error())
|
||||
utils.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
ctl.svc.RecordOpLog(ctl.opCtx(c), "update", "user", userID, "password", true, "")
|
||||
utils.OKMsg(c, "密码已修改")
|
||||
}
|
||||
Reference in New Issue
Block a user