feat: update template

This commit is contained in:
2026-08-19 22:05:49 +08:00
parent 0e674e9d56
commit 5a71093b0c
67 changed files with 2070 additions and 585 deletions

View File

@@ -32,6 +32,8 @@ func (h *UserHandler) Register(r chi.Router) {
r.Get("/me", h.GetCurrentUser)
r.Get("/{id}/roles", h.ListRoles)
r.Post("/", h.Create)
r.Post("/{id}/logout-all", h.KickUser)
r.Post("/logout-all", h.KickAllUsers)
r.Patch("/{id}", h.Update)
r.Put("/{id}/roles", h.SetRoles)
r.Patch("/{id}/password", h.UpdatePassword)
@@ -40,17 +42,14 @@ func (h *UserHandler) Register(r chi.Router) {
}
func (h *UserHandler) GetCurrentUser(w http.ResponseWriter, r *http.Request) {
claims, ok := middleware.GetClaims(r.Context())
userCtx := middleware.GetUserContext(r.Context())
if !ok || claims.UserID == 0 {
if userCtx == nil || userCtx.UserID == 0 {
httputil.Fail(w, errs.ErrUnauthorized)
return
}
isAdmin := middleware.IsAdmin(r.Context())
uid := claims.UserID
user, err := h.userService.GetCurrentUser(r.Context(), uid, isAdmin)
user, err := h.userService.GetCurrentUser(r.Context(), userCtx.UserID, userCtx.IsAdmin)
if err != nil {
httputil.Fail(w, err)
return
@@ -102,7 +101,7 @@ func (h *UserHandler) ListRoles(w http.ResponseWriter, r *http.Request) {
func (h *UserHandler) Create(w http.ResponseWriter, r *http.Request) {
var req request.CreateUserRequest
if err := httputil.BindJson(r, &req); err != nil {
if err := httputil.BindJson(w, r, &req); err != nil {
httputil.Fail(w, err)
return
}
@@ -115,6 +114,32 @@ func (h *UserHandler) Create(w http.ResponseWriter, r *http.Request) {
httputil.Ok(w)
}
func (h *UserHandler) KickUser(w http.ResponseWriter, r *http.Request) {
id, err := httputil.URLParamInt32(r, "id")
if err != nil {
httputil.Fail(w, err)
return
}
err = h.userService.KickUser(r.Context(), id)
if err != nil {
httputil.Fail(w, err)
return
}
httputil.Ok(w)
}
func (h *UserHandler) KickAllUsers(w http.ResponseWriter, r *http.Request) {
err := h.userService.KickAllUsers(r.Context())
if err != nil {
httputil.Fail(w, err)
return
}
httputil.Ok(w)
}
func (h *UserHandler) Update(w http.ResponseWriter, r *http.Request) {
var req request.UpdateUserRequest
@@ -124,7 +149,7 @@ func (h *UserHandler) Update(w http.ResponseWriter, r *http.Request) {
return
}
if err = httputil.BindJson(r, &req); err != nil {
if err = httputil.BindJson(w, r, &req); err != nil {
httputil.Fail(w, err)
return
}
@@ -146,7 +171,7 @@ func (h *UserHandler) SetRoles(w http.ResponseWriter, r *http.Request) {
return
}
if err = httputil.BindJson(r, &req); err != nil {
if err = httputil.BindJson(w, r, &req); err != nil {
httputil.Fail(w, err)
return
}
@@ -169,7 +194,7 @@ func (h *UserHandler) UpdatePassword(w http.ResponseWriter, r *http.Request) {
return
}
if err = httputil.BindJson(r, &req); err != nil {
if err = httputil.BindJson(w, r, &req); err != nil {
httputil.Fail(w, err)
return
}