feat(user):增加修改用户可用性状态的功能。
This commit is contained in:
parent
64ee9692fe
commit
0fc57b7506
|
@ -30,6 +30,7 @@ func InitializeUserController(router *gin.Engine) {
|
||||||
UserController.Router.DELETE("/password/:uid", security.OPSAuthorize, UserController.InvalidUserPassword)
|
UserController.Router.DELETE("/password/:uid", security.OPSAuthorize, UserController.InvalidUserPassword)
|
||||||
UserController.Router.PUT("/password", UserController.ResetUserPassword)
|
UserController.Router.PUT("/password", UserController.ResetUserPassword)
|
||||||
UserController.Router.GET("/accounts", security.OPSAuthorize, UserController.ListPagedUser)
|
UserController.Router.GET("/accounts", security.OPSAuthorize, UserController.ListPagedUser)
|
||||||
|
UserController.Router.PUT("/account/enabled/state", security.OPSAuthorize, UserController.SwitchUserEnabling)
|
||||||
}
|
}
|
||||||
|
|
||||||
type LoginFormData struct {
|
type LoginFormData struct {
|
||||||
|
@ -172,3 +173,25 @@ func (_UserController) ListPagedUser(c *gin.Context) {
|
||||||
gin.H{"accounts": users},
|
gin.H{"accounts": users},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UserStateFormData struct {
|
||||||
|
UserID string `json:"uid" form:"uid"`
|
||||||
|
Enabled bool `json:"enabled" form:"enabled"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (_UserController) SwitchUserEnabling(c *gin.Context) {
|
||||||
|
result := response.NewResult(c)
|
||||||
|
switchForm := new(UserStateFormData)
|
||||||
|
c.BindJSON(switchForm)
|
||||||
|
err := service.UserService.SwitchUserState(switchForm.UserID, switchForm.Enabled)
|
||||||
|
if err != nil {
|
||||||
|
if nfErr, ok := err.(*exceptions.NotFoundError); ok {
|
||||||
|
result.Error(http.StatusNotFound, nfErr.Message)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
result.Error(http.StatusInternalServerError, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.Success("用户状态已经更新。")
|
||||||
|
}
|
||||||
|
|
|
@ -169,10 +169,17 @@ func (_UserService) IsUserExists(uid string) (bool, error) {
|
||||||
return global.DBConn.ID(uid).Exist(&model.User{})
|
return global.DBConn.ID(uid).Exist(&model.User{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_UserService) CreateUser(user *model.User, detail *model.UserDetail) (string, error) {
|
func (u _UserService) CreateUser(user *model.User, detail *model.UserDetail) (string, error) {
|
||||||
if len(user.Id) == 0 {
|
if len(user.Id) == 0 {
|
||||||
user.Id = uuid.New().String()
|
user.Id = uuid.New().String()
|
||||||
}
|
}
|
||||||
|
exists, err := u.IsUserExists(user.Id)
|
||||||
|
if exists {
|
||||||
|
return "", exceptions.NewNotFoundError("user already exists")
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
detail.Id = user.Id
|
detail.Id = user.Id
|
||||||
|
|
||||||
verifyCode := utils.RandStr(10)
|
verifyCode := utils.RandStr(10)
|
||||||
|
@ -186,7 +193,7 @@ func (_UserService) CreateUser(user *model.User, detail *model.UserDetail) (stri
|
||||||
if err := tx.Begin(); err != nil {
|
if err := tx.Begin(); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
_, err := tx.Insert(user)
|
_, err = tx.Insert(user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return "", fmt.Errorf("user create failed: %w", err)
|
return "", fmt.Errorf("user create failed: %w", err)
|
||||||
|
@ -203,3 +210,17 @@ func (_UserService) CreateUser(user *model.User, detail *model.UserDetail) (stri
|
||||||
}
|
}
|
||||||
return verifyCode, nil
|
return verifyCode, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (u _UserService) SwitchUserState(uid string, enabled bool) error {
|
||||||
|
exists, err := u.IsUserExists(uid)
|
||||||
|
if !exists {
|
||||||
|
return exceptions.NewNotFoundError("user not exists")
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
newStateUser := new(model.User)
|
||||||
|
newStateUser.Enabled = enabled
|
||||||
|
_, err = global.DBConn.ID(uid).Cols("enabled").Update(newStateUser)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user