30 lines
887 B
Go
30 lines
887 B
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type User struct {
|
|
Id uint `gorm:"primaryKey" json:"id"`
|
|
Name string `gorm:"column:user_name" json:"user"`
|
|
Email string `gorm:"column:email" json:"email"`
|
|
Role string `gorm:"column:role" json:"role,omitempty"`
|
|
Password string `gorm:"column:password" json:"password"`
|
|
NewPassword string `gorm:"-" json:"newPassword"`
|
|
Expiration string `gorm:"column:expiration" json:"expiration,omitempty"`
|
|
Settings Settings `gorm:"type:json" json:"settings"`
|
|
}
|
|
|
|
func (u *User) IsValid() bool {
|
|
return u.Name != ""
|
|
}
|
|
|
|
func (u *User) ExpirationIsValid() bool {
|
|
if u.Expiration == "" || u.Expiration == "never" {
|
|
return true
|
|
}
|
|
loc := time.Now().Location()
|
|
parsedTime, _ := time.ParseInLocation("2006-01-02 15:04:05", u.Expiration, loc)
|
|
return parsedTime.After(time.Now())
|
|
}
|