实现管理员的用户增删改功能

This commit is contained in:
2026-03-27 18:03:19 +08:00
parent 7e8d824ba6
commit 51c377964d
7 changed files with 236 additions and 7 deletions

View File

@@ -12,10 +12,67 @@ import (
"golang.org/x/crypto/bcrypt"
)
// 管理员创建用户
func CreateUserByAdmin(c *fiber.Ctx) error {
_, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeUserWrite)
if err != nil {
return err
}
var req s.CreateUserByAdminData
if err := g.Validator.ParseBody(c, &req); err != nil {
return err
}
if err := s.User.CreateByAdmin(req); err != nil {
return err
}
return c.JSON(nil)
}
// 管理员更新用户
func UpdateUserByAdmin(c *fiber.Ctx) error {
_, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeUserWrite)
if err != nil {
return err
}
var req s.UpdateUserByAdminData
if err := g.Validator.ParseBody(c, &req); err != nil {
return err
}
if err := s.User.UpdateByAdmin(req); err != nil {
return err
}
return c.JSON(nil)
}
// 管理员删除用户
func RemoveUserByAdmin(c *fiber.Ctx) error {
_, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeUserWrite)
if err != nil {
return err
}
var req core.IdReq
if err := g.Validator.ParseBody(c, &req); err != nil {
return err
}
if err := s.User.RemoveByAdmin(req.Id); err != nil {
return err
}
return c.JSON(nil)
}
// 分页获取用户
func PageUserByAdmin(c *fiber.Ctx) error {
// 检查权限
_, err := auth.GetAuthCtx(c).PermitAdmin()
_, err := auth.GetAuthCtx(c).PermitAdmin(core.ScopeUserRead)
if err != nil {
return err
}
@@ -67,6 +124,7 @@ func PageUserByAdmin(c *fiber.Ctx) error {
Preload(q.User.Admin).
Omit(q.User.Password).
Where(do).
Order(q.User.CreatedAt).
FindByPage(req.GetOffset(), req.GetLimit())
if err != nil {
return err