package models import ( "time" ) import ( "golang.org/x/crypto/bcrypt" "gorm.io/gorm" ) type User struct { gorm.Model OpenID string `gorm:"uniqueIndex"` OrgID uint `gorm:"index"` Name string Avatar string Password string `json:"-"` Mobile string `json:"mobile" gorm:"type:varchar(15);unique_index"` Email string `json:"email" gorm:"type:varchar(255);unique_index"` LastLoginTime time.Time } func (u *User) GenerateFromPassword(password []byte) error { hashPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) if err != nil { return err } u.Password = string(hashPassword) return nil } func (u *User) CompareHashAndPassword(password []byte) bool { if err := bcrypt.CompareHashAndPassword([]byte(u.Password), password); err != nil { return false } return true } type ConfigItem struct { gorm.Model Group string `gorm:"index"` Key string Value string OptionKey string ValueType string Description string Order int IsEnabled bool Uri string `gorm:"uniqueIndex"` DefaultValue string }