Exemple #1
0
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)
}
Exemple #2
0
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
	if err := collection(userColName).Insert(u); err != nil {
		if mgo.IsDup(err) {
			return apiErrors.ThrowError(apiErrors.UserExist)
		}
		panic(err)
	}

	return nil
}
Exemple #3
0
func (r *resourceUser) Edit(id string, u *models.User) error {
	if !bson.IsObjectIdHex(id) {
		return apiErrors.ThrowError(apiErrors.IdInvalid)
	}
	u.Id = ""
	if err := collection(userColName).UpdateId(bson.ObjectIdHex(id), u); err != nil {
		if err == mgo.ErrNotFound {
			return apiErrors.ThrowError(apiErrors.UserNotFound)
		}
		panic(err)
	}
	return nil
}