// Insert a new user, return tokenVerify to user, in order to // validate account after check email func Insert(user *tat.User) (string, error) { user.ID = bson.NewObjectId().Hex() user.DateCreation = time.Now().Unix() user.Auth.DateAskReset = time.Now().Unix() user.Auth.EmailVerified = false user.IsSystem = false user.IsArchived = false user.CanWriteNotifications = false user.CanListUsersAsAdmin = false nbUsers, err := CountUsers() if err != nil { log.Errorf("Error while count all users%s", err) return "", err } if nbUsers > 0 { user.IsAdmin = false } else { log.Infof("user %s is the first user, he is now admin", user.Username) user.IsAdmin = true } tokenVerify := "" tokenVerify, user.Auth.HashedTokenVerify, err = generateUserPassword() if err != nil { log.Errorf("Error while generate Token Verify for new user %s", err) return tokenVerify, err } if err = store.Tat().CUsers.Insert(user); err != nil { log.Errorf("Error while inserting new user %s", err) } return tokenVerify, err }