fix: align admin behavior and Kratos integrations

This commit is contained in:
2026-08-14 14:14:51 +08:00
parent 8c4c6ba661
commit e0b0e1d8c8
123 changed files with 4334 additions and 1877 deletions
+8 -4
View File
@@ -1,7 +1,6 @@
package handler
import (
"net/http"
"strconv"
"time"
@@ -69,8 +68,8 @@ func (h *User) UpdateSelf(c *gin.Context) {
httpx.Fail(c, "参数错误")
return
}
value := &dto.UserRequest{ID: claims.ID, NickName: req.NickName, HeaderImg: req.HeaderImg, Phone: req.Phone, Email: req.Email, Enable: 1}
if err := h.service.UpdateUserRequest(c.Request.Context(), value); err != nil {
value := service.UserInput{ID: claims.ID, NickName: req.NickName, HeaderImg: req.HeaderImg, Phone: req.Phone, Email: req.Email, Enable: req.Enable}
if err := h.service.UpdateSelfUser(c.Request.Context(), value); err != nil {
httpx.Fail(c, "修改失败")
return
}
@@ -83,6 +82,11 @@ func (h *User) Delete(c *gin.Context) {
httpx.Fail(c, "参数错误")
return
}
claims := middleware.Claims(c)
if claims != nil && claims.ID == req.ID {
httpx.Fail(c, "删除失败, 无法删除自己。")
return
}
if err := h.service.DeleteUser(c.Request.Context(), req.ID); err != nil {
httpx.Fail(c, "删除失败")
return
@@ -159,7 +163,7 @@ func (h *User) SwitchAuthority(c *gin.Context) {
c.Header("new-token", login.Token)
c.Header("new-expires-at", strconv.FormatInt(login.ExpiresAt/1000, 10))
maxAge := int(time.Until(time.UnixMilli(login.ExpiresAt)).Seconds())
http.SetCookie(c.Writer, &http.Cookie{Name: "x-token", Value: login.Token, Path: "/", MaxAge: maxAge, HttpOnly: true, SameSite: http.SameSiteStrictMode})
httpx.SetTokenCookie(c, login.Token, maxAge)
httpx.OK(c)
}