diff --git a/dao/user.go b/dao/user.go index b9f5266..f6205b1 100644 --- a/dao/user.go +++ b/dao/user.go @@ -77,6 +77,21 @@ func UpdateUserByID(id int, name, password, email string) { DB.Model(&User{}).Where("id = ?", id).Updates(User{Name: name, Password: password, Email: email}) } +// 管理员修改用户信息 func UpdateUserByID2(id int, req proto.UpdateUserInfoReq) { - DB.Model(&User{}).Where("id = ?", id).Updates(User{Name: req.Username, Age: req.Age, Role: req.Role, Run: req.Run, Redis: req.Redis, Upload: req.Upload, Avatar: req.Avatar, Gender: req.Gender}) + updateData := make(map[string]interface{}) + updateData["Name"] = req.Username + updateData["Age"] = req.Age + updateData["Role"] = req.Role + updateData["Run"] = req.Run + updateData["Redis"] = req.Redis + updateData["Upload"] = req.Upload + updateData["Avatar"] = req.Avatar + updateData["Gender"] = req.Gender + DB.Model(&User{}).Where("id =?", id).Updates(updateData) +} + +// 用户修改自己的信息 +func UpdateUserByID3(id int, req proto.UpdateUserInfoReq) { + DB.Model(&User{}).Where("id = ?", id).Updates(User{Name: req.Username, Age: req.Age, Avatar: req.Avatar, Gender: req.Gender}) } diff --git a/proto/user_req.go b/proto/user_req.go index 2413f7b..6baa463 100644 --- a/proto/user_req.go +++ b/proto/user_req.go @@ -1,15 +1,15 @@ package proto type UpdateUserInfoReq struct { - ID int `json:"id" form:"id"` //用户id - Username string `json:"username" form:"username"` //用户名 - Age int `json:"age" form:"age"` //年龄 - Role string `json:"role" form:"role"` //角色 - Gender string `json:"gender" form:"gender"` //性别 - Redis bool `json:"redis" form:"redis"` //是否刷新redis - Upload bool `json:"upload" form:"upload"` //是否上传头像 - Run bool `json:"run" form:"run"` //是否运行 - Avatar string `json:"avatar" form:"avatar"` //头像 + ID int `json:"id" form:"id"` //用户id + Username string `json:"name" form:"name"` //用户名 + Age int `json:"age" form:"age"` //年龄 + Role string `json:"role" form:"role"` //角色 + Gender string `json:"gender" form:"gender"` //性别 + Redis bool `json:"redis" form:"redis"` //是否刷新redis + Upload bool `json:"upload" form:"upload"` //是否上传头像 + Run bool `json:"run" form:"run"` //是否运行 + Avatar string `json:"avatar" form:"avatar"` //头像 } type CIDRUN struct { diff --git a/service/userService.go b/service/userService.go index d090431..b395b94 100644 --- a/service/userService.go +++ b/service/userService.go @@ -44,8 +44,9 @@ func GetUserByNameLike(name string) []proto.User { func UpdateUser(user_id int, req proto.UpdateUserInfoReq) (int, error) { cur_user := dao.FindUserByID2(user_id) - if user_id == req.ID { - dao.UpdateUserByID2(user_id, req) + //fmt.Println("cur_user:", cur_user, "req:", req) + if user_id == req.ID && cur_user.Role != "admin" { + dao.UpdateUserByID3(user_id, req) //用户修改自己的信息,不能修改权限信息 return user_id, nil } else if cur_user.Role == "admin" { dao.UpdateUserByID2(req.ID, req)