func (u *userHandler) Edit(c *gin.Context) { var user models.User currentUser := utils.MustGetCurrentUser(c) if err := c.Bind(&user); err != nil { errors := userResource.ParseError(err) if len(errors) > 0 { c.Error(errors[0]) return } } userId := c.Param("userId") if currentUser.Role != models.Admin { user.Role = models.NormalUser } if currentUser.Role == models.NormalUser { user.DeleteAt = nil } if err := userResource.Edit(userId, &user); err != nil { c.AbortWithError(400, err) return } c.JSON(200, user) }
func (r *resourceUser) Create(u *models.User) error { if u.Password == "" { return apiErrors.ThrowError(apiErrors.UserPasswordRequired) } u.Password = r.HashPassword(u.Password) u.Id = bson.NewObjectId() u.Role = models.NormalUser u.DeleteAt = nil if err := collection(userColName).Insert(u); err != nil { if mgo.IsDup(err) { return apiErrors.ThrowError(apiErrors.UserExist) } panic(err) } return nil }