mirror of
https://github.com/halejohn/Cloudreve.git
synced 2026-01-26 09:34:57 +08:00
Feat: User login
This commit is contained in:
@@ -24,29 +24,37 @@ const (
|
||||
// User 用户模型
|
||||
type User struct {
|
||||
gorm.Model
|
||||
Email string `gorm:"type:varchar(100);unique_index"`
|
||||
Nick string `gorm:"size:50"`
|
||||
Password string
|
||||
Status int
|
||||
Group int
|
||||
PrimaryGroup int
|
||||
ActivationKey string
|
||||
Storage int64
|
||||
LastNotify *time.Time
|
||||
OpenID string
|
||||
TwoFactor string
|
||||
Delay int
|
||||
Avatar string
|
||||
Options string `gorm:"size:4096"`
|
||||
Email string `gorm:"type:varchar(100);unique_index"`
|
||||
Nick string `gorm:"size:50"`
|
||||
Password string
|
||||
Status int
|
||||
Group int
|
||||
PrimaryGroup int
|
||||
ActivationKey string
|
||||
Storage int64
|
||||
LastNotify *time.Time
|
||||
OpenID string
|
||||
TwoFactor string
|
||||
Delay int
|
||||
Avatar string
|
||||
Options string `gorm:"size:4096"`
|
||||
OptionsSerialized serializer.UserOption `gorm:"-"`
|
||||
}
|
||||
|
||||
// GetUser 用ID获取用户
|
||||
func GetUser(ID interface{}) (User, error) {
|
||||
// GetUserByID 用ID获取用户
|
||||
func GetUserByID(ID interface{}) (User, error) {
|
||||
var user User
|
||||
result := DB.First(&user, ID)
|
||||
return user, result.Error
|
||||
}
|
||||
|
||||
// GetUserByEmail 用Email获取用户
|
||||
func GetUserByEmail(email string) (User, error) {
|
||||
var user User
|
||||
result := DB.Where("email = ?", email).First(&user)
|
||||
return user, result.Error
|
||||
}
|
||||
|
||||
// NewUser 返回一个新的空 User
|
||||
func NewUser() User {
|
||||
options := serializer.UserOption{
|
||||
@@ -59,6 +67,13 @@ func NewUser() User {
|
||||
}
|
||||
}
|
||||
|
||||
// AfterFind 找到用户后的钩子
|
||||
func (user *User) AfterFind() (err error) {
|
||||
// 解析用户设置到OptionsSerialized
|
||||
err = json.Unmarshal([]byte(user.Options), &user.OptionsSerialized)
|
||||
return err
|
||||
}
|
||||
|
||||
// CheckPassword 根据明文校验密码
|
||||
func (user *User) CheckPassword(password string) (bool, error) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user