本文整理汇总了Golang中github.com/ovh/tat/models.User.Insert方法的典型用法代码示例。如果您正苦于以下问题:Golang User.Insert方法的具体用法?Golang User.Insert怎么用?Golang User.Insert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/ovh/tat/models.User
的用法示例。
在下文中一共展示了User.Insert方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Create
// Create a new user, record Username, Fullname and Email
// A mail is sent to ask user for validation
func (u *UsersController) Create(ctx *gin.Context) {
var userJSON userCreateJSON
ctx.Bind(&userJSON)
var userIn models.User
userIn.Username = u.computeUsername(userJSON)
userIn.Fullname = strings.TrimSpace(userJSON.Fullname)
userIn.Email = strings.TrimSpace(userJSON.Email)
callback := strings.TrimSpace(userJSON.Callback)
if len(userIn.Username) < 3 || len(userIn.Fullname) < 3 || len(userIn.Email) < 7 {
err := fmt.Errorf("Invalid username (%s) or fullname (%s) or email (%s)", userIn.Username, userIn.Fullname, userIn.Email)
AbortWithReturnError(ctx, http.StatusInternalServerError, err)
return
}
err := u.checkAllowedDomains(userJSON)
if err != nil {
ctx.JSON(http.StatusForbidden, gin.H{"error": err.Error()})
return
}
if models.IsEmailExists(userJSON.Email) || models.IsUsernameExists(userJSON.Username) || models.IsFullnameExists(userJSON.Fullname) {
e := fmt.Errorf("Please check your username, email or fullname. If you are already registered, please reset your password")
AbortWithReturnError(ctx, http.StatusBadRequest, e)
return
}
tokenVerify, err := userIn.Insert()
if err != nil {
log.Errorf("Error while InsertUser %s", err)
ctx.AbortWithError(http.StatusInternalServerError, err)
return
}
go utils.SendVerifyEmail(userIn.Username, userIn.Email, tokenVerify, callback)
go models.WSUser(&models.WSUserJSON{Action: "create", Username: userIn.Username})
info := ""
if viper.GetBool("username_from_email") {
info = fmt.Sprintf(" Note that configuration of Tat forced your username to %s", userIn.Username)
}
ctx.JSON(http.StatusCreated, gin.H{"info": fmt.Sprintf("please check your mail to validate your account.%s", info)})
}